[prev in list] [next in list] [prev in thread] [next in thread]
List: openssl-cvs
Subject: [CVS] OpenSSL: OpenSSL_0_9_8-stable: openssl/crypto/aes/asm/ aes-x86_6...
From: "Andy Polyakov" <appro () openssl ! org>
Date: 2010-05-30 22:02:04
Message-ID: 20100530220204.3B2F21EAE951 () master ! openssl ! org
[Download RAW message or body]
OpenSSL CVS Repository
http://cvs.openssl.org/
____________________________________________________________________________
Server: cvs.openssl.org Name: Andy Polyakov
Root: /v/openssl/cvs Email: appro@openssl.org
Module: openssl Date: 31-May-2010 00:02:04
Branch: OpenSSL_0_9_8-stable Handle: 2010053023020300
Modified files: (Branch: OpenSSL_0_9_8-stable)
openssl/crypto/aes/asm aes-x86_64.pl
Log:
098 aes-x86_64.pl module was erroneously enabled in Win64 build without
being adapted for Win64 ABI. Fix this.
Summary:
Revision Changes Path
1.12.2.7 +25 -13 openssl/crypto/aes/asm/aes-x86_64.pl
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openssl/crypto/aes/asm/aes-x86_64.pl
============================================================================
$ cvs diff -u -r1.12.2.6 -r1.12.2.7 aes-x86_64.pl
--- openssl/crypto/aes/asm/aes-x86_64.pl 17 Jan 2010 19:43:49 -0000 1.12.2.6
+++ openssl/crypto/aes/asm/aes-x86_64.pl 30 May 2010 22:02:03 -0000 1.12.2.7
@@ -751,7 +751,19 @@
AES_set_encrypt_key:
push %rbx
push %rbp
+ sub \$8,%rsp
+ call _x86_64_AES_set_encrypt_key
+
+ mov 8(%rsp),%rbp
+ mov 16(%rsp),%rbx
+ add \$24,%rsp
+ ret
+.size AES_set_encrypt_key,.-AES_set_encrypt_key
+
+.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent
+.align 16
+_x86_64_AES_set_encrypt_key:
mov %esi,%ecx # %ecx=bits
mov %rdi,%rsi # %rsi=userKey
mov %rdx,%rdi # %rdi=key
@@ -938,10 +950,8 @@
.Lbadpointer:
mov \$-1,%rax
.Lexit:
- pop %rbp
- pop %rbx
- ret
-.size AES_set_encrypt_key,.-AES_set_encrypt_key
+ .byte 0xf3,0xc3 # rep ret
+.size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
___
sub deckey()
@@ -973,15 +983,14 @@
.type AES_set_decrypt_key,\@function,3
.align 16
AES_set_decrypt_key:
- push %rdx
- call AES_set_encrypt_key
- cmp \$0,%eax
- je .Lproceed
- lea 24(%rsp),%rsp
- ret
-.Lproceed:
+ push %rbx
+ push %rbp
+ push %rdx # save key schedule
+
+ call _x86_64_AES_set_encrypt_key
mov (%rsp),%r8 # restore key schedule
- mov %rbx,(%rsp)
+ cmp \$0,%eax
+ jne .Labort
mov 240(%r8),%ecx # pull number of rounds
xor %rdi,%rdi
@@ -1023,7 +1032,10 @@
jnz .Lpermute
xor %rax,%rax
- pop %rbx
+.Labort:
+ mov 8(%rsp),%rbp
+ mov 16(%rsp),%rbx
+ add \$24,%rsp
ret
.size AES_set_decrypt_key,.-AES_set_decrypt_key
___
@@ .
______________________________________________________________________
OpenSSL Project http://www.openssl.org
CVS Repository Commit List openssl-cvs@openssl.org
Automated List Manager majordomo@openssl.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic