13 changed files with 417 additions and 480 deletions
-
2ext/hash/CREDITS
-
8ext/hash/config.m4
-
269ext/hash/hash.c
-
73ext/hash/tests/mhash_001.phpt
-
2ext/hash/tests/mhash_002.phpt
-
71ext/hash/tests/mhash_003.phpt
-
0ext/hash/tests/skip_mhash.inc
-
13ext/mhash/config.m4
-
186ext/mhash/mhash.c
-
115ext/mhash/mhash.dsp
-
11ext/mhash/php_mhash.h
-
74ext/mhash/tests/001.phpt
-
73ext/mhash/tests/003.phpt
@ -1,2 +1,2 @@ |
|||
PHP hash |
|||
Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner |
|||
Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner, Scott MacVicar |
|||
@ -0,0 +1,73 @@ |
|||
--TEST-- |
|||
mhash() test |
|||
--INI-- |
|||
magic_quotes_runtime=0 |
|||
--SKIPIF-- |
|||
<?php |
|||
include "skip_mhash.inc"; |
|||
?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$supported_hash_al = array( |
|||
"MHASH_MD5" => "2d9bdb91f94e96d9c4e2ae532acc936a", |
|||
"MHASH_SHA1" => "2f9341e55a9083edf5497bf83ba3db812a7de0a3", |
|||
"MHASH_HAVAL256" => "b255feff01ad641b27358dc7909bc695a1fca53bddfdfaf19020b275928793af", |
|||
"MHASH_HAVAL192" => "4ce837de481e1e30092ab2c610057094c988dfd7db1e01cd", |
|||
"MHASH_HAVAL224" => "5362d1856752bf2c139bb2d6fdd772b9c515c8ce5ec82695264b85e1", |
|||
"MHASH_HAVAL160" => "c6b36f87750b18576981bc17b4f22271947bf9cb", |
|||
"MHASH_RIPEMD160" => "6c47435aa1d359c4b7c6af46349f0c3e1258583d", |
|||
"MHASH_GOST" => "101b0a2552cebdf5137cadf15147f21e55b6432935bb9c2c03c7e28d188b2d9e", |
|||
"MHASH_TIGER" => "fdb9019a79c33a95677e2097abae91eb0de00b3054bb5c39", |
|||
"MHASH_CRC32" => "83041db8", |
|||
"MHASH_CRC32B" => "a4b75adf" |
|||
); |
|||
|
|||
$data = "This is the test of the mhash extension..."; |
|||
|
|||
foreach ($supported_hash_al as $hash=>$wanted) { |
|||
$result = mhash(constant($hash), $data); |
|||
if (bin2hex($result)==$wanted) { |
|||
echo "$hash\nok\n"; |
|||
} else { |
|||
echo "$hash: "; |
|||
var_dump($wanted); |
|||
echo "$hash: "; |
|||
var_dump($result); |
|||
} |
|||
echo "\n"; |
|||
} |
|||
?> |
|||
--EXPECT-- |
|||
MHASH_MD5 |
|||
ok |
|||
|
|||
MHASH_SHA1 |
|||
ok |
|||
|
|||
MHASH_HAVAL256 |
|||
ok |
|||
|
|||
MHASH_HAVAL192 |
|||
ok |
|||
|
|||
MHASH_HAVAL224 |
|||
ok |
|||
|
|||
MHASH_HAVAL160 |
|||
ok |
|||
|
|||
MHASH_RIPEMD160 |
|||
ok |
|||
|
|||
MHASH_GOST |
|||
ok |
|||
|
|||
MHASH_TIGER |
|||
ok |
|||
|
|||
MHASH_CRC32 |
|||
ok |
|||
|
|||
MHASH_CRC32B |
|||
ok |
|||
@ -0,0 +1,71 @@ |
|||
--TEST-- |
|||
mhash_keygen_s2k() test |
|||
--SKIPIF-- |
|||
<?php |
|||
include "skip_mhash.inc"; |
|||
?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$supported_hash_al = array( |
|||
"MHASH_MD5" => "8690154eaf9432cde9347aa15094b9c046eb06e6a0940c5479aa7a6367ae68b5e0e0745e5709fede2d9fe9739d9aad413759faa73acced821077b4ddb2788064e371eb53b3a9d55ed2839aab2655c82cfedbe83a208461c799d9d77ae481061c81539b01", |
|||
"MHASH_SHA1" => "dd315c70061d07455d53c2fb0b08df0c61aa665c1ab1a701fa10955423248ba832a5ade406b39b78630aba3d1688e622494a0eae279d4ece9ad4bdf76e878fcb084a33c9153c2b48131d30a75b00a7c05b91f1ffeabf59bb1271c4d8a11990b84baf6d49", |
|||
"MHASH_HAVAL256" => "0ede47009f87d5e9a24ecf5077d60c483657a5d98404ab2bb780f5872c90caf61c0d67645a848e55fee107296f4169c95b4e61f0aeeefab2648554c1171fb0a2fc32aa5aeed3d5c155d334367d4959622cdadefe43ae17bd1a75f9d4fef77bf192be5b78", |
|||
"MHASH_HAVAL224" => "5c4aff3d825ad608f608c8eae779ee3868610bc60a98f3d770b311a6677c797fc2dadcab71dde0c0191e068397ab297f0de5cbbc6cbcd0c78ca8470c42401f6b77e81dc2ba8d51930ff982760335324fb850ac2d30b73514004c096d60472d320e0ec349", |
|||
"MHASH_HAVAL192" => "22e0c27126023c852ef94107bb2f1ee132b064178b9dcbfb1c32e658760b8f70bdc5b1c52599031628c2433bee2b0870ab7a38aeb21215134ec1088975b9a96487642971ef9eb3d987baf9765fd9e6d64d494e1719aa84afe7e0a0784c74979ebab1c787", |
|||
"MHASH_HAVAL160" => "d6e5f0ef07f3facced646eedb6364758ecde6dc6fb061e00a496f5ceb723f78ea135884d9682226ded69c11d8431240ef97cad583c4f29593bbf3dd3cab0b8792eb3d86022ca6002ebd0d9b4429909d4af85bed2b5a96b3e47b9b8cac919c1177ec40d7e", |
|||
"MHASH_RIPEMD160" => "e4d5db469af29f78e2b90dc735c9cf020a1d5b19a6674458677794d4dca144d426c562aff98d8e866a8a924299ebf6b0ea9a1637f987a1fb5de9b647edc35b1447605e1babc3084be7a003931117eb33432d4142e225df044b033f3ff64bb4a18682a4f9", |
|||
"MHASH_GOST" => "c044f669bd7e8643953d77c682fd179242d9df157dadf873be4d9601e4647c018234689359e7220ab0492a6240d184c478634073dea87f79be7f86fd4e2564f7d709b68a46440a121250e00fc7d57d45a9c07ee23a704ff4148c0dad7077ec527b194d87", |
|||
"MHASH_TIGER" => "67eac97b9dca0a47b1f6262f330264e4ce1c233760fe3255f642512fd3127929baccf1e758236b2768a4c2c0c06e118b19e40e2f04a5f745820fb8a99bdbc00698702a4d3120171856c4c94bda79ba1b4f60d509d7f8954da818a29797368dd47c1122aa", |
|||
"MHASH_CRC32" => "481c40148c26185f9a59ef18e86f51c5d2d0315b46711d22ae08c1ccdd669fe956c817380815e3a545f6ee453c9da48d1d994dbc3ac8ba85a572108412f06b2a16b1489cda75b118e82f7d9bdfdb68336957bbf19e4a3f76750d6985a53dd557229dfcf3", |
|||
"MHASH_CRC32B" => "b56cab65a63e7dfb2aa95d7fb646d79b36138a6243cdcb8f2e0949af0f966a9ccea530d0db0d1f3c98c62e5179e796beb68d7469fdb07862d8247d830bf598c8b49309d7cfacc88c44c5444b8513e931754cf0dd36a7a160f7e6c98f907c4563f1047fb0" |
|||
); |
|||
|
|||
foreach ($supported_hash_al as $hash=>$wanted) { |
|||
$passwd = str_repeat($hash, 10); |
|||
$salt = str_repeat($hash, 2); |
|||
$result = mhash_keygen_s2k(constant($hash), $passwd, $salt, 100); |
|||
if (!strcmp(bin2hex($result), $wanted)) { |
|||
echo "$hash\nok\n"; |
|||
} else { |
|||
echo "$hash: "; |
|||
var_dump($wanted); |
|||
echo "$hash: "; |
|||
var_dump(bin2hex($result)); |
|||
} |
|||
echo "\n"; |
|||
} |
|||
?> |
|||
--EXPECT-- |
|||
MHASH_MD5 |
|||
ok |
|||
|
|||
MHASH_SHA1 |
|||
ok |
|||
|
|||
MHASH_HAVAL256 |
|||
ok |
|||
|
|||
MHASH_HAVAL224 |
|||
ok |
|||
|
|||
MHASH_HAVAL192 |
|||
ok |
|||
|
|||
MHASH_HAVAL160 |
|||
ok |
|||
|
|||
MHASH_RIPEMD160 |
|||
ok |
|||
|
|||
MHASH_GOST |
|||
ok |
|||
|
|||
MHASH_TIGER |
|||
ok |
|||
|
|||
MHASH_CRC32 |
|||
ok |
|||
|
|||
MHASH_CRC32B |
|||
ok |
|||
@ -1,115 +0,0 @@ |
|||
# Microsoft Developer Studio Project File - Name="mhash" - Package Owner=<4> |
|||
# Microsoft Developer Studio Generated Build File, Format Version 6.00 |
|||
# ** DO NOT EDIT ** |
|||
|
|||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 |
|||
|
|||
CFG=mhash - Win32 Release_TS |
|||
!MESSAGE This is not a valid makefile. To build this project using NMAKE, |
|||
!MESSAGE use the Export Makefile command and run |
|||
!MESSAGE |
|||
!MESSAGE NMAKE /f "mhash.mak". |
|||
!MESSAGE |
|||
!MESSAGE You can specify a configuration when running NMAKE |
|||
!MESSAGE by defining the macro CFG on the command line. For example: |
|||
!MESSAGE |
|||
!MESSAGE NMAKE /f "mhash.mak" CFG="mhash - Win32 Release_TS" |
|||
!MESSAGE |
|||
!MESSAGE Possible choices for configuration are: |
|||
!MESSAGE |
|||
!MESSAGE "mhash - Win32 Release_TS" (based on "Win32 (x86) Dynamic-Link Library") |
|||
!MESSAGE "mhash - Win32 Debug_TS" (based on "Win32 (x86) Dynamic-Link Library") |
|||
!MESSAGE |
|||
|
|||
# Begin Project |
|||
# PROP AllowPerConfigDependencies 0 |
|||
# PROP Scc_ProjName "" |
|||
# PROP Scc_LocalPath "" |
|||
CPP=cl.exe |
|||
MTL=midl.exe |
|||
RSC=rc.exe |
|||
|
|||
!IF "$(CFG)" == "mhash - Win32 Release_TS" |
|||
|
|||
# PROP BASE Use_MFC 0 |
|||
# PROP BASE Use_Debug_Libraries 0 |
|||
# PROP BASE Output_Dir "Release_TS" |
|||
# PROP BASE Intermediate_Dir "Release_TS" |
|||
# PROP BASE Ignore_Export_Lib 0 |
|||
# PROP BASE Target_Dir "" |
|||
# PROP Use_MFC 0 |
|||
# PROP Use_Debug_Libraries 0 |
|||
# PROP Output_Dir "..\..\Release_TS" |
|||
# PROP Intermediate_Dir "Release_TS" |
|||
# PROP Ignore_Export_Lib 0 |
|||
# PROP Target_Dir "" |
|||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\Zend" /I "..\..\..\TSRM" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMPILE_DL_MHASH" /D ZTS=1 /YX /FD /c |
|||
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\main" /I "..\..\win32" /D "WIN32" /D "MHASH_EXPORTS" /D "COMPILE_DL_MHASH" /D HAVE_LIBMHASH=1 /D ZEND_DEBUG=0 /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZEND_WIN32" /D "PHP_WIN32" /D ZTS=1 /YX /FD /c |
|||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 |
|||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 |
|||
# ADD BASE RSC /l 0x406 /d "NDEBUG" |
|||
# ADD RSC /l 0x406 /d "NDEBUG" |
|||
BSC32=bscmake.exe |
|||
# ADD BASE BSC32 /nologo |
|||
# ADD BSC32 /nologo |
|||
LINK32=link.exe |
|||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib php5ts.lib /nologo /dll /machine:I386 |
|||
# ADD LINK32 php5ts.lib libmhash.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Release_TS/php_mhash.dll" /libpath:"..\..\Release_TS" /libpath:"..\..\Release_TS_Inline" |
|||
# SUBTRACT LINK32 /pdb:none |
|||
|
|||
!ELSEIF "$(CFG)" == "mhash - Win32 Debug_TS" |
|||
|
|||
# PROP BASE Use_MFC 0 |
|||
# PROP BASE Use_Debug_Libraries 0 |
|||
# PROP BASE Output_Dir "Debug_TS" |
|||
# PROP BASE Intermediate_Dir "Debug_TS" |
|||
# PROP BASE Ignore_Export_Lib 0 |
|||
# PROP BASE Target_Dir "" |
|||
# PROP Use_MFC 0 |
|||
# PROP Use_Debug_Libraries 0 |
|||
# PROP Output_Dir "..\..\Debug_TS" |
|||
# PROP Intermediate_Dir "Debug_TS" |
|||
# PROP Ignore_Export_Lib 0 |
|||
# PROP Target_Dir "" |
|||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMPILE_DL_MHASH" /D ZTS=1 /YX /FD /c |
|||
# ADD CPP /nologo /MDd /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\main" /I "..\..\win32" /D ZEND_DEBUG=1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MHASH_EXPORTS" /D "COMPILE_DL_MHASH" /D "ZEND_WIN32" /D "PHP_WIN32" /D HAVE_MHASH=1 /D ZTS=1 /YX /FD /c |
|||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 |
|||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 |
|||
# ADD BASE RSC /l 0x406 /d "NDEBUG" |
|||
# ADD RSC /l 0x406 /d "NDEBUG" |
|||
BSC32=bscmake.exe |
|||
# ADD BASE BSC32 /nologo |
|||
# ADD BSC32 /nologo |
|||
LINK32=link.exe |
|||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib php5ts_debug.lib /nologo /dll /machine:I386 |
|||
# ADD LINK32 php5ts_debug.lib libmhash.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Debug_TS/php_mhash.dll" /libpath:"..\..\Debug_TS" |
|||
# SUBTRACT LINK32 /pdb:none |
|||
|
|||
!ENDIF |
|||
|
|||
# Begin Target |
|||
|
|||
# Name "mhash - Win32 Release_TS" |
|||
# Name "mhash - Win32 Debug_TS" |
|||
# Begin Group "Source Files" |
|||
|
|||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" |
|||
# Begin Source File |
|||
|
|||
SOURCE=.\mhash.c |
|||
# End Source File |
|||
# End Group |
|||
# Begin Group "Header Files" |
|||
|
|||
# PROP Default_Filter "h;hpp;hxx;hm;inl" |
|||
# Begin Source File |
|||
|
|||
SOURCE=.\php_mhash.h |
|||
# End Source File |
|||
# End Group |
|||
# Begin Group "Resource Files" |
|||
|
|||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" |
|||
# End Group |
|||
# End Target |
|||
# End Project |
|||
@ -1,74 +0,0 @@ |
|||
--TEST-- |
|||
mhash() test |
|||
--INI-- |
|||
magic_quotes_runtime=0 |
|||
--SKIPIF-- |
|||
<?php |
|||
include "skip.inc"; |
|||
?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$supported_hash_al = array( |
|||
"MHASH_MD5" => "-›Û‘ùN–ÙÄâ®S*Ì“j", |
|||
"MHASH_SHA1" => "/“AåZ�ƒíõI{ø;£Û�*}à£", |
|||
"MHASH_HAVAL256" => "²Uþÿd'5�Ç�›Æ•¡ü¥;Ýýúñ� ²u’‡“¯", |
|||
"MHASH_HAVAL192" => "Lè7ÞH0 *²Æp”Ɉß×ÛÍ", |
|||
"MHASH_HAVAL224" => "SbÑ…gR¿,›²Öý×r¹ÅÈÎ^È&•&K…á", |
|||
"MHASH_HAVAL160" => "Ƴo‡uWi�¼´ò\"q”{ùË", |
|||
"MHASH_RIPEMD160" => "lGCZ¡ÓYķƯF4Ÿ\x0C>XX=", |
|||
"MHASH_GOST" => "\x0A%Rνõ|ñQGòU¶C)5»œ,Çâ�‹-ž", |
|||
"MHASH_TIGER" => "ý¹šyÃ:•g~ —«®‘ë |
|||
à0T»\9", |
|||
"MHASH_CRC32" => "ƒ¸", |
|||
"MHASH_CRC32B" => "¤·Zß" |
|||
); |
|||
|
|||
$data = "This is the test of the mhash extension..."; |
|||
|
|||
foreach ($supported_hash_al as $hash=>$wanted) { |
|||
$result = mhash(constant($hash), $data); |
|||
if ($result==$wanted) { |
|||
echo "$hash\nok\n"; |
|||
} else { |
|||
echo "$hash: "; |
|||
var_dump($wanted); |
|||
echo "$hash: "; |
|||
var_dump($result); |
|||
} |
|||
echo "\n"; |
|||
} |
|||
?> |
|||
--EXPECT-- |
|||
MHASH_MD5 |
|||
ok |
|||
|
|||
MHASH_SHA1 |
|||
ok |
|||
|
|||
MHASH_HAVAL256 |
|||
ok |
|||
|
|||
MHASH_HAVAL192 |
|||
ok |
|||
|
|||
MHASH_HAVAL224 |
|||
ok |
|||
|
|||
MHASH_HAVAL160 |
|||
ok |
|||
|
|||
MHASH_RIPEMD160 |
|||
ok |
|||
|
|||
MHASH_GOST |
|||
ok |
|||
|
|||
MHASH_TIGER |
|||
ok |
|||
|
|||
MHASH_CRC32 |
|||
ok |
|||
|
|||
MHASH_CRC32B |
|||
ok |
|||
@ -1,73 +0,0 @@ |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
� |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue