diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/aes/aes_cbc.c | 19 | ||||
| -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 | ||||
| -rw-r--r-- | src/lib/libcrypto/arch/amd64/Makefile.inc | 4 | ||||
| -rw-r--r-- | src/lib/libcrypto/arch/i386/Makefile.inc | 4 |
5 files changed, 32 insertions, 17 deletions
diff --git a/src/lib/libcrypto/aes/aes_cbc.c b/src/lib/libcrypto/aes/aes_cbc.c index 5e76f6ea01..f578be9901 100644 --- a/src/lib/libcrypto/aes/aes_cbc.c +++ b/src/lib/libcrypto/aes/aes_cbc.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: aes_cbc.c,v 1.12 2014/06/12 15:49:27 deraadt Exp $ */ | 1 | /* $OpenBSD: aes_cbc.c,v 1.13 2024/03/28 12:28:48 jsing Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. |
| 4 | * | 4 | * |
| @@ -52,8 +52,13 @@ | |||
| 52 | #include <openssl/aes.h> | 52 | #include <openssl/aes.h> |
| 53 | #include <openssl/modes.h> | 53 | #include <openssl/modes.h> |
| 54 | 54 | ||
| 55 | void | 55 | #ifdef HAVE_AES_CBC_ENCRYPT_INTERNAL |
| 56 | AES_cbc_encrypt(const unsigned char *in, unsigned char *out, | 56 | void aes_cbc_encrypt_internal(const unsigned char *in, unsigned char *out, |
| 57 | size_t len, const AES_KEY *key, unsigned char *ivec, const int enc); | ||
| 58 | |||
| 59 | #else | ||
| 60 | static inline void | ||
| 61 | aes_cbc_encrypt_internal(const unsigned char *in, unsigned char *out, | ||
| 57 | size_t len, const AES_KEY *key, unsigned char *ivec, const int enc) | 62 | size_t len, const AES_KEY *key, unsigned char *ivec, const int enc) |
| 58 | { | 63 | { |
| 59 | if (enc) | 64 | if (enc) |
| @@ -63,3 +68,11 @@ AES_cbc_encrypt(const unsigned char *in, unsigned char *out, | |||
| 63 | CRYPTO_cbc128_decrypt(in, out, len, key, ivec, | 68 | CRYPTO_cbc128_decrypt(in, out, len, key, ivec, |
| 64 | (block128_f)AES_decrypt); | 69 | (block128_f)AES_decrypt); |
| 65 | } | 70 | } |
| 71 | #endif | ||
| 72 | |||
| 73 | void | ||
| 74 | AES_cbc_encrypt(const unsigned char *in, unsigned char *out, | ||
| 75 | size_t len, const AES_KEY *key, unsigned char *ivec, const int enc) | ||
| 76 | { | ||
| 77 | aes_cbc_encrypt_internal(in, out, len, key, ivec, enc); | ||
| 78 | } | ||
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 | ||
diff --git a/src/lib/libcrypto/arch/amd64/Makefile.inc b/src/lib/libcrypto/arch/amd64/Makefile.inc index 40ba3c063c..13d2c0b1be 100644 --- a/src/lib/libcrypto/arch/amd64/Makefile.inc +++ b/src/lib/libcrypto/arch/amd64/Makefile.inc | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # $OpenBSD: Makefile.inc,v 1.18 2024/03/28 01:57:00 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.19 2024/03/28 12:28:48 jsing Exp $ |
| 2 | 2 | ||
| 3 | # amd64-specific libcrypto build rules | 3 | # amd64-specific libcrypto build rules |
| 4 | 4 | ||
| @@ -13,6 +13,8 @@ SSLASM+= aes bsaes-x86_64 | |||
| 13 | CFLAGS+= -DVPAES_ASM | 13 | CFLAGS+= -DVPAES_ASM |
| 14 | SSLASM+= aes vpaes-x86_64 | 14 | SSLASM+= aes vpaes-x86_64 |
| 15 | SSLASM+= aes aesni-x86_64 | 15 | SSLASM+= aes aesni-x86_64 |
| 16 | CFLAGS+= -DHAVE_AES_CBC_ENCRYPT_INTERNAL | ||
| 17 | SRCS+= aes_cbc.c | ||
| 16 | # bn | 18 | # bn |
| 17 | CFLAGS+= -DOPENSSL_IA32_SSE2 | 19 | CFLAGS+= -DOPENSSL_IA32_SSE2 |
| 18 | CFLAGS+= -DRSA_ASM | 20 | CFLAGS+= -DRSA_ASM |
diff --git a/src/lib/libcrypto/arch/i386/Makefile.inc b/src/lib/libcrypto/arch/i386/Makefile.inc index aedd1d7683..cd356eeea5 100644 --- a/src/lib/libcrypto/arch/i386/Makefile.inc +++ b/src/lib/libcrypto/arch/i386/Makefile.inc | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # $OpenBSD: Makefile.inc,v 1.15 2024/03/28 01:57:00 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.16 2024/03/28 12:28:48 jsing Exp $ |
| 2 | 2 | ||
| 3 | # i386-specific libcrypto build rules | 3 | # i386-specific libcrypto build rules |
| 4 | 4 | ||
| @@ -11,6 +11,8 @@ SSLASM+= aes aes-586 | |||
| 11 | CFLAGS+= -DVPAES_ASM | 11 | CFLAGS+= -DVPAES_ASM |
| 12 | SSLASM+= aes vpaes-x86 | 12 | SSLASM+= aes vpaes-x86 |
| 13 | SSLASM+= aes aesni-x86 | 13 | SSLASM+= aes aesni-x86 |
| 14 | CFLAGS+= -DHAVE_AES_CBC_ENCRYPT_INTERNAL | ||
| 15 | SRCS+= aes_cbc.c | ||
| 14 | # bn | 16 | # bn |
| 15 | CFLAGS+= -DOPENSSL_IA32_SSE2 | 17 | CFLAGS+= -DOPENSSL_IA32_SSE2 |
| 16 | SSLASM+= bn bn-586 | 18 | SSLASM+= bn bn-586 |
