diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2013-04-26 14:49:54 +0200 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2013-04-29 12:12:33 +0200 |
commit | 4fdb8acdaef4c3cb1d855e992ada0e63fee520a6 (patch) | |
tree | 4b2a796fadb3060c6952c5521c292da209b4adfb /deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm | |
parent | 626d7abdb43b672a6153510561afdd8856b7770f (diff) | |
download | android-node-v8-4fdb8acdaef4c3cb1d855e992ada0e63fee520a6.tar.gz android-node-v8-4fdb8acdaef4c3cb1d855e992ada0e63fee520a6.tar.bz2 android-node-v8-4fdb8acdaef4c3cb1d855e992ada0e63fee520a6.zip |
deps: downgrade openssl to v1.0.0f
Several people have reported issues with IIS and Resin servers (or maybe
SSL terminators sitting in front of those servers) that are fixed by
downgrading OpenSSL. The AESNI performance improvements were nice but
stability is more important. Downgrade OpenSSL from 1.0.1e to 1.0.0f.
Fixes #5360 (and others).
Diffstat (limited to 'deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm')
-rw-r--r-- | deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm | 225 |
1 files changed, 38 insertions, 187 deletions
diff --git a/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm b/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm index d179090911..3eb66f7350 100644 --- a/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm +++ b/deps/openssl/asm/x86-win32-masm/rc4/rc4-586.asm @@ -2,14 +2,7 @@ TITLE rc4-586.asm IF @Version LT 800 ECHO MASM version 8.00 or later is strongly recommended. ENDIF -.686 -.XMM -IF @Version LT 800 -XMMWORD STRUCT 16 -DQ 2 dup (?) -XMMWORD ENDS -ENDIF - +.586 .MODEL FLAT OPTION DOTNAME IF @Version LT 800 @@ -17,7 +10,6 @@ IF @Version LT 800 ELSE .text$ SEGMENT ALIGN(64) 'CODE' ENDIF -;EXTERN _OPENSSL_ia32cap_P:NEAR ALIGN 16 _RC4 PROC PUBLIC $L_RC4_begin:: @@ -45,146 +37,11 @@ $L_RC4_begin:: mov ecx,DWORD PTR [eax*4+edi] and edx,-4 jz $L002loop1 - test edx,-8 - mov DWORD PTR 32[esp],ebp - jz $L003go4loop4 - lea ebp,DWORD PTR _OPENSSL_ia32cap_P - bt DWORD PTR [ebp],26 - jnc $L003go4loop4 - mov ebp,DWORD PTR 32[esp] - and edx,-8 - lea edx,DWORD PTR [edx*1+esi-8] - mov DWORD PTR [edi-4],edx - add bl,cl - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - movq mm0,QWORD PTR [esi] - mov ecx,DWORD PTR [eax*4+edi] - movd mm2,DWORD PTR [edx*4+edi] - jmp $L004loop_mmx_enter -ALIGN 16 -$L005loop_mmx: - add bl,cl - psllq mm1,56 - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - pxor mm2,mm1 - movq mm0,QWORD PTR [esi] - movq QWORD PTR [esi*1+ebp-8],mm2 - mov ecx,DWORD PTR [eax*4+edi] - movd mm2,DWORD PTR [edx*4+edi] -$L004loop_mmx_enter: - add bl,cl - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - pxor mm2,mm0 - mov ecx,DWORD PTR [eax*4+edi] - movd mm1,DWORD PTR [edx*4+edi] - add bl,cl - psllq mm1,8 - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - pxor mm2,mm1 - mov ecx,DWORD PTR [eax*4+edi] - movd mm1,DWORD PTR [edx*4+edi] - add bl,cl - psllq mm1,16 - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - pxor mm2,mm1 - mov ecx,DWORD PTR [eax*4+edi] - movd mm1,DWORD PTR [edx*4+edi] - add bl,cl - psllq mm1,24 - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - pxor mm2,mm1 - mov ecx,DWORD PTR [eax*4+edi] - movd mm1,DWORD PTR [edx*4+edi] - add bl,cl - psllq mm1,32 - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - pxor mm2,mm1 - mov ecx,DWORD PTR [eax*4+edi] - movd mm1,DWORD PTR [edx*4+edi] - add bl,cl - psllq mm1,40 - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - pxor mm2,mm1 - mov ecx,DWORD PTR [eax*4+edi] - movd mm1,DWORD PTR [edx*4+edi] - add bl,cl - psllq mm1,48 - mov edx,DWORD PTR [ebx*4+edi] - mov DWORD PTR [ebx*4+edi],ecx - mov DWORD PTR [eax*4+edi],edx - inc eax - add edx,ecx - movzx eax,al - movzx edx,dl - pxor mm2,mm1 - mov ecx,DWORD PTR [eax*4+edi] - movd mm1,DWORD PTR [edx*4+edi] - mov edx,ebx - xor ebx,ebx - mov bl,dl - cmp esi,DWORD PTR [edi-4] - lea esi,DWORD PTR 8[esi] - jb $L005loop_mmx - psllq mm1,56 - pxor mm2,mm1 - movq QWORD PTR [esi*1+ebp-8],mm2 - emms - cmp esi,DWORD PTR 24[esp] - je $L006done - jmp $L002loop1 -ALIGN 16 -$L003go4loop4: lea edx,DWORD PTR [edx*1+esi-4] mov DWORD PTR 28[esp],edx -$L007loop4: + mov DWORD PTR 32[esp],ebp +ALIGN 16 +$L003loop4: add bl,cl mov edx,DWORD PTR [ebx*4+edi] mov DWORD PTR [ebx*4+edi],ecx @@ -230,9 +87,9 @@ $L007loop4: mov DWORD PTR [esi*1+ecx],ebp lea esi,DWORD PTR 4[esi] mov ecx,DWORD PTR [eax*4+edi] - jb $L007loop4 + jb $L003loop4 cmp esi,DWORD PTR 24[esp] - je $L006done + je $L004done mov ebp,DWORD PTR 32[esp] ALIGN 16 $L002loop1: @@ -250,11 +107,11 @@ $L002loop1: cmp esi,DWORD PTR 24[esp] mov BYTE PTR [esi*1+ebp-1],dl jb $L002loop1 - jmp $L006done + jmp $L004done ALIGN 16 $L001RC4_CHAR: movzx ecx,BYTE PTR [eax*1+edi] -$L008cloop1: +$L005cloop1: add bl,cl movzx edx,BYTE PTR [ebx*1+edi] mov BYTE PTR [ebx*1+edi],cl @@ -267,10 +124,10 @@ $L008cloop1: movzx ecx,BYTE PTR [eax*1+edi] cmp esi,DWORD PTR 24[esp] mov BYTE PTR [esi*1+ebp-1],dl - jb $L008cloop1 -$L006done: + jb $L005cloop1 +$L004done: dec al - mov DWORD PTR [edi-4],ebx + mov BYTE PTR [edi-4],bl mov BYTE PTR [edi-8],al $L000abort: pop edi @@ -279,9 +136,10 @@ $L000abort: pop ebp ret _RC4 ENDP +;EXTERN _OPENSSL_ia32cap_P:NEAR ALIGN 16 -_private_RC4_set_key PROC PUBLIC -$L_private_RC4_set_key_begin:: +_RC4_set_key PROC PUBLIC +$L_RC4_set_key_begin:: push ebp push ebx push esi @@ -296,53 +154,53 @@ $L_private_RC4_set_key_begin:: xor eax,eax mov DWORD PTR [edi-4],ebp bt DWORD PTR [edx],20 - jc $L009c1stloop + jc $L006c1stloop ALIGN 16 -$L010w1stloop: +$L007w1stloop: mov DWORD PTR [eax*4+edi],eax add al,1 - jnc $L010w1stloop + jnc $L007w1stloop xor ecx,ecx xor edx,edx ALIGN 16 -$L011w2ndloop: +$L008w2ndloop: mov eax,DWORD PTR [ecx*4+edi] add dl,BYTE PTR [ebp*1+esi] add dl,al add ebp,1 mov ebx,DWORD PTR [edx*4+edi] - jnz $L012wnowrap + jnz $L009wnowrap mov ebp,DWORD PTR [edi-4] -$L012wnowrap: +$L009wnowrap: mov DWORD PTR [edx*4+edi],eax mov DWORD PTR [ecx*4+edi],ebx add cl,1 - jnc $L011w2ndloop - jmp $L013exit + jnc $L008w2ndloop + jmp $L010exit ALIGN 16 -$L009c1stloop: +$L006c1stloop: mov BYTE PTR [eax*1+edi],al add al,1 - jnc $L009c1stloop + jnc $L006c1stloop xor ecx,ecx xor edx,edx xor ebx,ebx ALIGN 16 -$L014c2ndloop: +$L011c2ndloop: mov al,BYTE PTR [ecx*1+edi] add dl,BYTE PTR [ebp*1+esi] add dl,al add ebp,1 mov bl,BYTE PTR [edx*1+edi] - jnz $L015cnowrap + jnz $L012cnowrap mov ebp,DWORD PTR [edi-4] -$L015cnowrap: +$L012cnowrap: mov BYTE PTR [edx*1+edi],al mov BYTE PTR [ecx*1+edi],bl add cl,1 - jnc $L014c2ndloop + jnc $L011c2ndloop mov DWORD PTR 256[edi],-1 -$L013exit: +$L010exit: xor eax,eax mov DWORD PTR [edi-8],eax mov DWORD PTR [edi-4],eax @@ -351,31 +209,24 @@ $L013exit: pop ebx pop ebp ret -_private_RC4_set_key ENDP +_RC4_set_key ENDP ALIGN 16 _RC4_options PROC PUBLIC $L_RC4_options_begin:: - call $L016pic_point -$L016pic_point: + call $L013pic_point +$L013pic_point: pop eax - lea eax,DWORD PTR ($L017opts-$L016pic_point)[eax] + lea eax,DWORD PTR ($L014opts-$L013pic_point)[eax] lea edx,DWORD PTR _OPENSSL_ia32cap_P - mov edx,DWORD PTR [edx] - bt edx,20 - jc $L0181xchar - bt edx,26 - jnc $L019ret - add eax,25 - ret -$L0181xchar: + bt DWORD PTR [edx],20 + jnc $L015skip add eax,12 -$L019ret: +$L015skip: ret ALIGN 64 -$L017opts: +$L014opts: DB 114,99,52,40,52,120,44,105,110,116,41,0 DB 114,99,52,40,49,120,44,99,104,97,114,41,0 -DB 114,99,52,40,56,120,44,109,109,120,41,0 DB 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89 DB 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 DB 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 @@ -383,6 +234,6 @@ ALIGN 64 _RC4_options ENDP .text$ ENDS .bss SEGMENT 'BSS' -COMM _OPENSSL_ia32cap_P:QWORD +COMM _OPENSSL_ia32cap_P:DWORD .bss ENDS END |