Initial attempt at Whirlpool assembler support on VC++.

This commit is contained in:
Dr. Stephen Henson
2005-12-06 02:04:58 +00:00
parent 7bbcb2f690
commit 7c510d6f43
4 changed files with 149 additions and 129 deletions

View File

@@ -1,63 +1,68 @@
@echo off @echo off
echo Generating x86 for MASM assember echo Generating x86 for MASM assember
echo Bignum echo Bignum
cd crypto\bn\asm cd crypto\bn\asm
perl x86.pl win32 > bn_win32.asm perl x86.pl win32 > bn_win32.asm
cd ..\..\.. cd ..\..\..
echo DES echo DES
cd crypto\des\asm cd crypto\des\asm
perl des-586.pl win32 > d_win32.asm perl des-586.pl win32 > d_win32.asm
cd ..\..\.. cd ..\..\..
echo "crypt(3)" echo "crypt(3)"
cd crypto\des\asm cd crypto\des\asm
perl crypt586.pl win32 > y_win32.asm perl crypt586.pl win32 > y_win32.asm
cd ..\..\.. cd ..\..\..
echo Blowfish echo Blowfish
cd crypto\bf\asm cd crypto\bf\asm
perl bf-586.pl win32 > b_win32.asm perl bf-586.pl win32 > b_win32.asm
cd ..\..\.. cd ..\..\..
echo CAST5 echo CAST5
cd crypto\cast\asm cd crypto\cast\asm
perl cast-586.pl win32 > c_win32.asm perl cast-586.pl win32 > c_win32.asm
cd ..\..\.. cd ..\..\..
echo RC4 echo RC4
cd crypto\rc4\asm cd crypto\rc4\asm
perl rc4-586.pl win32 > r4_win32.asm perl rc4-586.pl win32 > r4_win32.asm
cd ..\..\.. cd ..\..\..
echo MD5 echo MD5
cd crypto\md5\asm cd crypto\md5\asm
perl md5-586.pl win32 > m5_win32.asm perl md5-586.pl win32 > m5_win32.asm
cd ..\..\.. cd ..\..\..
echo SHA1 echo SHA1
cd crypto\sha\asm cd crypto\sha\asm
perl sha1-586.pl win32 > s1_win32.asm perl sha1-586.pl win32 > s1_win32.asm
cd ..\..\.. cd ..\..\..
echo RIPEMD160 echo RIPEMD160
cd crypto\ripemd\asm cd crypto\ripemd\asm
perl rmd-586.pl win32 > rm_win32.asm perl rmd-586.pl win32 > rm_win32.asm
cd ..\..\.. cd ..\..\..
echo RC5\32 echo RC5\32
cd crypto\rc5\asm cd crypto\rc5\asm
perl rc5-586.pl win32 > r5_win32.asm perl rc5-586.pl win32 > r5_win32.asm
cd ..\..\.. cd ..\..\..
echo on echo Whirlpool
cd crypto\whrlpool\asm
perl util\mkfiles.pl >MINFO perl wp-mmx.pl win32 > wp_win32.asm
perl util\mk1mf.pl VC-WIN32 >ms\nt.mak cd ..\..\..
perl util\mk1mf.pl dll VC-WIN32 >ms\ntdll.mak
echo on
perl util\mkdef.pl 32 libeay > ms\libeay32.def
perl util\mkdef.pl 32 ssleay > ms\ssleay32.def 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

View File

@@ -1,65 +1,70 @@
@echo off @echo off
echo Generating x86 for NASM assember echo Generating x86 for NASM assember
echo Bignum echo Bignum
cd crypto\bn\asm cd crypto\bn\asm
perl x86.pl win32n > bn_win32.asm perl x86.pl win32n > bn_win32.asm
cd ..\..\.. cd ..\..\..
echo DES echo DES
cd crypto\des\asm cd crypto\des\asm
perl des-586.pl win32n > d_win32.asm perl des-586.pl win32n > d_win32.asm
cd ..\..\.. cd ..\..\..
echo "crypt(3)" echo "crypt(3)"
cd crypto\des\asm cd crypto\des\asm
perl crypt586.pl win32n > y_win32.asm perl crypt586.pl win32n > y_win32.asm
cd ..\..\.. cd ..\..\..
echo Blowfish echo Blowfish
cd crypto\bf\asm cd crypto\bf\asm
perl bf-586.pl win32n > b_win32.asm perl bf-586.pl win32n > b_win32.asm
cd ..\..\.. cd ..\..\..
echo CAST5 echo CAST5
cd crypto\cast\asm cd crypto\cast\asm
perl cast-586.pl win32n > c_win32.asm perl cast-586.pl win32n > c_win32.asm
cd ..\..\.. cd ..\..\..
echo RC4 echo RC4
cd crypto\rc4\asm cd crypto\rc4\asm
perl rc4-586.pl win32n > r4_win32.asm perl rc4-586.pl win32n > r4_win32.asm
cd ..\..\.. cd ..\..\..
echo MD5 echo MD5
cd crypto\md5\asm cd crypto\md5\asm
perl md5-586.pl win32n > m5_win32.asm perl md5-586.pl win32n > m5_win32.asm
cd ..\..\.. cd ..\..\..
echo SHA1 echo SHA1
cd crypto\sha\asm cd crypto\sha\asm
perl sha1-586.pl win32n > s1_win32.asm perl sha1-586.pl win32n > s1_win32.asm
cd ..\..\.. cd ..\..\..
echo RIPEMD160 echo RIPEMD160
cd crypto\ripemd\asm cd crypto\ripemd\asm
perl rmd-586.pl win32n > rm_win32.asm perl rmd-586.pl win32n > rm_win32.asm
cd ..\..\.. cd ..\..\..
echo RC5\32 echo RC5\32
cd crypto\rc5\asm cd crypto\rc5\asm
perl rc5-586.pl win32n > r5_win32.asm perl rc5-586.pl win32n > r5_win32.asm
cd ..\..\.. cd ..\..\..
echo on echo Whirlpool
cd crypto\whrlpool\asm
perl util\mkfiles.pl >MINFO perl wp-mmx.pl win32n > wp_win32.asm
perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak cd ..\..\..
perl util\mk1mf.pl dll nasm VC-WIN32 >ms\ntdll.mak
perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak echo on
perl util\mkdef.pl 32 libeay > ms\libeay32.def perl util\mkfiles.pl >MINFO
perl util\mkdef.pl 32 ssleay > ms\ssleay32.def 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

View File

@@ -414,6 +414,8 @@ SHA1_ASM_OBJ=$sha1_asm_obj
SHA1_ASM_SRC=$sha1_asm_src SHA1_ASM_SRC=$sha1_asm_src
RMD160_ASM_OBJ=$rmd160_asm_obj RMD160_ASM_OBJ=$rmd160_asm_obj
RMD160_ASM_SRC=$rmd160_asm_src RMD160_ASM_SRC=$rmd160_asm_src
WHIRLPOOL_ASM_OBJ=$whirlpool_asm_obj
WHIRLPOOL_ASM_SRC=$whirlpool_asm_src
# The output directory for everything intersting # The output directory for everything intersting
OUT_D=$out_dir OUT_D=$out_dir
@@ -657,6 +659,11 @@ foreach (values %lib_nam)
$lib_obj =~ s/\s(\S*\/rmd_dgst\S*)/ $1 \$(RMD160_ASM_OBJ)/; $lib_obj =~ s/\s(\S*\/rmd_dgst\S*)/ $1 \$(RMD160_ASM_OBJ)/;
$rules.=&do_asm_rule($rmd160_asm_obj,$rmd160_asm_src); $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); $defs.=&do_defs(${_}."OBJ",$lib_obj,"\$(OBJ_D)",$obj);
$lib=($slib)?" \$(SHLIB_CFLAGS)".$shlib_ex_cflags{$_}:" \$(LIB_CFLAGS)"; $lib=($slib)?" \$(SHLIB_CFLAGS)".$shlib_ex_cflags{$_}:" \$(LIB_CFLAGS)";
$rules.=&do_compile_rule("\$(OBJ_D)",$lib_obj{$_},$lib); $rules.=&do_compile_rule("\$(OBJ_D)",$lib_obj{$_},$lib);
@@ -840,6 +847,7 @@ sub do_defs
elsif ($_ =~ /MD5_ASM/) { $t="$_ "; } elsif ($_ =~ /MD5_ASM/) { $t="$_ "; }
elsif ($_ =~ /SHA1_ASM/){ $t="$_ "; } elsif ($_ =~ /SHA1_ASM/){ $t="$_ "; }
elsif ($_ =~ /RMD160_ASM/){ $t="$_ "; } elsif ($_ =~ /RMD160_ASM/){ $t="$_ "; }
elsif ($_ =~ /WHIRLPOOL_ASM/){ $t="$_ "; }
else { $t="$location${o}$_$pf "; } else { $t="$location${o}$_$pf "; }
$Vars{$var}.="$t "; $Vars{$var}.="$t ";

View File

@@ -194,7 +194,9 @@ if (!$no_asm)
$sha1_asm_src='crypto\sha\asm\s1_win32.asm'; $sha1_asm_src='crypto\sha\asm\s1_win32.asm';
$rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj'; $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj';
$rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm'; $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/) if ($shlib && $FLAVOR !~ /CE/)