summaryrefslogtreecommitdiff
path: root/ext/hash/tests
diff options
context:
space:
mode:
Diffstat (limited to 'ext/hash/tests')
-rw-r--r--ext/hash/tests/gost.phpt20
-rw-r--r--ext/hash/tests/haval.phpt76
-rw-r--r--ext/hash/tests/hmac-md5.phpt20
-rw-r--r--ext/hash/tests/md5.phpt16
-rw-r--r--ext/hash/tests/ripemd128.phpt25
-rw-r--r--ext/hash/tests/ripemd160.phpt25
-rw-r--r--ext/hash/tests/sha1.phpt21
-rw-r--r--ext/hash/tests/sha256.phpt22
-rw-r--r--ext/hash/tests/sha384.phpt21
-rw-r--r--ext/hash/tests/sha512.phpt21
-rw-r--r--ext/hash/tests/snefru.phpt18
-rw-r--r--ext/hash/tests/tiger.phpt18
-rw-r--r--ext/hash/tests/whirlpool.phpt14
13 files changed, 317 insertions, 0 deletions
diff --git a/ext/hash/tests/gost.phpt b/ext/hash/tests/gost.phpt
new file mode 100644
index 0000000000..b800e112e8
--- /dev/null
+++ b/ext/hash/tests/gost.phpt
@@ -0,0 +1,20 @@
+--TEST--
+gost
+--SKIPIF--
+<?php extension_loaded('hash') or die('skip'); ?>
+--FILE--
+<?php
+echo hash('gost', ''), "\n";
+echo hash('gost', 'The quick brown fox jumps over the lazy dog'), "\n";
+echo hash('gost', 'The quick brown fox jumps over the lazy cog'), "\n";
+echo hash('gost', str_repeat('a', 31)), "\n";
+echo hash('gost', str_repeat('a', 32)), "\n";
+echo hash('gost', str_repeat('a', 33)), "\n";
+?>
+--EXPECT--
+ce85b99cc46752fffee35cab9a7b0278abb4c2d2055cff685af4912c49490f8d
+77b7fa410c9ac58a25f49bca7d0468c9296529315eaca76bd1a10f376d1f4294
+a3ebc4daaab78b0be131dab5737a7f67e602670d543521319150d2e14eeec445
+03840d6348763f11e28e7b1ecc4da0cdf7f898fa555b928ef684c6c5b8f46d9f
+fd1b746d9397e78edd311baef391450434271e02816caa37680d6d7381c79d4e
+715e59cdc8ebde9fdf0fe2a2e811b3bf7f48209a01505e467d2cd2aa2bbb5ecf
diff --git a/ext/hash/tests/haval.phpt b/ext/hash/tests/haval.phpt
new file mode 100644
index 0000000000..16db2fa694
--- /dev/null
+++ b/ext/hash/tests/haval.phpt
@@ -0,0 +1,76 @@
+--TEST--
+haval algorithm (multi-vector, multi-pass, multi-width)
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+echo "Empty String\n";
+for($pass=3; $pass<=5; $pass++)
+ for($bits=128; $bits <= 256; $bits += 32) {
+ $algo = sprintf('haval%d,%d',$bits,$pass);
+ echo $algo . ': ' . hash($algo,'') . "\n";
+ }
+
+echo "\"abc\"\n";
+for($pass=3; $pass<=5; $pass++)
+ for($bits=128; $bits <= 256; $bits += 32) {
+ $algo = sprintf('haval%d,%d',$bits,$pass);
+ echo $algo . ': ' . hash($algo,'abc') . "\n";
+ }
+
+echo "\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789\"\n";
+for($pass=3; $pass<=5; $pass++)
+ for($bits=128; $bits <= 256; $bits += 32) {
+ $algo = sprintf('haval%d,%d',$bits,$pass);
+ echo $algo . ': ' . hash($algo,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789') . "\n";
+ }
+
+--EXPECT--
+Empty String
+haval128,3: c68f39913f901f3ddf44c707357a7d70
+haval160,3: d353c3ae22a25401d257643836d7231a9a95f953
+haval192,3: e9c48d7903eaf2a91c5b350151efcb175c0fc82de2289a4e
+haval224,3: c5aae9d47bffcaaf84a8c6e7ccacd60a0dd1932be7b1a192b9214b6d
+haval256,3: 4f6938531f0bc8991f62da7bbd6f7de3fad44562b8c6f4ebf146d5b4e46f7c17
+haval128,4: ee6bbf4d6a46a679b3a856c88538bb98
+haval160,4: 1d33aae1be4146dbaaca0b6e70d7a11f10801525
+haval192,4: 4a8372945afa55c7dead800311272523ca19d42ea47b72da
+haval224,4: 3e56243275b3b81561750550e36fcd676ad2f5dd9e15f2e89e6ed78e
+haval256,4: c92b2e23091e80e375dadce26982482d197b1a2521be82da819f8ca2c579b99b
+haval128,5: 184b8482a0c050dca54b59c7f05bf5dd
+haval160,5: 255158cfc1eed1a7be7c55ddd64d9790415b933b
+haval192,5: 4839d0626f95935e17ee2fc4509387bbe2cc46cb382ffe85
+haval224,5: 4a0513c032754f5582a758d35917ac9adf3854219b39e3ac77d1837e
+haval256,5: be417bb4dd5cfb76c7126f4f8eeb1553a449039307b1a3cd451dbfdc0fbbe330
+"abc"
+haval128,3: 9e40ed883fb63e985d299b40cda2b8f2
+haval160,3: b21e876c4d391e2a897661149d83576b5530a089
+haval192,3: a7b14c9ef3092319b0e75e3b20b957d180bf20745629e8de
+haval224,3: 5bc955220ba2346a948d2848eca37bdd5eca6ecca7b594bd32923fab
+haval256,3: 8699f1e3384d05b2a84b032693e2b6f46df85a13a50d93808d6874bb8fb9e86c
+haval128,4: 6f2132867c9648419adcd5013e532fa2
+haval160,4: 77aca22f5b12cc09010afc9c0797308638b1cb9b
+haval192,4: 7e29881ed05c915903dd5e24a8e81cde5d910142ae66207c
+haval224,4: 124c43d2ba4884599d013e8c872bfea4c88b0b6bf6303974cbe04e68
+haval256,4: 8f409f1bb6b30c5016fdce55f652642261575bedca0b9533f32f5455459142b5
+haval128,5: d054232fe874d9c6c6dc8e6a853519ea
+haval160,5: ae646b04845e3351f00c5161d138940e1fa0c11c
+haval192,5: d12091104555b00119a8d07808a3380bf9e60018915b9025
+haval224,5: 8081027a500147c512e5f1055986674d746d92af4841abeb89da64ad
+haval256,5: 976cd6254c337969e5913b158392a2921af16fca51f5601d486e0a9de01156e7
+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789"
+haval128,3: ddf4304cc5ffa3db8aab60d4f8fc2a00
+haval160,3: e709559359b15917623050e41d27a306c6c3a9db
+haval192,3: 51e25280ad356c06f4b913b3cdb3abaaac5879dda0a4fea4
+haval224,3: 28aa2c164e10bb3076574cc8aa8584fd6d04f6d82c37ea5c21e451b3
+haval256,3: 5537364e3d75174b846d21adf9b113f9d8f97e4750df64d428c01e782f9ade4d
+haval128,4: c7d981e8270e39888ba96cafe8745636
+haval160,4: 3444e38cc2a132b818b554ced8f7d9592df28f57
+haval192,4: 0ca58f140ed92828a27913ce5636611abcada220fccf3af7
+haval224,4: a9d0571d0857773e71363e4e9dfcca4696dba3e5019e7225e65e0cb1
+haval256,4: 1858d106bdc2fc787445364a163cfc6027597a45a58a2490d14203c8b9bdd268
+haval128,5: d41e927ea041d2f0c255352b1a9f6195
+haval160,5: f3245e222e6581d0c3077bd7af322af4b4fedab7
+haval192,5: fc45dc17a7b19adfed2a6485921f7af7951d70703b9357c1
+haval224,5: 29687958a6f0d54d495105df00dbda0153ee0f5708408db68a5bbea5
+haval256,5: f93421623f852ac877584d1e4bba5d9345a95f81bfd277fe36dfeed1815f83d5
diff --git a/ext/hash/tests/hmac-md5.phpt b/ext/hash/tests/hmac-md5.phpt
new file mode 100644
index 0000000000..283285a544
--- /dev/null
+++ b/ext/hash/tests/hmac-md5.phpt
@@ -0,0 +1,20 @@
+--TEST--
+hmac-md5 algorithm
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+/* Test Vectors from RFC 2104 */
+$ctx = hash_init('md5',HASH_HMAC,str_repeat(chr(0x0b), 16));
+hash_update($ctx, 'Hi There');
+echo hash_final($ctx) . "\n";
+
+$ctx = hash_init('md5',HASH_HMAC,'Jefe');
+hash_update($ctx, 'what do ya want for nothing?');
+echo hash_final($ctx) . "\n";
+
+echo hash_hmac('md5', str_repeat(chr(0xDD), 50), str_repeat(chr(0xAA), 16)) . "\n";
+--EXPECT--
+9294727a3638bb1c13f48ef8158bfc9d
+750c783e6ab0b503eaa86e310a5db738
+56be34521d144c88dbb8c733f0e8b3f6
diff --git a/ext/hash/tests/md5.phpt b/ext/hash/tests/md5.phpt
new file mode 100644
index 0000000000..d56f0b91a0
--- /dev/null
+++ b/ext/hash/tests/md5.phpt
@@ -0,0 +1,16 @@
+--TEST--
+md5 algorithm
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+echo hash('md5', '') . "\n";
+echo hash('md5', 'a') . "\n";
+echo hash('md5', '012345678901234567890123456789012345678901234567890123456789') . "\n";
+echo hash('md5', str_repeat('a', 1000000)) . "\n";
+--EXPECT--
+d41d8cd98f00b204e9800998ecf8427e
+0cc175b9c0f1b6a831c399e269772661
+1ced811af47ead374872fcca9d73dd71
+7707d6ae4e027c70eea2a935c2296f21
+
diff --git a/ext/hash/tests/ripemd128.phpt b/ext/hash/tests/ripemd128.phpt
new file mode 100644
index 0000000000..e7473e316c
--- /dev/null
+++ b/ext/hash/tests/ripemd128.phpt
@@ -0,0 +1,25 @@
+--TEST--
+ripemd128 algorithm
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+echo hash('ripemd128', '') . "\n";
+echo hash('ripemd128', 'a') . "\n";
+echo hash('ripemd128', 'abc') . "\n";
+echo hash('ripemd128', 'message digest') . "\n";
+echo hash('ripemd128', 'abcdefghijklmnopqrstuvwxyz') . "\n";
+echo hash('ripemd128', 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq') . "\n";
+echo hash('ripemd128', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') . "\n";
+echo hash('ripemd128', '12345678901234567890123456789012345678901234567890123456789012345678901234567890') . "\n";
+echo hash('ripemd128', str_repeat('a', 1000000)) . "\n";
+--EXPECT--
+cdf26213a150dc3ecb610f18f6b38b46
+86be7afa339d0fc7cfc785e72f578d33
+c14a12199c66e4ba84636b0f69144c77
+9e327b3d6e523062afc1132d7df9d1b8
+fd2aa607f71dc8f510714922b371834e
+a1aa0689d0fafa2ddc22e88b49133a06
+d1e959eb179c911faea4624c60c5c702
+3f45ef194732c2dbb2c4a2c769795fa3
+4a7f5723f954eba1216c9d8f6320431f
diff --git a/ext/hash/tests/ripemd160.phpt b/ext/hash/tests/ripemd160.phpt
new file mode 100644
index 0000000000..8fe7b05296
--- /dev/null
+++ b/ext/hash/tests/ripemd160.phpt
@@ -0,0 +1,25 @@
+--TEST--
+ripemd160 algorithm
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+echo hash('ripemd160', '') . "\n";
+echo hash('ripemd160', 'a') . "\n";
+echo hash('ripemd160', 'abc') . "\n";
+echo hash('ripemd160', 'message digest') . "\n";
+echo hash('ripemd160', 'abcdefghijklmnopqrstuvwxyz') . "\n";
+echo hash('ripemd160', 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq') . "\n";
+echo hash('ripemd160', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') . "\n";
+echo hash('ripemd160', '12345678901234567890123456789012345678901234567890123456789012345678901234567890') . "\n";
+echo hash('ripemd160', str_repeat('a', 1000000)) . "\n";
+--EXPECT--
+9c1185a5c5e9fc54612808977ee8f548b2258d31
+0bdc9d2d256b3ee9daae347be6f4dc835a467ffe
+8eb208f7e05d987a9b044a8e98c6b087f15a0bfc
+5d0689ef49d2fae572b881b123a85ffa21595f36
+f71c27109c692c1b56bbdceb5b9d2865b3708dbc
+12a053384a9c0c88e405a06c27dcf49ada62eb2b
+b0e20b6e3116640286ed3a87a5713079b21f5189
+9b752e45573d4b39f4dbd3323cab82bf63326bfb
+52783243c1697bdbe16d37f97f68f08325dc1528
diff --git a/ext/hash/tests/sha1.phpt b/ext/hash/tests/sha1.phpt
new file mode 100644
index 0000000000..b193781653
--- /dev/null
+++ b/ext/hash/tests/sha1.phpt
@@ -0,0 +1,21 @@
+--TEST--
+sha1 algorithm
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+echo hash('sha1', '') . "\n";
+echo hash('sha1', 'a') . "\n";
+echo hash('sha1', '012345678901234567890123456789012345678901234567890123456789') . "\n";
+
+/* FIPS-180 Vectors */
+echo hash('sha1', 'abc') . "\n";
+echo hash('sha1', 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq') . "\n";
+echo hash('sha1', str_repeat('a', 1000000)) . "\n";
+--EXPECT--
+da39a3ee5e6b4b0d3255bfef95601890afd80709
+86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
+f52e3c2732de7bea28f216d877d78dae1aa1ac6a
+a9993e364706816aba3e25717850c26c9cd0d89d
+84983e441c3bd26ebaae4aa1f95129e5e54670f1
+34aa973cd4c4daa4f61eeb2bdbad27316534016f
diff --git a/ext/hash/tests/sha256.phpt b/ext/hash/tests/sha256.phpt
new file mode 100644
index 0000000000..04b1c11abd
--- /dev/null
+++ b/ext/hash/tests/sha256.phpt
@@ -0,0 +1,22 @@
+--TEST--
+sha256 algorithm
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+echo hash('sha256', '') . "\n";
+echo hash('sha256', 'a') . "\n";
+echo hash('sha256', '012345678901234567890123456789012345678901234567890123456789') . "\n";
+
+/* FIPS-180 Vectors */
+echo hash('sha256', 'abc') . "\n";
+echo hash('sha256', 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq') . "\n";
+echo hash('sha256', str_repeat('a', 1000000)) . "\n";
+--EXPECT--
+e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
+ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
+5e43c8704ac81f33d701c1ace046ba9f257062b4d17e78f3254cbf243177e4f2
+ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
+248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
+cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0
+
diff --git a/ext/hash/tests/sha384.phpt b/ext/hash/tests/sha384.phpt
new file mode 100644
index 0000000000..e5be2ab274
--- /dev/null
+++ b/ext/hash/tests/sha384.phpt
@@ -0,0 +1,21 @@
+--TEST--
+sha384 algorithm
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+echo hash('sha384', '') . "\n";
+echo hash('sha384', 'a') . "\n";
+echo hash('sha384', '012345678901234567890123456789012345678901234567890123456789') . "\n";
+
+/* FIPS-180 Vectors */
+echo hash('sha384', 'abc') . "\n";
+echo hash('sha384', 'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu') . "\n";
+echo hash('sha384', str_repeat('a', 1000000)) . "\n";
+--EXPECT--
+38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b
+54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31
+ce6bebce38aad0fd35805b50f77f3e1814d46df8e930356ec905a5d7b94bfa615fce4c3b6caf50eb4a7f1a1164887470
+cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7
+09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039
+9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985
diff --git a/ext/hash/tests/sha512.phpt b/ext/hash/tests/sha512.phpt
new file mode 100644
index 0000000000..93fbb20d63
--- /dev/null
+++ b/ext/hash/tests/sha512.phpt
@@ -0,0 +1,21 @@
+--TEST--
+sha512 algorithm
+--SKIPIF--
+<?php if(!extension_loaded("hash")) print "skip"; ?>
+--FILE--
+<?php
+echo hash('sha512', '') . "\n";
+echo hash('sha512', 'a') . "\n";
+echo hash('sha512', '012345678901234567890123456789012345678901234567890123456789') . "\n";
+
+/* FIPS-180 Vectors */
+echo hash('sha512', 'abc') . "\n";
+echo hash('sha512', 'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu') . "\n";
+echo hash('sha512', str_repeat('a', 1000000)) . "\n";
+--EXPECT--
+cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
+1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75
+e3e33e00eec4753ea01c134b21c52badc44d364648ba2321ff18aa213902759b04f7f0dbfff426acec097c09476adcd0666d2d86e8cc2fcd4f7c549acbfbfd94
+ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
+8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909
+e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b
diff --git a/ext/hash/tests/snefru.phpt b/ext/hash/tests/snefru.phpt
new file mode 100644
index 0000000000..1b0dfa70fe
--- /dev/null
+++ b/ext/hash/tests/snefru.phpt
@@ -0,0 +1,18 @@
+--TEST--
+snefru
+--SKIPIF--
+<?php extension_loaded('hash') or die('skip'); ?>
+--FILE--
+<?php
+echo hash('snefru', ''), "\n";
+echo hash('snefru', 'The quick brown fox jumps over the lazy dog'), "\n";
+echo hash('snefru', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'), "\n";
+echo hash('snefru', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'), "\n";
+echo hash('snefru', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'), "\n";
+?>
+--EXPECT--
+8617f366566a011837f4fb4ba5bedea2b892f3ed8b894023d16ae344b2be5881
+674caa75f9d8fd2089856b95e93a4fb42fa6c8702f8980e11d97a142d76cb358
+94682bc46e5fbb8417e2f3e10ed360484048d946bb8cbb0ea4cad2700dbeaab0
+c54c602ac46383716ee7200a76c9c90a7b435bbe31d13f04e0b00a7ea5c347fa
+7a8539c59e192e8d70b1ab82aa86a1b54560d42020bda4e00ddd6d048fe3bcaa
diff --git a/ext/hash/tests/tiger.phpt b/ext/hash/tests/tiger.phpt
new file mode 100644
index 0000000000..ee3f249bf1
--- /dev/null
+++ b/ext/hash/tests/tiger.phpt
@@ -0,0 +1,18 @@
+--TEST--
+tiger
+--SKIPIF--
+<?php extension_loaded('hash') or die('skip'); ?>
+--FILE--
+<?php
+echo hash('tiger192,3', ''),"\n";
+echo hash('tiger192,3', 'abc'),"\n";
+echo hash('tiger192,3', str_repeat('a', 63)),"\n";
+echo hash('tiger192,3', str_repeat('abc', 61)),"\n";
+echo hash('tiger192,3', str_repeat('abc', 64)),"\n";
+?>
+--EXPECT--
+24f0130c63ac933216166e76b1bb925ff373de2d49584e7a
+f258c1e88414ab2a527ab541ffc5b8bf935f7b951c132951
+8ee409a14e6066933b63d5b2abca63d71a78f55e29eb4649
+2586156d16bf9ab1e6e48bdf5e038f8053c30e071db3bcb0
+3ee8a9405396ddba1bc038508af4164ac1fe59ef58916a85
diff --git a/ext/hash/tests/whirlpool.phpt b/ext/hash/tests/whirlpool.phpt
new file mode 100644
index 0000000000..5f9dd164de
--- /dev/null
+++ b/ext/hash/tests/whirlpool.phpt
@@ -0,0 +1,14 @@
+--TEST--
+whirlpool
+--SKIPIF--
+<?php extension_loaded('hash') or die('skip'); ?>
+--FILE--
+<?php
+echo hash('whirlpool', ''), "\n";
+echo hash('whirlpool', $s='---qwertzuiopasdfghjklyxcvbnm------qwertzuiopasdfghjklyxcvbnm---'), "\n";
+echo hash('whirlpool', str_repeat($s.'0', 1000)), "\n";
+?>
+--EXPECT--
+19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3
+916ce6431d2f384be68d96bcaba800c21b82e9cc2f07076554c9557f85476b5d8f2b263951121fa955e34b31a4cdc857bdf076b123c2252543dcef34f84a7ef3
+b51984710d11893ac08e10529519f9801d82ea534629d14bc8c810307934496017ccdf23bfcb62c7e1259664e84c9388ff646b0b46688b0a6c32e5571234dd95