wharmby Wed Jan 7 14:30:06 2009 UTC Added files: /php-src/ext/hash/tests hash_hmac_file_error.phpt hash_file_basic1.phpt hash_hmac_error.phpt hash_hmac_file_basic.phpt hash_algos.phpt hash_hmac_basic.phpt hash_error.phpt Log: New hash extension tests. Tested on Windows, Linux and Linux 64-bit
http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/hash_hmac_file_error.phpt?view=markup&rev=1.1 Index: php-src/ext/hash/tests/hash_hmac_file_error.phpt +++ php-src/ext/hash/tests/hash_hmac_file_error.phpt --TEST-- Test hash_hmac_file() function : basic functionality --SKIPIF-- <?php extension_loaded('hash') or die('skip: hash extension not loaded.'); ?> --FILE-- <?php
/* Prototype : string hash_hmac_file ( string algo, string filename, string key [, bool raw_output] ) * Description: Generate a keyed hash value using the HMAC method and the contents of a given file * Source code: ext/hash/hash.c * Alias to functions: */ echo "*** Testing hash() : error conditions ***\n"; $file = dirname(__FILE__) . "hash_file.txt"; $key = 'secret'; echo "\n-- Testing hash_hmac_file() function with less than expected no. of arguments --\n"; var_dump(hash_hmac_file()); var_dump(hash_hmac_file('crc32')); var_dump(hash_hmac_file('crc32', $file)); echo "\n-- Testing hash_hmac_file() function with more than expected no. of arguments --\n"; $extra_arg = 10; hash_hmac_file('crc32', $file, $key, TRUE, $extra_arg); echo "\n-- Testing hash_hmac_file() function with invalid hash algorithm --\n"; hash_hmac_file('foo', $file, $key, TRUE); ?> ===Done=== --EXPECTF-- *** Testing hash() : error conditions *** -- Testing hash_hmac_file() function with less than expected no. of arguments -- Warning: hash_hmac_file() expects at least 3 parameters, 0 given in %s on line %d NULL Warning: hash_hmac_file() expects at least 3 parameters, 1 given in %s on line %d NULL Warning: hash_hmac_file() expects at least 3 parameters, 2 given in %s on line %d NULL -- Testing hash_hmac_file() function with more than expected no. of arguments -- Warning: hash_hmac_file() expects at most 4 parameters, 5 given in %s on line %d -- Testing hash_hmac_file() function with invalid hash algorithm -- Warning: hash_hmac_file(): Unknown hashing algorithm: foo in %s on line %d ===Done=== http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/hash_file_basic1.phpt?view=markup&rev=1.1 Index: php-src/ext/hash/tests/hash_file_basic1.phpt +++ php-src/ext/hash/tests/hash_file_basic1.phpt --TEST-- Test hash_file() function : basic functionality --SKIPIF-- <?php extension_loaded('hash') or die('skip: hash extension not loaded.'); ?> --FILE-- <?php /* Prototype : string hash_file ( string algo, string filename [, bool raw_output] ) * Description: Generate a hash value using the contents of a given file * Source code: ext/hash/hash.c * Alias to functions: */ echo "*** Testing hash_file() : basic functionality ***\n"; $file = dirname(__FILE__) . "hash_file.txt"; /* Creating a temporary file file */ if (($fp = fopen( $file, "w+")) == FALSE) { echo "Cannot create file ($file)"; exit; } /* Writing into file */ $content = b"This is a sample string used to test the hash_file function with various hashing algorithms"; if (is_writable($file)) { if (fwrite($fp, $content) === FALSE) { echo "Cannot write to file ($file)"; exit; } } // close the file fclose($fp); echo "adler32: " . hash_file('adler32', $file) . "\n"; echo "crc32: " . hash_file('crc32', $file) . "\n"; echo "gost: " . hash_file('gost', $file). "\n"; echo "haval128,3: " . hash_file('haval128,3', $file). "\n"; echo "md2: " . hash_file('md2', $file). "\n"; echo "md4: " . hash_file('md4', $file). "\n"; echo "md5: " . hash_file('md5', $file). "\n"; echo "ripemd128: " . hash_file('ripemd128', $file). "\n"; echo "ripemd160: " . hash_file('ripemd160', $file). "\n"; echo "ripemd256: " . hash_file('ripemd256', $file). "\n"; echo "ripemd320: " . hash_file('ripemd320', $file). "\n"; echo "sha1: " . hash_file('sha1', $file). "\n"; echo "sha256: " . hash_file('sha256', $file). "\n"; echo "sha384: " . hash_file('sha384', $file). "\n"; echo "sha512: " . hash_file('sha512', $file). "\n"; echo "snefru: " . hash_file('snefru', $file). "\n"; echo "tiger192,3: " . hash_file('tiger192,3', $file). "\n"; echo "whirlpool: " . hash_file('whirlpool', $file). "\n"; echo "adler32(raw): " . bin2hex(hash_file('adler32', $file, TRUE)) . "\n"; echo "md5(raw): " . bin2hex(hash_file('md5', $file, TRUE)). "\n"; echo "sha256(raw): " . bin2hex(hash_file('sha256', $file, TRUE)). "\n"; unlink($file); ?> ===Done=== --EXPECTF-- *** Testing hash_file() : basic functionality *** adler32: 2e2287ff crc32: 61664d33 gost: d9e65f0c0c2ef944e4f8a01f4a46365c4f33a2853756878182a7f03e1490a4cd haval128,3: 8bb81269aca8b7f87829020d76a4e841 md2: 70f791c0d8fa9edd7d08e32fcba8c354 md4: a9d034b16bb290c57a645afd6f14cd3b md5: 704bf818448f5bbb94061332d2c889aa ripemd128: d02a5f320a11c54c7d51f933b0bd8471 ripemd160: 3ff296ca6314313af3ed0437c8fc0ebbd3242d3b ripemd256: 0edd779587c11cf32781111b264251eb37529832fb207121cd45dd95002e48a8 ripemd320: bf162fa2ff20491b3016c5d8190f8ee47d7dcda8c38eaf6779349a243a029d275eec9adf16ec1b35 sha1: 8529b266611e3bd0d208fd9614653c2a8f23d0fe sha256: a0f5702fa5d3670b80033d668e8732b70550392abb53841355447f8bb0f72245 sha384: a35d875ed96d94b6452acad910f97978200faa2398d8a0e6b9cffa33704c3809e3d2e5b0d63700d8f32a0716e7d2d528 sha512: 1f42adaf938fbf136e381b164bae5f984c7f9fe60c82728bd889c14f187c7d63e81a0305a1731c7e0a8f3ed9fd2ec92a3833a93502bdf269532601f0b8e2bab0 snefru: d414b2345d3e7fa1a31c044cf334bfc1fec24d89e464411998d579d24663895f tiger192,3: c6fa75a0be4ecf7afa3cafb4e2a08efc3a40534c0e46b971 whirlpool: 4248b149e000477269a4a5f1a84d97cfc3d0199b7aaf505913e6f010a6f83276029d11a9ad545374bc710eb59c7d958985023ab886ffa9ec9a23852844c764ec adler32(raw): 2e2287ff md5(raw): 704bf818448f5bbb94061332d2c889aa sha256(raw): a0f5702fa5d3670b80033d668e8732b70550392abb53841355447f8bb0f72245 ===Done=== http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/hash_hmac_error.phpt?view=markup&rev=1.1 Index: php-src/ext/hash/tests/hash_hmac_error.phpt +++ php-src/ext/hash/tests/hash_hmac_error.phpt --TEST-- Test hash_hmac() function : basic functionality --SKIPIF-- <?php extension_loaded('hash') or die('skip: hash extension not loaded.'); ?> --FILE-- <?php /* * proto string hash_hmac ( string algo, string data, string key [, bool raw_output] ) * Function is implemented in ext/hash/hash.c */ echo "*** Testing hash_hmac() : error conditions ***\n"; $data = "This is a sample string used to test the hash_hmac function with various hashing algorithms"; $key = 'secret'; echo "\n-- Testing hash_hmac() function with less than expected no. of arguments --\n"; var_dump(hash_hmac()); var_dump(hash_hmac('crc32')); var_dump(hash_hmac('crc32', $data)); echo "\n-- Testing hash_hmac() function with more than expected no. of arguments --\n"; $extra_arg = 10; var_dump(hash_hmac('crc32', $data, $key, TRUE, $extra_arg)); echo "\n-- Testing hash_hmac() function with invalid hash algorithm --\n"; var_dump(hash_hmac('foo', $data, $key)); ?> ===Done=== --EXPECTF-- *** Testing hash_hmac() : error conditions *** -- Testing hash_hmac() function with less than expected no. of arguments -- Warning: hash_hmac() expects at least 3 parameters, 0 given in %s on line %d NULL Warning: hash_hmac() expects at least 3 parameters, 1 given in %s on line %d NULL Warning: hash_hmac() expects at least 3 parameters, 2 given in %s on line %d NULL -- Testing hash_hmac() function with more than expected no. of arguments -- Warning: hash_hmac() expects at most 4 parameters, 5 given in %s on line %d NULL -- Testing hash_hmac() function with invalid hash algorithm -- Warning: hash_hmac(): Unknown hashing algorithm: foo in %s on line %d bool(false) ===Done=== http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/hash_hmac_file_basic.phpt?view=markup&rev=1.1 Index: php-src/ext/hash/tests/hash_hmac_file_basic.phpt +++ php-src/ext/hash/tests/hash_hmac_file_basic.phpt --TEST-- Test hash_hmac_file() function : basic functionality --SKIPIF-- <?php extension_loaded('hash') or die('skip: hash extension not loaded.'); ?> --FILE-- <?php /* Prototype : string hash_hmac_file ( string algo, string filename, string key [, bool raw_output] ) * Description: Generate a keyed hash value using the HMAC method and the contents of a given file * Source code: ext/hash/hash.c * Alias to functions: */ echo "*** Testing hash_hmac_file() : basic functionality ***\n"; $file = dirname(__FILE__) . "hash_hmac_file.txt"; /* Creating a temporary file file */ if (($fp = fopen( $file, "w+")) == FALSE) { echo "Cannot create file ($file)"; exit; } /* Writing into file */ $content = b"This is a sample string used to test the hash_hmac_file function with various hashing algorithms"; if (is_writable($file)) { if (fwrite($fp, $content) === FALSE) { echo "Cannot write to file ($file)"; exit; } } // close the files fclose($fp); $key = 'secret'; echo "adler32: " . hash_hmac_file('adler32', $file, $key) . "\n"; echo "crc32: " . hash_hmac_file('crc32', $file, $key) . "\n"; echo "gost: " . hash_hmac_file('gost', $file, $key) . "\n"; echo "haval128,3: " . hash_hmac_file('haval128,3', $file, $key) . "\n"; echo "md2: " . hash_hmac_file('md2', $file, $key) . "\n"; echo "md4: " . hash_hmac_file('md4', $file, $key) . "\n"; echo "md5: " . hash_hmac_file('md5', $file, $key) . "\n"; echo "ripemd128: " . hash_hmac_file('ripemd128', $file, $key) . "\n"; echo "ripemd160: " . hash_hmac_file('ripemd160', $file, $key) . "\n"; echo "ripemd256: " . hash_hmac_file('ripemd256', $file, $key) . "\n"; echo "ripemd320: " . hash_hmac_file('ripemd320', $file, $key) . "\n"; echo "sha1: " . hash_hmac_file('sha1', $file, $key) . "\n"; echo "sha256: " . hash_hmac_file('sha256', $file, $key) . "\n"; echo "sha384: " . hash_hmac_file('sha384', $file, $key) . "\n"; echo "sha512: " . hash_hmac_file('sha512', $file, $key) . "\n"; echo "snefru: " . hash_hmac_file('snefru', $file, $key) . "\n"; echo "tiger192,3: " . hash_hmac_file('tiger192,3', $file, $key) . "\n"; echo "whirlpool: " . hash_hmac_file('whirlpool', $file, $key) . "\n"; echo "adler32(raw): " . bin2hex(hash_hmac_file('adler32', $file, $key, TRUE)) . "\n"; echo "md5(raw): " . bin2hex(hash_hmac_file('md5', $file, $key, TRUE)). "\n"; echo "sha256(raw): " . bin2hex(hash_hmac_file('sha256', $file, $key, TRUE)). "\n"; echo "Error cases:\n"; hash_hmac_file(); hash_hmac_file('foo', $file); hash_hmac_file('foo', $file, $key, TRUE, 10); unlink($file); ?> ===Done=== --EXPECTF-- *** Testing hash_hmac_file() : basic functionality *** adler32: 9f037811 crc32: f2a60b9c gost: 94c39a40d5db852a8dc3d24e37eebf2d53e3d711457c59cd02b614f792a9d918 haval128,3: e8fcff647f1a675acb429130fb94a17e md2: a685475e600314bb549ab4f33c3b27cb md4: cbc6bff781f48f57378d3effa27553e4 md5: 8bddf39dd1c566c27acc7fa85ec36acf ripemd128: 03269b76bf61d508c50f038cbe9ba691 ripemd160: 94652211292268d97eb63344a3a05d3009f9d2d3 ripemd256: b6ab414cc1630e1e474fefa41976d252f38ca7cf401552774e71736165e512e7 ripemd320: 71271a649265740eed4b9931417f979fd81eba6288f4e08ff2997bc3dd6858da054d53a9f1fffe8c sha1: 7f338d17b72371091abd28f451bc8d1f3a9eb3b6 sha256: 9135286ca4c84dec711e4b831f6cd39e672e5ff93d011321274eb76733cc1e40 sha384: 364fdc45a4c742763366ab5d3d1c17c24057e6c3b641607a36d969f00c88da25b19c8b88c8632411e3a0a02397f88aca sha512: d460aabdf0353655059ed0d408efa91f19c4cda46acc2a4e0adf4764b06951c899fbb2ed41519db78b58ff7be17b1b2910aebe674a56861b232143571b35c83f snefru: 7b79787e1c1d926b6cc98327f05c5d04ba6227ab51c1398661861196016ef34c tiger192,3: 5577f21e2af269fff41e023db30e2b01bfd8b8f669177929 whirlpool: 37a0fbb90547690d5e5e11c046f6654ffdb7bab15e16d9d79c7d85765cc4bdcbfd9df8db7a3ce9558f3f244fead00ca29cf05297f75596555195a0683f15d69f adler32(raw): 9f037811 md5(raw): 8bddf39dd1c566c27acc7fa85ec36acf sha256(raw): 9135286ca4c84dec711e4b831f6cd39e672e5ff93d011321274eb76733cc1e40 Error cases: Warning: hash_hmac_file() expects at least 3 parameters, 0 given in %s on line %d Warning: hash_hmac_file() expects at least 3 parameters, 2 given in %s on line %d Warning: hash_hmac_file() expects at most 4 parameters, 5 given in %s on line %d ===Done=== http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/hash_algos.phpt?view=markup&rev=1.1 Index: php-src/ext/hash/tests/hash_algos.phpt +++ php-src/ext/hash/tests/hash_algos.phpt --TEST-- Test hash_algos() function : basic functionality --SKIPIF-- <?php extension_loaded('hash') or die('skip: hash extension not loaded.'); ?> --FILE-- <?php /* Prototype : array hash_algos (void) * Description: Return a list of registered hashing algorithms * Source code: ext/hash/hash.c * Alias to functions: */ echo "*** Testing hash_algos() : basic functionality ***\n"; var_dump(hash_algos()); ?> ===Done=== --EXPECTF-- *** Testing hash_algos() : basic functionality *** array(42) { [0]=> unicode(3) "md2" [1]=> unicode(3) "md4" [2]=> unicode(3) "md5" [3]=> unicode(4) "sha1" [4]=> unicode(6) "sha224" [5]=> unicode(6) "sha256" [6]=> unicode(6) "sha384" [7]=> unicode(6) "sha512" [8]=> unicode(9) "ripemd128" [9]=> unicode(9) "ripemd160" [10]=> unicode(9) "ripemd256" [11]=> unicode(9) "ripemd320" [12]=> unicode(9) "whirlpool" [13]=> unicode(10) "tiger128,3" [14]=> unicode(10) "tiger160,3" [15]=> unicode(10) "tiger192,3" [16]=> unicode(10) "tiger128,4" [17]=> unicode(10) "tiger160,4" [18]=> unicode(10) "tiger192,4" [19]=> unicode(6) "snefru" [20]=> unicode(9) "snefru256" [21]=> unicode(4) "gost" [22]=> unicode(7) "adler32" [23]=> unicode(5) "crc32" [24]=> unicode(6) "crc32b" [25]=> unicode(7) "salsa10" [26]=> unicode(7) "salsa20" [27]=> unicode(10) "haval128,3" [28]=> unicode(10) "haval160,3" [29]=> unicode(10) "haval192,3" [30]=> unicode(10) "haval224,3" [31]=> unicode(10) "haval256,3" [32]=> unicode(10) "haval128,4" [33]=> unicode(10) "haval160,4" [34]=> unicode(10) "haval192,4" [35]=> unicode(10) "haval224,4" [36]=> unicode(10) "haval256,4" [37]=> unicode(10) "haval128,5" [38]=> unicode(10) "haval160,5" [39]=> unicode(10) "haval192,5" [40]=> unicode(10) "haval224,5" [41]=> unicode(10) "haval256,5" } ===Done=== http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/hash_hmac_basic.phpt?view=markup&rev=1.1 Index: php-src/ext/hash/tests/hash_hmac_basic.phpt +++ php-src/ext/hash/tests/hash_hmac_basic.phpt --TEST-- Test hash_file() function : basic functionality --SKIPIF-- <?php extension_loaded('hash') or die('skip: hash extension not loaded.'); ?> --FILE-- <?php /* Prototype : string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output ] ) * Description: Generate a keyed hash value using the HMAC method * Source code: ext/hash/hash.c * Alias to functions: */ echo "*** Testing hash_hmac() : basic functionality ***\n"; $content = "This is a sample string used to test the hash_hmac function with various hashing algorithms"; $key = 'secret'; echo "adler32: " . hash_hmac('adler32', $content, $key) . "\n"; echo "crc32: " . hash_hmac('crc32', $content, $key) . "\n"; echo "gost: " . hash_hmac('gost', $content, $key) . "\n"; echo "haval128,3: " . hash_hmac('haval128,3', $content, $key) . "\n"; echo "md2: " . hash_hmac('md2', $content, $key) . "\n"; echo "md4: " . hash_hmac('md4', $content, $key) . "\n"; echo "md5: " . hash_hmac('md5', $content, $key) . "\n"; echo "ripemd128: " . hash_hmac('ripemd128', $content, $key) . "\n"; echo "ripemd160: " . hash_hmac('ripemd160', $content, $key) . "\n"; echo "ripemd256: " . hash_hmac('ripemd256', $content, $key) . "\n"; echo "ripemd320: " . hash_hmac('ripemd320', $content, $key) . "\n"; echo "sha1: " . hash_hmac('sha1', $content, $key) . "\n"; echo "sha256: " . hash_hmac('sha256', $content, $key) . "\n"; echo "sha384: " . hash_hmac('sha384', $content, $key) . "\n"; echo "sha512: " . hash_hmac('sha512', $content, $key) . "\n"; echo "snefru: " . hash_hmac('snefru', $content, $key) . "\n"; echo "tiger192,3: " . hash_hmac('tiger192,3', $content, $key) . "\n"; echo "whirlpool: " . hash_hmac('whirlpool', $content, $key) . "\n"; echo "adler32(raw): " . bin2hex(hash_hmac('adler32', $content, $key, TRUE)) . "\n"; echo "md5(raw): " . bin2hex(hash_hmac('md5', $content, $key, TRUE)) . "\n"; echo "sha256(raw): " . bin2hex(hash_hmac('sha256', $content, $key, TRUE)) . "\n"; ?> ===Done=== --EXPECTF-- *** Testing hash_hmac() : basic functionality *** adler32: 9e033311 crc32: 96859101 gost: a4a3c80bdf3f8665bf07376a34dc9c1b11af7c813f4928f62e39f0c0dc564dad haval128,3: 82cd0f4bd36729b5c80c33efa8c13ac5 md2: 6d111dab563025e4cb5f4425c991fa12 md4: 10cdbfe843000c623f8b8da0d5d20b0b md5: 2a632783e2812cf23de100d7d6a463ae ripemd128: 26c2f694a65b1928b668cf55f65529b4 ripemd160: 4b3433ba596ec39692bb7ce760a9ee5fb818113f ripemd256: 4e4e5ec19322895a727f272dfe68f87bc1af66cc6ce27c6c1360a5ee78a14b30 ripemd320: f10a8ff82e828b92a5ff0a02fc9032bc61352d0d824821fc42f7e09cf5b5f41ee59fd33a730d7469 sha1: 5bfdb62b97e2c987405463e9f7c193139c0e1fd0 sha256: 49bde3496b9510a17d0edd8a4b0ac70148e32a1d51e881ec76faa96534125838 sha384: b781415b856744834e532b9899e1aa0bec5a82cf09a838f0a833470468e2a42648a52428cfd9012385d04de5cd9bd122 sha512: 7de05636b18e2b0ca3427e03f53074af3a48a7b9df226daba4f22324c570638e7d7b26430e214799c9ce0db5ee88dad3292ca0f38bf99b8eaebed59b3a9c140a snefru: 67af483046f9cf16fe19f9087929ccfc6ad176ade3290b4d33f43e0ddb07e711 tiger192,3: 82779797cdc439e886884953ba21fa38e35679041e95ee27 whirlpool: 4a0f1582b21b7aff59bfba7f9c29131c69741b2ce80acdc7d314040f3b768cf5a17e30b74cceb86fbc6b34b1692e0addd5bfd7cfc043d40c0621f1b97e26fa49 adler32(raw): 9e033311 md5(raw): 2a632783e2812cf23de100d7d6a463ae sha256(raw): 49bde3496b9510a17d0edd8a4b0ac70148e32a1d51e881ec76faa96534125838 ===Done=== http://cvs.php.net/viewvc.cgi/php-src/ext/hash/tests/hash_error.phpt?view=markup&rev=1.1 Index: php-src/ext/hash/tests/hash_error.phpt +++ php-src/ext/hash/tests/hash_error.phpt --TEST-- Test hash() function : error conditions --SKIPIF-- <?php extension_loaded('hash') or die('skip: hash extension not loaded.'); ?> --FILE-- <?php /* Prototype : string hash ( string $algo , string $data [, bool $raw_output ] ) * Description: Generate a hash value (message digest) * Source code: ext/hash/hash.c * Alias to functions: */ echo "*** Testing hash() : error conditions ***\n"; echo "\n-- Testing hash() function with less than expected no. of arguments --\n"; var_dump(hash()); var_dump(hash('adler32')); echo "\n-- Testing hash() function with more than expected no. of arguments --\n"; $extra_arg= 10; var_dump(hash('adler32', '', false, $extra_arg)); echo "\n-- Testing hash() function with invalid hash algorithm --\n"; var_dump(hash('foo', '')); ?> ===Done=== --EXPECTF-- *** Testing hash() : error conditions *** -- Testing hash() function with less than expected no. of arguments -- Warning: hash() expects at least 2 parameters, 0 given in %s on line %d NULL Warning: hash() expects at least 2 parameters, 1 given in %s on line %d NULL -- Testing hash() function with more than expected no. of arguments -- Warning: hash() expects at most 3 parameters, 4 given in %s on line %d NULL -- Testing hash() function with invalid hash algorithm -- Warning: hash(): Unknown hashing algorithm: foo in %s on line %d bool(false) ===Done===
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php