From 7c510d6f43b089888da8ce878702b965b8959df6 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Tue, 6 Dec 2005 02:04:58 +0000 Subject: [PATCH] Initial attempt at Whirlpool assembler support on VC++. --- ms/do_masm.bat | 131 +++++++++++++++++++++++---------------------- ms/do_nasm.bat | 135 ++++++++++++++++++++++++----------------------- util/mk1mf.pl | 8 +++ util/pl/VC-32.pl | 4 +- 4 files changed, 149 insertions(+), 129 deletions(-) diff --git a/ms/do_masm.bat b/ms/do_masm.bat index 720d6f367b..543840a3c5 100755 --- a/ms/do_masm.bat +++ b/ms/do_masm.bat @@ -1,63 +1,68 @@ -@echo off -echo Generating x86 for MASM assember - -echo Bignum -cd crypto\bn\asm -perl x86.pl win32 > bn_win32.asm -cd ..\..\.. - -echo DES -cd crypto\des\asm -perl des-586.pl win32 > d_win32.asm -cd ..\..\.. - -echo "crypt(3)" - -cd crypto\des\asm -perl crypt586.pl win32 > y_win32.asm -cd ..\..\.. - -echo Blowfish - -cd crypto\bf\asm -perl bf-586.pl win32 > b_win32.asm -cd ..\..\.. - -echo CAST5 -cd crypto\cast\asm -perl cast-586.pl win32 > c_win32.asm -cd ..\..\.. - -echo RC4 -cd crypto\rc4\asm -perl rc4-586.pl win32 > r4_win32.asm -cd ..\..\.. - -echo MD5 -cd crypto\md5\asm -perl md5-586.pl win32 > m5_win32.asm -cd ..\..\.. - -echo SHA1 -cd crypto\sha\asm -perl sha1-586.pl win32 > s1_win32.asm -cd ..\..\.. - -echo RIPEMD160 -cd crypto\ripemd\asm -perl rmd-586.pl win32 > rm_win32.asm -cd ..\..\.. - -echo RC5\32 -cd crypto\rc5\asm -perl rc5-586.pl win32 > r5_win32.asm -cd ..\..\.. - -echo on - -perl util\mkfiles.pl >MINFO -perl util\mk1mf.pl VC-WIN32 >ms\nt.mak -perl util\mk1mf.pl dll VC-WIN32 >ms\ntdll.mak - -perl util\mkdef.pl 32 libeay > ms\libeay32.def -perl util\mkdef.pl 32 ssleay > ms\ssleay32.def +@echo off +echo Generating x86 for MASM assember + +echo Bignum +cd crypto\bn\asm +perl x86.pl win32 > bn_win32.asm +cd ..\..\.. + +echo DES +cd crypto\des\asm +perl des-586.pl win32 > d_win32.asm +cd ..\..\.. + +echo "crypt(3)" + +cd crypto\des\asm +perl crypt586.pl win32 > y_win32.asm +cd ..\..\.. + +echo Blowfish + +cd crypto\bf\asm +perl bf-586.pl win32 > b_win32.asm +cd ..\..\.. + +echo CAST5 +cd crypto\cast\asm +perl cast-586.pl win32 > c_win32.asm +cd ..\..\.. + +echo RC4 +cd crypto\rc4\asm +perl rc4-586.pl win32 > r4_win32.asm +cd ..\..\.. + +echo MD5 +cd crypto\md5\asm +perl md5-586.pl win32 > m5_win32.asm +cd ..\..\.. + +echo SHA1 +cd crypto\sha\asm +perl sha1-586.pl win32 > s1_win32.asm +cd ..\..\.. + +echo RIPEMD160 +cd crypto\ripemd\asm +perl rmd-586.pl win32 > rm_win32.asm +cd ..\..\.. + +echo RC5\32 +cd crypto\rc5\asm +perl rc5-586.pl win32 > r5_win32.asm +cd ..\..\.. + +echo Whirlpool +cd crypto\whrlpool\asm +perl wp-mmx.pl win32 > wp_win32.asm +cd ..\..\.. + +echo on + +perl util\mkfiles.pl >MINFO +perl util\mk1mf.pl VC-WIN32 >ms\nt.mak +perl util\mk1mf.pl dll VC-WIN32 >ms\ntdll.mak + +perl util\mkdef.pl 32 libeay > ms\libeay32.def +perl util\mkdef.pl 32 ssleay > ms\ssleay32.def diff --git a/ms/do_nasm.bat b/ms/do_nasm.bat index 0b51f80704..29a95891c6 100755 --- a/ms/do_nasm.bat +++ b/ms/do_nasm.bat @@ -1,65 +1,70 @@ - -@echo off -echo Generating x86 for NASM assember - -echo Bignum -cd crypto\bn\asm -perl x86.pl win32n > bn_win32.asm -cd ..\..\.. - -echo DES -cd crypto\des\asm -perl des-586.pl win32n > d_win32.asm -cd ..\..\.. - -echo "crypt(3)" - -cd crypto\des\asm -perl crypt586.pl win32n > y_win32.asm -cd ..\..\.. - -echo Blowfish - -cd crypto\bf\asm -perl bf-586.pl win32n > b_win32.asm -cd ..\..\.. - -echo CAST5 -cd crypto\cast\asm -perl cast-586.pl win32n > c_win32.asm -cd ..\..\.. - -echo RC4 -cd crypto\rc4\asm -perl rc4-586.pl win32n > r4_win32.asm -cd ..\..\.. - -echo MD5 -cd crypto\md5\asm -perl md5-586.pl win32n > m5_win32.asm -cd ..\..\.. - -echo SHA1 -cd crypto\sha\asm -perl sha1-586.pl win32n > s1_win32.asm -cd ..\..\.. - -echo RIPEMD160 -cd crypto\ripemd\asm -perl rmd-586.pl win32n > rm_win32.asm -cd ..\..\.. - -echo RC5\32 -cd crypto\rc5\asm -perl rc5-586.pl win32n > r5_win32.asm -cd ..\..\.. - -echo on - -perl util\mkfiles.pl >MINFO -perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak -perl util\mk1mf.pl dll nasm VC-WIN32 >ms\ntdll.mak -perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak - -perl util\mkdef.pl 32 libeay > ms\libeay32.def -perl util\mkdef.pl 32 ssleay > ms\ssleay32.def + +@echo off +echo Generating x86 for NASM assember + +echo Bignum +cd crypto\bn\asm +perl x86.pl win32n > bn_win32.asm +cd ..\..\.. + +echo DES +cd crypto\des\asm +perl des-586.pl win32n > d_win32.asm +cd ..\..\.. + +echo "crypt(3)" + +cd crypto\des\asm +perl crypt586.pl win32n > y_win32.asm +cd ..\..\.. + +echo Blowfish + +cd crypto\bf\asm +perl bf-586.pl win32n > b_win32.asm +cd ..\..\.. + +echo CAST5 +cd crypto\cast\asm +perl cast-586.pl win32n > c_win32.asm +cd ..\..\.. + +echo RC4 +cd crypto\rc4\asm +perl rc4-586.pl win32n > r4_win32.asm +cd ..\..\.. + +echo MD5 +cd crypto\md5\asm +perl md5-586.pl win32n > m5_win32.asm +cd ..\..\.. + +echo SHA1 +cd crypto\sha\asm +perl sha1-586.pl win32n > s1_win32.asm +cd ..\..\.. + +echo RIPEMD160 +cd crypto\ripemd\asm +perl rmd-586.pl win32n > rm_win32.asm +cd ..\..\.. + +echo RC5\32 +cd crypto\rc5\asm +perl rc5-586.pl win32n > r5_win32.asm +cd ..\..\.. + +echo Whirlpool +cd crypto\whrlpool\asm +perl wp-mmx.pl win32n > wp_win32.asm +cd ..\..\.. + +echo on + +perl util\mkfiles.pl >MINFO +perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak +perl util\mk1mf.pl dll nasm VC-WIN32 >ms\ntdll.mak +perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak + +perl util\mkdef.pl 32 libeay > ms\libeay32.def +perl util\mkdef.pl 32 ssleay > ms\ssleay32.def diff --git a/util/mk1mf.pl b/util/mk1mf.pl index 25a3801123..606e9209cc 100755 --- a/util/mk1mf.pl +++ b/util/mk1mf.pl @@ -414,6 +414,8 @@ SHA1_ASM_OBJ=$sha1_asm_obj SHA1_ASM_SRC=$sha1_asm_src RMD160_ASM_OBJ=$rmd160_asm_obj RMD160_ASM_SRC=$rmd160_asm_src +WHIRLPOOL_ASM_OBJ=$whirlpool_asm_obj +WHIRLPOOL_ASM_SRC=$whirlpool_asm_src # The output directory for everything intersting OUT_D=$out_dir @@ -657,6 +659,11 @@ foreach (values %lib_nam) $lib_obj =~ s/\s(\S*\/rmd_dgst\S*)/ $1 \$(RMD160_ASM_OBJ)/; $rules.=&do_asm_rule($rmd160_asm_obj,$rmd160_asm_src); } + if (($whirlpool_asm_obj ne "") && ($_ eq "CRYPTO")) + { + $lib_obj =~ s/\s(\S*\/wp_dgst\S*)/ $1 \$(WHIRLPOOL_ASM_OBJ)/; + $rules.=&do_asm_rule($whirlpool_asm_obj,$whirlpool_asm_src); + } $defs.=&do_defs(${_}."OBJ",$lib_obj,"\$(OBJ_D)",$obj); $lib=($slib)?" \$(SHLIB_CFLAGS)".$shlib_ex_cflags{$_}:" \$(LIB_CFLAGS)"; $rules.=&do_compile_rule("\$(OBJ_D)",$lib_obj{$_},$lib); @@ -840,6 +847,7 @@ sub do_defs elsif ($_ =~ /MD5_ASM/) { $t="$_ "; } elsif ($_ =~ /SHA1_ASM/){ $t="$_ "; } elsif ($_ =~ /RMD160_ASM/){ $t="$_ "; } + elsif ($_ =~ /WHIRLPOOL_ASM/){ $t="$_ "; } else { $t="$location${o}$_$pf "; } $Vars{$var}.="$t "; diff --git a/util/pl/VC-32.pl b/util/pl/VC-32.pl index 58bf9934dd..bbdb537329 100644 --- a/util/pl/VC-32.pl +++ b/util/pl/VC-32.pl @@ -194,7 +194,9 @@ if (!$no_asm) $sha1_asm_src='crypto\sha\asm\s1_win32.asm'; $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj'; $rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm'; - $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM"; + $whirlpool_asm_obj='crypto\whrlpool\asm\wp_win32.obj'; + $whirlpool_asm_src='crypto\whrlpool\asm\wp_win32.asm'; + $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM -DWHIRLPOOL_ASM"; } if ($shlib && $FLAVOR !~ /CE/) -- 2.25.1