summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/aes/asm
diff options
context:
space:
mode:
authorjsing <>2024-03-28 12:28:48 +0000
committerjsing <>2024-03-28 12:28:48 +0000
commit4762bb5731bf7cd92c8b8ef889df0870ac19d3bd (patch)
treeaa8e7d8faef30663f3f9111528f145fce17003fb /src/lib/libcrypto/aes/asm
parente45946a7bbb9930880549017ee5a85918edc1d00 (diff)
downloadopenbsd-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.pl9
-rwxr-xr-xsrc/lib/libcrypto/aes/asm/aes-x86_64.pl13
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]
2029my $aes_key=&DWP(76,"esp"); # copy of aes_key 2028my $aes_key=&DWP(76,"esp"); # copy of aes_key
2030my $mark=&DWP(76+240,"esp"); # copy of aes_key->rounds 2029my $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
1660my $mark="80+240(%rsp)"; # copy of aes_key->rounds 1659my $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
1670asm_AES_cbc_encrypt: 1669asm_AES_cbc_encrypt:
1671AES_cbc_encrypt: 1670aes_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