mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-11 10:56:17 +08:00
Add PHP Extension for GmSSL
View http://gmssl.org/docs/php-api.html for more info.
This commit is contained in:
36
php/ext/openssl/tests/openssl_decrypt_basic.phpt
Normal file
36
php/ext/openssl/tests/openssl_decrypt_basic.phpt
Normal file
@@ -0,0 +1,36 @@
|
||||
--TEST--
|
||||
openssl_decrypt() tests dependent on openssl_encrypt
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("openssl")) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$data = "openssl_encrypt() and openssl_decrypt() tests";
|
||||
$method = "AES-128-CBC";
|
||||
$password = "openssl";
|
||||
|
||||
$ivlen = openssl_cipher_iv_length($method);
|
||||
$iv = '';
|
||||
srand(time() + ((microtime(true) * 1000000) % 1000000));
|
||||
while(strlen($iv) < $ivlen) $iv .= chr(rand(0,255));
|
||||
|
||||
$encrypted = openssl_encrypt($data, $method, $password, 0, $iv);
|
||||
$output = openssl_decrypt($encrypted, $method, $password, 0, $iv);
|
||||
var_dump($output);
|
||||
$encrypted = openssl_encrypt($data, $method, $password, OPENSSL_RAW_DATA, $iv);
|
||||
$output = openssl_decrypt($encrypted, $method, $password, OPENSSL_RAW_DATA, $iv);
|
||||
var_dump($output);
|
||||
// if we want to manage our own padding
|
||||
$padded_data = $data . str_repeat(' ', 16 - (strlen($data) % 16));
|
||||
$encrypted = openssl_encrypt($padded_data, $method, $password, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);
|
||||
$output = openssl_decrypt($encrypted, $method, $password, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);
|
||||
var_dump(rtrim($output));
|
||||
// if we want to prefer variable length cipher setting
|
||||
$encrypted = openssl_encrypt($data, "bf-ecb", $password, OPENSSL_DONT_ZERO_PAD_KEY);
|
||||
$output = openssl_decrypt($encrypted, "bf-ecb", $password, OPENSSL_DONT_ZERO_PAD_KEY);
|
||||
var_dump($output);
|
||||
?>
|
||||
--EXPECT--
|
||||
string(45) "openssl_encrypt() and openssl_decrypt() tests"
|
||||
string(45) "openssl_encrypt() and openssl_decrypt() tests"
|
||||
string(45) "openssl_encrypt() and openssl_decrypt() tests"
|
||||
string(45) "openssl_encrypt() and openssl_decrypt() tests"
|
||||
Reference in New Issue
Block a user