Commit f805d307 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

SSE2 and AES assembly language support for VC++ build.

parent 4fb9472c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@

 Changes between 0.9.8e and 0.9.8f  [xx XXX xxxx]

  *) Add AES and SSE2 assembly language support to VC++ build.
     [Steve Henson]

  *) Mitigate attack on final subtraction in Montgomery reduction.
     [Andy Polyakov]

+77 −63
Original line number Diff line number Diff line
@echo off

SET ASMOPTS=-DOPENSSL_IA32_SSE2
echo Generating x86 for MASM assember

echo Bignum
cd crypto\bn\asm
perl x86.pl win32 > bn_win32.asm
perl bn-586.pl win32 %ASMOPTS% > bn_win32.asm
perl co-586.pl win32 %ASMOPTS% > co_win32.asm
cd ..\..\..

echo AES
cd crypto\aes\asm
perl aes-586.pl win32 %ASMOPTS% > a_win32.asm
cd ..\..\..

echo DES
cd crypto\des\asm
perl des-586.pl win32 > d_win32.asm
perl des-586.pl win32 %ASMOPTS% > d_win32.asm
cd ..\..\..

echo "crypt(3)"

cd crypto\des\asm
perl crypt586.pl win32 > y_win32.asm
perl crypt586.pl win32 %ASMOPTS% > y_win32.asm
cd ..\..\..

echo Blowfish

cd crypto\bf\asm
perl bf-586.pl win32 > b_win32.asm
perl bf-586.pl win32 %ASMOPTS% > b_win32.asm
cd ..\..\..

echo CAST5
cd crypto\cast\asm
perl cast-586.pl win32 > c_win32.asm
perl cast-586.pl win32 %ASMOPTS% > c_win32.asm
cd ..\..\..

echo RC4
cd crypto\rc4\asm
perl rc4-586.pl win32 > r4_win32.asm
perl rc4-586.pl win32 %ASMOPTS% > r4_win32.asm
cd ..\..\..

echo MD5
cd crypto\md5\asm
perl md5-586.pl win32 > m5_win32.asm
perl md5-586.pl win32 %ASMOPTS% > m5_win32.asm
cd ..\..\..

echo SHA1
cd crypto\sha\asm
perl sha1-586.pl win32 > s1_win32.asm
perl sha1-586.pl win32 %ASMOPTS% > s1_win32.asm
perl sha512-sse2.pl win32 %ASMOPTS% > sha512-sse2.asm
cd ..\..\..

echo RIPEMD160
cd crypto\ripemd\asm
perl rmd-586.pl win32 > rm_win32.asm
perl rmd-586.pl win32 %ASMOPTS% > rm_win32.asm
cd ..\..\..

echo RC5\32
cd crypto\rc5\asm
perl rc5-586.pl win32 > r5_win32.asm
perl rc5-586.pl win32 %ASMOPTS% > r5_win32.asm
cd ..\..\..

echo CPU-ID
cd crypto
perl x86cpuid.pl win32 %ASMOPTS% > cpu_win32.asm
cd ..

echo on

perl util\mkfiles.pl >MINFO
+79 −65
Original line number Diff line number Diff line

@echo off

SET ASMOPTS=-DOPENSSL_IA32_SSE2
echo Generating x86 for NASM assember

echo Bignum
cd crypto\bn\asm
perl x86.pl win32n > bn_win32.asm
perl bn-586.pl win32n %ASMOPTS% > bn_win32.asm
perl co-586.pl win32n %ASMOPTS% > co_win32.asm
cd ..\..\..

echo AES
cd crypto\aes\asm
perl aes-586.pl win32n %ASMOPTS% > a_win32.asm
cd ..\..\..

echo DES
cd crypto\des\asm
perl des-586.pl win32n > d_win32.asm
perl des-586.pl win32n %ASMOPTS% > d_win32.asm
cd ..\..\..

echo "crypt(3)"

cd crypto\des\asm
perl crypt586.pl win32n > y_win32.asm
perl crypt586.pl win32n %ASMOPTS% > y_win32.asm
cd ..\..\..

echo Blowfish

cd crypto\bf\asm
perl bf-586.pl win32n > b_win32.asm
perl bf-586.pl win32n %ASMOPTS% > b_win32.asm
cd ..\..\..

echo CAST5
cd crypto\cast\asm
perl cast-586.pl win32n > c_win32.asm
perl cast-586.pl win32n %ASMOPTS% > c_win32.asm
cd ..\..\..

echo RC4
cd crypto\rc4\asm
perl rc4-586.pl win32n > r4_win32.asm
perl rc4-586.pl win32n %ASMOPTS% > r4_win32.asm
cd ..\..\..

echo MD5
cd crypto\md5\asm
perl md5-586.pl win32n > m5_win32.asm
perl md5-586.pl win32n %ASMOPTS% > m5_win32.asm
cd ..\..\..

echo SHA1
cd crypto\sha\asm
perl sha1-586.pl win32n > s1_win32.asm
perl sha1-586.pl win32n %ASMOPTS% > s1_win32.asm
perl sha512-sse2.pl win32n %ASMOPTS% > sha512-sse2.asm
cd ..\..\..

echo RIPEMD160
cd crypto\ripemd\asm
perl rmd-586.pl win32n > rm_win32.asm
perl rmd-586.pl win32n %ASMOPTS% > rm_win32.asm
cd ..\..\..

echo RC5\32
cd crypto\rc5\asm
perl rc5-586.pl win32n > r5_win32.asm
perl rc5-586.pl win32n %ASMOPTS% > r5_win32.asm
cd ..\..\..

echo CPU-ID
cd crypto
perl x86cpuid.pl win32n %ASMOPTS% > cpu_win32.asm
cd ..

echo on

perl util\mkfiles.pl >MINFO
+9 −1
Original line number Diff line number Diff line
@@ -395,6 +395,8 @@ LINK=$link
LFLAGS=$lflags
RSC=$rsc

AES_ASM_OBJ=$aes_asm_obj
AES_ASM_SRC=$aes_asm_src
BN_ASM_OBJ=$bn_asm_obj
BN_ASM_SRC=$bn_asm_src
BNCO_ASM_OBJ=$bnco_asm_obj
@@ -608,7 +610,12 @@ foreach (values %lib_nam)
		$rules.="\$(O_SSL):\n\n"; 
		next;
		}

	if (($aes_asm_obj ne "") && ($_ eq "CRYPTO"))
		{
		$lib_obj =~ s/\s(\S*\/aes_core\S*)/ \$(AES_ASM_OBJ)/;
		$lib_obj =~ s/\s\S*\/aes_cbc\S*//;
		$rules.=&do_asm_rule($aes_asm_obj,$aes_asm_src);
		}
	if (($bn_asm_obj ne "") && ($_ eq "CRYPTO"))
		{
		$lib_obj =~ s/\s\S*\/bn_asm\S*/ \$(BN_ASM_OBJ)/;
@@ -850,6 +857,7 @@ sub do_defs
		elsif ($_ =~ /RC5_ENC/)	{ $t="$_ "; }
		elsif ($_ =~ /MD5_ASM/)	{ $t="$_ "; }
		elsif ($_ =~ /SHA1_ASM/){ $t="$_ "; }
		elsif ($_ =~ /AES_ASM/){ $t="$_ "; }
		elsif ($_ =~ /RMD160_ASM/){ $t="$_ "; }
		elsif ($_ =~ /CPUID_ASM/){ $t="$_ "; }
		else	{ $t="$location${o}$_$pf "; }
+0 −2
Original line number Diff line number Diff line
@@ -1218,8 +1218,6 @@ EOO

LIBRARY         $libname	$liboptions

DESCRIPTION     '$description'

EOF

	if ($W16) {
Loading