diff options
| author | jsing <> | 2024-03-28 12:28:48 +0000 |
|---|---|---|
| committer | jsing <> | 2024-03-28 12:28:48 +0000 |
| commit | 4762bb5731bf7cd92c8b8ef889df0870ac19d3bd (patch) | |
| tree | aa8e7d8faef30663f3f9111528f145fce17003fb /src/lib/libcrypto/aes/asm | |
| parent | e45946a7bbb9930880549017ee5a85918edc1d00 (diff) | |
| download | openbsd-4762bb5731bf7cd92c8b8ef889df0870ac19d3bd.tar.gz openbsd-4762bb5731bf7cd92c8b8ef889df0870ac19d3bd.tar.bz2 openbsd-4762bb5731bf7cd92c8b8ef889df0870ac19d3bd.zip | |
Make AES_cbc_encrypt() always be a C function.
Rename the assembly generated functions from AES_cbc_encrypt() to
aes_cbc_encrypt_internal(). Always include aes_cbc.c and change it
to use defines that are similar to those used in BN.
ok tb@
Diffstat (limited to 'src/lib/libcrypto/aes/asm')
| -rw-r--r-- | src/lib/libcrypto/aes/asm/aes-586.pl | 9 | ||||
| -rwxr-xr-x | src/lib/libcrypto/aes/asm/aes-x86_64.pl | 13 |
2 files changed, 10 insertions, 12 deletions
diff --git a/src/lib/libcrypto/aes/asm/aes-586.pl b/src/lib/libcrypto/aes/asm/aes-586.pl index 4e0f34cba3..733675ce7d 100644 --- a/src/lib/libcrypto/aes/asm/aes-586.pl +++ b/src/lib/libcrypto/aes/asm/aes-586.pl | |||
| @@ -2004,9 +2004,8 @@ sub declast() | |||
| 2004 | &mov (&DWP(12,$acc),$s3); | 2004 | &mov (&DWP(12,$acc),$s3); |
| 2005 | &function_end("AES_decrypt"); | 2005 | &function_end("AES_decrypt"); |
| 2006 | 2006 | ||
| 2007 | # void AES_cbc_encrypt (const void char *inp, unsigned char *out, | 2007 | # void aes_cbc_encrypt_internal(const void char *inp, unsigned char *out, |
| 2008 | # size_t length, const AES_KEY *key, | 2008 | # size_t length, const AES_KEY *key, unsigned char *ivp,const int enc); |
| 2009 | # unsigned char *ivp,const int enc); | ||
| 2010 | { | 2009 | { |
| 2011 | # stack frame layout | 2010 | # stack frame layout |
| 2012 | # -4(%esp) # return address 0(%esp) | 2011 | # -4(%esp) # return address 0(%esp) |
| @@ -2029,7 +2028,7 @@ my $ivec=&DWP(60,"esp"); # ivec[16] | |||
| 2029 | my $aes_key=&DWP(76,"esp"); # copy of aes_key | 2028 | my $aes_key=&DWP(76,"esp"); # copy of aes_key |
| 2030 | my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds | 2029 | my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds |
| 2031 | 2030 | ||
| 2032 | &function_begin("AES_cbc_encrypt"); | 2031 | &function_begin("aes_cbc_encrypt_internal"); |
| 2033 | &mov ($s2 eq "ecx"? $s2 : "",&wparam(2)); # load len | 2032 | &mov ($s2 eq "ecx"? $s2 : "",&wparam(2)); # load len |
| 2034 | &cmp ($s2,0); | 2033 | &cmp ($s2,0); |
| 2035 | &je (&label("drop_out")); | 2034 | &je (&label("drop_out")); |
| @@ -2617,7 +2616,7 @@ my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds | |||
| 2617 | 2616 | ||
| 2618 | &mov ("esp",$_esp); | 2617 | &mov ("esp",$_esp); |
| 2619 | &popf (); | 2618 | &popf (); |
| 2620 | &function_end("AES_cbc_encrypt"); | 2619 | &function_end("aes_cbc_encrypt_internal"); |
| 2621 | } | 2620 | } |
| 2622 | 2621 | ||
| 2623 | #------------------------------------------------------------------# | 2622 | #------------------------------------------------------------------# |
diff --git a/src/lib/libcrypto/aes/asm/aes-x86_64.pl b/src/lib/libcrypto/aes/asm/aes-x86_64.pl index 299214800b..a5148f7c1a 100755 --- a/src/lib/libcrypto/aes/asm/aes-x86_64.pl +++ b/src/lib/libcrypto/aes/asm/aes-x86_64.pl | |||
| @@ -1641,9 +1641,8 @@ $code.=<<___; | |||
| 1641 | .size AES_set_decrypt_key,.-AES_set_decrypt_key | 1641 | .size AES_set_decrypt_key,.-AES_set_decrypt_key |
| 1642 | ___ | 1642 | ___ |
| 1643 | 1643 | ||
| 1644 | # void AES_cbc_encrypt (const void char *inp, unsigned char *out, | 1644 | # void aes_cbc_encrypt_internal(const void char *inp, unsigned char *out, |
| 1645 | # size_t length, const AES_KEY *key, | 1645 | # size_t length, const AES_KEY *key, unsigned char *ivp,const int enc); |
| 1646 | # unsigned char *ivp,const int enc); | ||
| 1647 | { | 1646 | { |
| 1648 | # stack frame layout | 1647 | # stack frame layout |
| 1649 | # -8(%rsp) return address | 1648 | # -8(%rsp) return address |
| @@ -1660,15 +1659,15 @@ my $aes_key="80(%rsp)"; # copy of aes_key | |||
| 1660 | my $mark="80+240(%rsp)"; # copy of aes_key->rounds | 1659 | my $mark="80+240(%rsp)"; # copy of aes_key->rounds |
| 1661 | 1660 | ||
| 1662 | $code.=<<___; | 1661 | $code.=<<___; |
| 1663 | .globl AES_cbc_encrypt | 1662 | .globl aes_cbc_encrypt_internal |
| 1664 | .type AES_cbc_encrypt,\@function,6 | 1663 | .type aes_cbc_encrypt_internal,\@function,6 |
| 1665 | .align 16 | 1664 | .align 16 |
| 1666 | .extern OPENSSL_ia32cap_P | 1665 | .extern OPENSSL_ia32cap_P |
| 1667 | .hidden OPENSSL_ia32cap_P | 1666 | .hidden OPENSSL_ia32cap_P |
| 1668 | .globl asm_AES_cbc_encrypt | 1667 | .globl asm_AES_cbc_encrypt |
| 1669 | .hidden asm_AES_cbc_encrypt | 1668 | .hidden asm_AES_cbc_encrypt |
| 1670 | asm_AES_cbc_encrypt: | 1669 | asm_AES_cbc_encrypt: |
| 1671 | AES_cbc_encrypt: | 1670 | aes_cbc_encrypt_internal: |
| 1672 | _CET_ENDBR | 1671 | _CET_ENDBR |
| 1673 | cmp \$0,%rdx # check length | 1672 | cmp \$0,%rdx # check length |
| 1674 | je .Lcbc_epilogue | 1673 | je .Lcbc_epilogue |
| @@ -2118,7 +2117,7 @@ AES_cbc_encrypt: | |||
| 2118 | popfq | 2117 | popfq |
| 2119 | .Lcbc_epilogue: | 2118 | .Lcbc_epilogue: |
| 2120 | ret | 2119 | ret |
| 2121 | .size AES_cbc_encrypt,.-AES_cbc_encrypt | 2120 | .size aes_cbc_encrypt_internal,.-aes_cbc_encrypt_internal |
| 2122 | ___ | 2121 | ___ |
| 2123 | } | 2122 | } |
| 2124 | 2123 | ||
