diff options
| author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
|---|---|---|
| committer | <> | 2013-04-03 16:25:08 +0000 |
| commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
| tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/mcrypt/tests/mcrypt_decrypt_3des_ecb.phpt | |
| download | php2-master.tar.gz | |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/mcrypt/tests/mcrypt_decrypt_3des_ecb.phpt')
| -rw-r--r-- | ext/mcrypt/tests/mcrypt_decrypt_3des_ecb.phpt | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/ext/mcrypt/tests/mcrypt_decrypt_3des_ecb.phpt b/ext/mcrypt/tests/mcrypt_decrypt_3des_ecb.phpt new file mode 100644 index 0000000..5f841c1 --- /dev/null +++ b/ext/mcrypt/tests/mcrypt_decrypt_3des_ecb.phpt @@ -0,0 +1,96 @@ +--TEST-- +Test mcrypt_decrypt() function : basic functionality +--SKIPIF-- +<?php +if (!extension_loaded("mcrypt")) { + print "skip - mcrypt extension not loaded"; +} +?> +--FILE-- +<?php +/* Prototype : string mcrypt_decrypt(string cipher, string key, string data, string mode, string iv) + * Description: OFB crypt/decrypt data using key key with cipher cipher starting with iv + * Source code: ext/mcrypt/mcrypt.c + * Alias to functions: + */ + +echo "*** Testing mcrypt_decrypt() : basic functionality ***\n"; + + +// Initialise all required variables +$cipher = MCRYPT_3DES; +$mode = MCRYPT_MODE_ECB; + +// tripledes uses keys upto 192 bits (24 bytes) +$keys = array( + b'12345678', + b'12345678901234567890', + b'123456789012345678901234', + b'12345678901234567890123456' +); +$data1 = array( + '0D4ArM3ejyhic9rnCcIW9A==', + 'q0wt1YeOjLpnKm5WsrzKEw==', + 'zwKEFeqHkhlj+7HZTRA/yA==', + 'zwKEFeqHkhlj+7HZTRA/yA==' +); +// tripledes is a block cipher of 64 bits (8 bytes) +$ivs = array( + b'1234', + b'12345678', + b'123456789' +); +$data2 = array( + '+G7nGcWIxigQcJD+2P14HA==', + '+G7nGcWIxigQcJD+2P14HA==', + '+G7nGcWIxigQcJD+2P14HA==' +); + +echo "\n--- testing different key lengths\n"; +for ($i = 0; $i < sizeof($keys); $i++) { + echo "\nkey length=".strlen($keys[$i])."\n"; + special_var_dump(mcrypt_decrypt($cipher, $keys[$i], base64_decode($data1[$i]), $mode)); +} + +$key = b'1234567890123456'; +echo "\n--- testing different iv lengths\n"; +for ($i = 0; $i < sizeof($ivs); $i++) { + echo "\niv length=".strlen($ivs[$i])."\n"; + special_var_dump(mcrypt_decrypt($cipher, $key, base64_decode($data2[$i]), $mode, $ivs[$i])); +} + +function special_var_dump($str) { + var_dump(bin2hex($str)); +} +?> +===DONE=== +--EXPECTF-- +*** Testing mcrypt_decrypt() : basic functionality *** + +--- testing different key lengths + +key length=8 +string(32) "736563726574206d6573736167650000" + +key length=20 +string(32) "736563726574206d6573736167650000" + +key length=24 +string(32) "736563726574206d6573736167650000" + +key length=26 + +Warning: mcrypt_decrypt(): Size of key is too large for this algorithm in %s on line %d +string(32) "736563726574206d6573736167650000" + +--- testing different iv lengths + +iv length=4 +string(32) "736563726574206d6573736167650000" + +iv length=8 +string(32) "736563726574206d6573736167650000" + +iv length=9 +string(32) "736563726574206d6573736167650000" +===DONE=== |
