summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/aes/aes_cbc.c19
-rw-r--r--src/lib/libcrypto/aes/asm/aes-586.pl9
-rwxr-xr-xsrc/lib/libcrypto/aes/asm/aes-x86_64.pl13
-rw-r--r--src/lib/libcrypto/arch/amd64/Makefile.inc4
-rw-r--r--src/lib/libcrypto/arch/i386/Makefile.inc4
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
55void 55#ifdef HAVE_AES_CBC_ENCRYPT_INTERNAL
56AES_cbc_encrypt(const unsigned char *in, unsigned char *out, 56void 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
60static inline void
61aes_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
73void
74AES_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]
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
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
13CFLAGS+= -DVPAES_ASM 13CFLAGS+= -DVPAES_ASM
14SSLASM+= aes vpaes-x86_64 14SSLASM+= aes vpaes-x86_64
15SSLASM+= aes aesni-x86_64 15SSLASM+= aes aesni-x86_64
16CFLAGS+= -DHAVE_AES_CBC_ENCRYPT_INTERNAL
17SRCS+= aes_cbc.c
16# bn 18# bn
17CFLAGS+= -DOPENSSL_IA32_SSE2 19CFLAGS+= -DOPENSSL_IA32_SSE2
18CFLAGS+= -DRSA_ASM 20CFLAGS+= -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
11CFLAGS+= -DVPAES_ASM 11CFLAGS+= -DVPAES_ASM
12SSLASM+= aes vpaes-x86 12SSLASM+= aes vpaes-x86
13SSLASM+= aes aesni-x86 13SSLASM+= aes aesni-x86
14CFLAGS+= -DHAVE_AES_CBC_ENCRYPT_INTERNAL
15SRCS+= aes_cbc.c
14# bn 16# bn
15CFLAGS+= -DOPENSSL_IA32_SSE2 17CFLAGS+= -DOPENSSL_IA32_SSE2
16SSLASM+= bn bn-586 18SSLASM+= bn bn-586