summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiod <>2014-07-09 09:10:07 +0000
committermiod <>2014-07-09 09:10:07 +0000
commit962b62471b32ccf7900a7f2658ec172fc691e25a (patch)
tree93160e1da443377034efa6bdda3406010ef1779a
parent93c72cf9da4c9d69f62ff20c6d3581aae665cb45 (diff)
downloadopenbsd-962b62471b32ccf7900a7f2658ec172fc691e25a.tar.gz
openbsd-962b62471b32ccf7900a7f2658ec172fc691e25a.tar.bz2
openbsd-962b62471b32ccf7900a7f2658ec172fc691e25a.zip
Kill more FIPS tentacles by removing the private_AES_set_{enc,dec}rypt_key()
internal interfaces, and promoting them to being the public AES_set_{enc,dec}rypt_key() interfaces. In non-FIPS mode, these public interfaces were directly calling the private ones. ok guenther@ jsing@
-rw-r--r--src/lib/libcrypto/aes/aes.h7
-rw-r--r--src/lib/libcrypto/aes/aes_core.c17
-rw-r--r--src/lib/libcrypto/aes/aes_misc.c18
-rw-r--r--src/lib/libcrypto/aes/asm/aes-586.pl14
-rw-r--r--src/lib/libcrypto/aes/asm/aes-armv4.pl16
-rw-r--r--src/lib/libcrypto/aes/asm/aes-mips.pl20
-rw-r--r--src/lib/libcrypto/aes/asm/aes-s390x.pl16
-rwxr-xr-xsrc/lib/libcrypto/aes/asm/aes-x86_64.pl36
-rw-r--r--src/lib/libssl/src/crypto/aes/aes.h7
-rw-r--r--src/lib/libssl/src/crypto/aes/aes_core.c17
-rw-r--r--src/lib/libssl/src/crypto/aes/aes_misc.c18
-rw-r--r--src/lib/libssl/src/crypto/aes/asm/aes-586.pl14
-rw-r--r--src/lib/libssl/src/crypto/aes/asm/aes-armv4.pl16
-rw-r--r--src/lib/libssl/src/crypto/aes/asm/aes-mips.pl20
-rw-r--r--src/lib/libssl/src/crypto/aes/asm/aes-s390x.pl16
-rwxr-xr-xsrc/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl36
16 files changed, 120 insertions, 168 deletions
diff --git a/src/lib/libcrypto/aes/aes.h b/src/lib/libcrypto/aes/aes.h
index 10a87e7f0d..c904485d8f 100644
--- a/src/lib/libcrypto/aes/aes.h
+++ b/src/lib/libcrypto/aes/aes.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: aes.h,v 1.13 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: aes.h,v 1.14 2014/07/09 09:10:07 miod 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 *
@@ -86,11 +86,6 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
86int AES_set_decrypt_key(const unsigned char *userKey, const int bits, 86int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
87 AES_KEY *key); 87 AES_KEY *key);
88 88
89int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
90 AES_KEY *key);
91int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
92 AES_KEY *key);
93
94void AES_encrypt(const unsigned char *in, unsigned char *out, 89void AES_encrypt(const unsigned char *in, unsigned char *out,
95 const AES_KEY *key); 90 const AES_KEY *key);
96void AES_decrypt(const unsigned char *in, unsigned char *out, 91void AES_decrypt(const unsigned char *in, unsigned char *out,
diff --git a/src/lib/libcrypto/aes/aes_core.c b/src/lib/libcrypto/aes/aes_core.c
index 301a207ce8..ee21057392 100644
--- a/src/lib/libcrypto/aes/aes_core.c
+++ b/src/lib/libcrypto/aes/aes_core.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: aes_core.c,v 1.10 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: aes_core.c,v 1.11 2014/07/09 09:10:07 miod Exp $ */
2/** 2/**
3 * rijndael-alg-fst.c 3 * rijndael-alg-fst.c
4 * 4 *
@@ -626,8 +626,7 @@ static const u32 rcon[] = {
626 * Expand the cipher key into the encryption key schedule. 626 * Expand the cipher key into the encryption key schedule.
627 */ 627 */
628int 628int
629private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, 629AES_set_encrypt_key(const unsigned char *userKey, const int bits, AES_KEY *key)
630 AES_KEY *key)
631{ 630{
632 u32 *rk; 631 u32 *rk;
633 int i = 0; 632 int i = 0;
@@ -728,15 +727,14 @@ private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
728 * Expand the cipher key into the decryption key schedule. 727 * Expand the cipher key into the decryption key schedule.
729 */ 728 */
730int 729int
731private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, 730AES_set_decrypt_key(const unsigned char *userKey, const int bits, AES_KEY *key)
732 AES_KEY *key)
733{ 731{
734 u32 *rk; 732 u32 *rk;
735 int i, j, status; 733 int i, j, status;
736 u32 temp; 734 u32 temp;
737 735
738 /* first, start with an encryption schedule */ 736 /* first, start with an encryption schedule */
739 status = private_AES_set_encrypt_key(userKey, bits, key); 737 status = AES_set_encrypt_key(userKey, bits, key);
740 if (status < 0) 738 if (status < 0)
741 return status; 739 return status;
742 740
@@ -1213,8 +1211,7 @@ static const u32 rcon[] = {
1213 * Expand the cipher key into the encryption key schedule. 1211 * Expand the cipher key into the encryption key schedule.
1214 */ 1212 */
1215int 1213int
1216private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, 1214AES_set_encrypt_key(const unsigned char *userKey, const int bits, AES_KEY *key)
1217 AES_KEY *key)
1218{ 1215{
1219 u32 *rk; 1216 u32 *rk;
1220 int i = 0; 1217 int i = 0;
@@ -1315,7 +1312,7 @@ private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
1315 * Expand the cipher key into the decryption key schedule. 1312 * Expand the cipher key into the decryption key schedule.
1316 */ 1313 */
1317int 1314int
1318private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, 1315AES_set_decrypt_key(const unsigned char *userKey, const int bits,
1319 AES_KEY *key) 1316 AES_KEY *key)
1320{ 1317{
1321 u32 *rk; 1318 u32 *rk;
@@ -1323,7 +1320,7 @@ private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
1323 u32 temp; 1320 u32 temp;
1324 1321
1325 /* first, start with an encryption schedule */ 1322 /* first, start with an encryption schedule */
1326 status = private_AES_set_encrypt_key(userKey, bits, key); 1323 status = AES_set_encrypt_key(userKey, bits, key);
1327 if (status < 0) 1324 if (status < 0)
1328 return status; 1325 return status;
1329 1326
diff --git a/src/lib/libcrypto/aes/aes_misc.c b/src/lib/libcrypto/aes/aes_misc.c
index 213e87537f..343fc33c70 100644
--- a/src/lib/libcrypto/aes/aes_misc.c
+++ b/src/lib/libcrypto/aes/aes_misc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: aes_misc.c,v 1.8 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: aes_misc.c,v 1.9 2014/07/09 09:10:07 miod 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 *
@@ -65,19 +65,3 @@ AES_options(void)
65 return "aes(partial)"; 65 return "aes(partial)";
66#endif 66#endif
67} 67}
68
69/* FIPS wrapper functions to block low level AES calls in FIPS mode */
70
71int
72AES_set_encrypt_key(const unsigned char *userKey, const int bits,
73 AES_KEY *key)
74{
75 return private_AES_set_encrypt_key(userKey, bits, key);
76}
77
78int
79AES_set_decrypt_key(const unsigned char *userKey, const int bits,
80 AES_KEY *key)
81{
82 return private_AES_set_decrypt_key(userKey, bits, key);
83}
diff --git a/src/lib/libcrypto/aes/asm/aes-586.pl b/src/lib/libcrypto/aes/asm/aes-586.pl
index 687ed811be..aab40e6f1c 100644
--- a/src/lib/libcrypto/aes/asm/aes-586.pl
+++ b/src/lib/libcrypto/aes/asm/aes-586.pl
@@ -39,7 +39,7 @@
39# but exhibits up to 10% improvement on other cores. 39# but exhibits up to 10% improvement on other cores.
40# 40#
41# Second version is "monolithic" replacement for aes_core.c, which in 41# Second version is "monolithic" replacement for aes_core.c, which in
42# addition to AES_[de|en]crypt implements private_AES_set_[de|en]cryption_key. 42# addition to AES_[de|en]crypt implements AES_set_[de|en]cryption_key.
43# This made it possible to implement little-endian variant of the 43# This made it possible to implement little-endian variant of the
44# algorithm without modifying the base C code. Motivating factor for 44# algorithm without modifying the base C code. Motivating factor for
45# the undertaken effort was that it appeared that in tight IA-32 45# the undertaken effort was that it appeared that in tight IA-32
@@ -2854,12 +2854,12 @@ sub enckey()
2854 &set_label("exit"); 2854 &set_label("exit");
2855&function_end("_x86_AES_set_encrypt_key"); 2855&function_end("_x86_AES_set_encrypt_key");
2856 2856
2857# int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, 2857# int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
2858# AES_KEY *key) 2858# AES_KEY *key)
2859&function_begin_B("private_AES_set_encrypt_key"); 2859&function_begin_B("AES_set_encrypt_key");
2860 &call ("_x86_AES_set_encrypt_key"); 2860 &call ("_x86_AES_set_encrypt_key");
2861 &ret (); 2861 &ret ();
2862&function_end_B("private_AES_set_encrypt_key"); 2862&function_end_B("AES_set_encrypt_key");
2863 2863
2864sub deckey() 2864sub deckey()
2865{ my ($i,$key,$tp1,$tp2,$tp4,$tp8) = @_; 2865{ my ($i,$key,$tp1,$tp2,$tp4,$tp8) = @_;
@@ -2916,9 +2916,9 @@ sub deckey()
2916 &mov (&DWP(4*$i,$key),$tp1); 2916 &mov (&DWP(4*$i,$key),$tp1);
2917} 2917}
2918 2918
2919# int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, 2919# int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
2920# AES_KEY *key) 2920# AES_KEY *key)
2921&function_begin_B("private_AES_set_decrypt_key"); 2921&function_begin_B("AES_set_decrypt_key");
2922 &call ("_x86_AES_set_encrypt_key"); 2922 &call ("_x86_AES_set_encrypt_key");
2923 &cmp ("eax",0); 2923 &cmp ("eax",0);
2924 &je (&label("proceed")); 2924 &je (&label("proceed"));
@@ -2974,7 +2974,7 @@ sub deckey()
2974 &jb (&label("permute")); 2974 &jb (&label("permute"));
2975 2975
2976 &xor ("eax","eax"); # return success 2976 &xor ("eax","eax"); # return success
2977&function_end("private_AES_set_decrypt_key"); 2977&function_end("AES_set_decrypt_key");
2978&asciz("AES for x86, CRYPTOGAMS by <appro\@openssl.org>"); 2978&asciz("AES for x86, CRYPTOGAMS by <appro\@openssl.org>");
2979 2979
2980&asm_finish(); 2980&asm_finish();
diff --git a/src/lib/libcrypto/aes/asm/aes-armv4.pl b/src/lib/libcrypto/aes/asm/aes-armv4.pl
index 86b86c4a0f..717cc1ed7f 100644
--- a/src/lib/libcrypto/aes/asm/aes-armv4.pl
+++ b/src/lib/libcrypto/aes/asm/aes-armv4.pl
@@ -404,10 +404,10 @@ _armv4_AES_encrypt:
404 ldr pc,[sp],#4 @ pop and return 404 ldr pc,[sp],#4 @ pop and return
405.size _armv4_AES_encrypt,.-_armv4_AES_encrypt 405.size _armv4_AES_encrypt,.-_armv4_AES_encrypt
406 406
407.global private_AES_set_encrypt_key 407.global AES_set_encrypt_key
408.type private_AES_set_encrypt_key,%function 408.type AES_set_encrypt_key,%function
409.align 5 409.align 5
410private_AES_set_encrypt_key: 410AES_set_encrypt_key:
411_armv4_AES_set_encrypt_key: 411_armv4_AES_set_encrypt_key:
412 sub r3,pc,#8 @ AES_set_encrypt_key 412 sub r3,pc,#8 @ AES_set_encrypt_key
413 teq r0,#0 413 teq r0,#0
@@ -679,12 +679,12 @@ _armv4_AES_set_encrypt_key:
679.Labrt: tst lr,#1 679.Labrt: tst lr,#1
680 moveq pc,lr @ be binary compatible with V4, yet 680 moveq pc,lr @ be binary compatible with V4, yet
681 bx lr @ interoperable with Thumb ISA:-) 681 bx lr @ interoperable with Thumb ISA:-)
682.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key 682.size AES_set_encrypt_key,.-AES_set_encrypt_key
683 683
684.global private_AES_set_decrypt_key 684.global AES_set_decrypt_key
685.type private_AES_set_decrypt_key,%function 685.type AES_set_decrypt_key,%function
686.align 5 686.align 5
687private_AES_set_decrypt_key: 687AES_set_decrypt_key:
688 str lr,[sp,#-4]! @ push lr 688 str lr,[sp,#-4]! @ push lr
689 bl _armv4_AES_set_encrypt_key 689 bl _armv4_AES_set_encrypt_key
690 teq r0,#0 690 teq r0,#0
@@ -773,7 +773,7 @@ $code.=<<___;
773 moveq pc,lr @ be binary compatible with V4, yet 773 moveq pc,lr @ be binary compatible with V4, yet
774 bx lr @ interoperable with Thumb ISA:-) 774 bx lr @ interoperable with Thumb ISA:-)
775#endif 775#endif
776.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key 776.size AES_set_decrypt_key,.-AES_set_decrypt_key
777 777
778.type AES_Td,%object 778.type AES_Td,%object
779.align 5 779.align 5
diff --git a/src/lib/libcrypto/aes/asm/aes-mips.pl b/src/lib/libcrypto/aes/asm/aes-mips.pl
index e52395421b..2ce6deffc8 100644
--- a/src/lib/libcrypto/aes/asm/aes-mips.pl
+++ b/src/lib/libcrypto/aes/asm/aes-mips.pl
@@ -1036,9 +1036,9 @@ _mips_AES_set_encrypt_key:
1036 nop 1036 nop
1037.end _mips_AES_set_encrypt_key 1037.end _mips_AES_set_encrypt_key
1038 1038
1039.globl private_AES_set_encrypt_key 1039.globl AES_set_encrypt_key
1040.ent private_AES_set_encrypt_key 1040.ent AES_set_encrypt_key
1041private_AES_set_encrypt_key: 1041AES_set_encrypt_key:
1042 .frame $sp,$FRAMESIZE,$ra 1042 .frame $sp,$FRAMESIZE,$ra
1043 .mask $SAVED_REGS_MASK,-$SZREG 1043 .mask $SAVED_REGS_MASK,-$SZREG
1044 .set noreorder 1044 .set noreorder
@@ -1060,7 +1060,7 @@ $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue
1060___ 1060___
1061$code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification 1061$code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
1062 .cplocal $Tbl 1062 .cplocal $Tbl
1063 .cpsetup $pf,$zero,private_AES_set_encrypt_key 1063 .cpsetup $pf,$zero,AES_set_encrypt_key
1064___ 1064___
1065$code.=<<___; 1065$code.=<<___;
1066 .set reorder 1066 .set reorder
@@ -1083,7 +1083,7 @@ ___
1083$code.=<<___; 1083$code.=<<___;
1084 jr $ra 1084 jr $ra
1085 $PTR_ADD $sp,$FRAMESIZE 1085 $PTR_ADD $sp,$FRAMESIZE
1086.end private_AES_set_encrypt_key 1086.end AES_set_encrypt_key
1087___ 1087___
1088 1088
1089my ($head,$tail)=($inp,$bits); 1089my ($head,$tail)=($inp,$bits);
@@ -1091,9 +1091,9 @@ my ($tp1,$tp2,$tp4,$tp8,$tp9,$tpb,$tpd,$tpe)=($a4,$a5,$a6,$a7,$s0,$s1,$s2,$s3);
1091my ($m,$x80808080,$x7f7f7f7f,$x1b1b1b1b)=($at,$t0,$t1,$t2); 1091my ($m,$x80808080,$x7f7f7f7f,$x1b1b1b1b)=($at,$t0,$t1,$t2);
1092$code.=<<___; 1092$code.=<<___;
1093.align 5 1093.align 5
1094.globl private_AES_set_decrypt_key 1094.globl AES_set_decrypt_key
1095.ent private_AES_set_decrypt_key 1095.ent AES_set_decrypt_key
1096private_AES_set_decrypt_key: 1096AES_set_decrypt_key:
1097 .frame $sp,$FRAMESIZE,$ra 1097 .frame $sp,$FRAMESIZE,$ra
1098 .mask $SAVED_REGS_MASK,-$SZREG 1098 .mask $SAVED_REGS_MASK,-$SZREG
1099 .set noreorder 1099 .set noreorder
@@ -1115,7 +1115,7 @@ $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue
1115___ 1115___
1116$code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification 1116$code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
1117 .cplocal $Tbl 1117 .cplocal $Tbl
1118 .cpsetup $pf,$zero,private_AES_set_decrypt_key 1118 .cpsetup $pf,$zero,AES_set_decrypt_key
1119___ 1119___
1120$code.=<<___; 1120$code.=<<___;
1121 .set reorder 1121 .set reorder
@@ -1226,7 +1226,7 @@ ___
1226$code.=<<___; 1226$code.=<<___;
1227 jr $ra 1227 jr $ra
1228 $PTR_ADD $sp,$FRAMESIZE 1228 $PTR_ADD $sp,$FRAMESIZE
1229.end private_AES_set_decrypt_key 1229.end AES_set_decrypt_key
1230___ 1230___
1231}}} 1231}}}
1232 1232
diff --git a/src/lib/libcrypto/aes/asm/aes-s390x.pl b/src/lib/libcrypto/aes/asm/aes-s390x.pl
index e75dcd0315..71d5b55077 100644
--- a/src/lib/libcrypto/aes/asm/aes-s390x.pl
+++ b/src/lib/libcrypto/aes/asm/aes-s390x.pl
@@ -779,10 +779,10 @@ ___
779$code.=<<___; 779$code.=<<___;
780# void AES_set_encrypt_key(const unsigned char *in, int bits, 780# void AES_set_encrypt_key(const unsigned char *in, int bits,
781# AES_KEY *key) { 781# AES_KEY *key) {
782.globl private_AES_set_encrypt_key 782.globl AES_set_encrypt_key
783.type private_AES_set_encrypt_key,\@function 783.type AES_set_encrypt_key,\@function
784.align 16 784.align 16
785private_AES_set_encrypt_key: 785AES_set_encrypt_key:
786_s390x_AES_set_encrypt_key: 786_s390x_AES_set_encrypt_key:
787 lghi $t0,0 787 lghi $t0,0
788 cl${g}r $inp,$t0 788 cl${g}r $inp,$t0
@@ -1063,14 +1063,14 @@ $code.=<<___;
1063.Lminus1: 1063.Lminus1:
1064 lghi %r2,-1 1064 lghi %r2,-1
1065 br $ra 1065 br $ra
1066.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key 1066.size AES_set_encrypt_key,.-AES_set_encrypt_key
1067 1067
1068# void AES_set_decrypt_key(const unsigned char *in, int bits, 1068# void AES_set_decrypt_key(const unsigned char *in, int bits,
1069# AES_KEY *key) { 1069# AES_KEY *key) {
1070.globl private_AES_set_decrypt_key 1070.globl AES_set_decrypt_key
1071.type private_AES_set_decrypt_key,\@function 1071.type AES_set_decrypt_key,\@function
1072.align 16 1072.align 16
1073private_AES_set_decrypt_key: 1073AES_set_decrypt_key:
1074 #st${g} $key,4*$SIZE_T($sp) # I rely on AES_set_encrypt_key to 1074 #st${g} $key,4*$SIZE_T($sp) # I rely on AES_set_encrypt_key to
1075 st${g} $ra,14*$SIZE_T($sp) # save non-volatile registers and $key! 1075 st${g} $ra,14*$SIZE_T($sp) # save non-volatile registers and $key!
1076 bras $ra,_s390x_AES_set_encrypt_key 1076 bras $ra,_s390x_AES_set_encrypt_key
@@ -1170,7 +1170,7 @@ $code.=<<___;
1170 lm${g} %r6,%r13,6*$SIZE_T($sp)# as was saved by AES_set_encrypt_key! 1170 lm${g} %r6,%r13,6*$SIZE_T($sp)# as was saved by AES_set_encrypt_key!
1171 lghi %r2,0 1171 lghi %r2,0
1172 br $ra 1172 br $ra
1173.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key 1173.size AES_set_decrypt_key,.-AES_set_decrypt_key
1174___ 1174___
1175 1175
1176######################################################################## 1176########################################################################
diff --git a/src/lib/libcrypto/aes/asm/aes-x86_64.pl b/src/lib/libcrypto/aes/asm/aes-x86_64.pl
index 34cbb5d844..f75e90ba87 100755
--- a/src/lib/libcrypto/aes/asm/aes-x86_64.pl
+++ b/src/lib/libcrypto/aes/asm/aes-x86_64.pl
@@ -1284,13 +1284,13 @@ $code.=<<___;
1284___ 1284___
1285} 1285}
1286 1286
1287# int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, 1287# int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
1288# AES_KEY *key) 1288# AES_KEY *key)
1289$code.=<<___; 1289$code.=<<___;
1290.globl private_AES_set_encrypt_key 1290.globl AES_set_encrypt_key
1291.type private_AES_set_encrypt_key,\@function,3 1291.type AES_set_encrypt_key,\@function,3
1292.align 16 1292.align 16
1293private_AES_set_encrypt_key: 1293AES_set_encrypt_key:
1294 push %rbx 1294 push %rbx
1295 push %rbp 1295 push %rbp
1296 push %r12 # redundant, but allows to share 1296 push %r12 # redundant, but allows to share
@@ -1311,7 +1311,7 @@ private_AES_set_encrypt_key:
1311 add \$56,%rsp 1311 add \$56,%rsp
1312.Lenc_key_epilogue: 1312.Lenc_key_epilogue:
1313 ret 1313 ret
1314.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key 1314.size AES_set_encrypt_key,.-AES_set_encrypt_key
1315 1315
1316.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent 1316.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent
1317.align 16 1317.align 16
@@ -1554,13 +1554,13 @@ $code.=<<___;
1554___ 1554___
1555} 1555}
1556 1556
1557# int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, 1557# int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
1558# AES_KEY *key) 1558# AES_KEY *key)
1559$code.=<<___; 1559$code.=<<___;
1560.globl private_AES_set_decrypt_key 1560.globl AES_set_decrypt_key
1561.type private_AES_set_decrypt_key,\@function,3 1561.type AES_set_decrypt_key,\@function,3
1562.align 16 1562.align 16
1563private_AES_set_decrypt_key: 1563AES_set_decrypt_key:
1564 push %rbx 1564 push %rbx
1565 push %rbp 1565 push %rbp
1566 push %r12 1566 push %r12
@@ -1629,7 +1629,7 @@ $code.=<<___;
1629 add \$56,%rsp 1629 add \$56,%rsp
1630.Ldec_key_epilogue: 1630.Ldec_key_epilogue:
1631 ret 1631 ret
1632.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key 1632.size AES_set_decrypt_key,.-AES_set_decrypt_key
1633___ 1633___
1634 1634
1635# void AES_cbc_encrypt (const void char *inp, unsigned char *out, 1635# void AES_cbc_encrypt (const void char *inp, unsigned char *out,
@@ -2776,13 +2776,13 @@ cbc_se_handler:
2776 .rva .LSEH_end_AES_decrypt 2776 .rva .LSEH_end_AES_decrypt
2777 .rva .LSEH_info_AES_decrypt 2777 .rva .LSEH_info_AES_decrypt
2778 2778
2779 .rva .LSEH_begin_private_AES_set_encrypt_key 2779 .rva .LSEH_begin_AES_set_encrypt_key
2780 .rva .LSEH_end_private_AES_set_encrypt_key 2780 .rva .LSEH_end_AES_set_encrypt_key
2781 .rva .LSEH_info_private_AES_set_encrypt_key 2781 .rva .LSEH_info_AES_set_encrypt_key
2782 2782
2783 .rva .LSEH_begin_private_AES_set_decrypt_key 2783 .rva .LSEH_begin_AES_set_decrypt_key
2784 .rva .LSEH_end_private_AES_set_decrypt_key 2784 .rva .LSEH_end_AES_set_decrypt_key
2785 .rva .LSEH_info_private_AES_set_decrypt_key 2785 .rva .LSEH_info_AES_set_decrypt_key
2786 2786
2787 .rva .LSEH_begin_AES_cbc_encrypt 2787 .rva .LSEH_begin_AES_cbc_encrypt
2788 .rva .LSEH_end_AES_cbc_encrypt 2788 .rva .LSEH_end_AES_cbc_encrypt
@@ -2798,11 +2798,11 @@ cbc_se_handler:
2798 .byte 9,0,0,0 2798 .byte 9,0,0,0
2799 .rva block_se_handler 2799 .rva block_se_handler
2800 .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[] 2800 .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[]
2801.LSEH_info_private_AES_set_encrypt_key: 2801.LSEH_info_AES_set_encrypt_key:
2802 .byte 9,0,0,0 2802 .byte 9,0,0,0
2803 .rva key_se_handler 2803 .rva key_se_handler
2804 .rva .Lenc_key_prologue,.Lenc_key_epilogue # HandlerData[] 2804 .rva .Lenc_key_prologue,.Lenc_key_epilogue # HandlerData[]
2805.LSEH_info_private_AES_set_decrypt_key: 2805.LSEH_info_AES_set_decrypt_key:
2806 .byte 9,0,0,0 2806 .byte 9,0,0,0
2807 .rva key_se_handler 2807 .rva key_se_handler
2808 .rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[] 2808 .rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[]
diff --git a/src/lib/libssl/src/crypto/aes/aes.h b/src/lib/libssl/src/crypto/aes/aes.h
index 10a87e7f0d..c904485d8f 100644
--- a/src/lib/libssl/src/crypto/aes/aes.h
+++ b/src/lib/libssl/src/crypto/aes/aes.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: aes.h,v 1.13 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: aes.h,v 1.14 2014/07/09 09:10:07 miod 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 *
@@ -86,11 +86,6 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
86int AES_set_decrypt_key(const unsigned char *userKey, const int bits, 86int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
87 AES_KEY *key); 87 AES_KEY *key);
88 88
89int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
90 AES_KEY *key);
91int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
92 AES_KEY *key);
93
94void AES_encrypt(const unsigned char *in, unsigned char *out, 89void AES_encrypt(const unsigned char *in, unsigned char *out,
95 const AES_KEY *key); 90 const AES_KEY *key);
96void AES_decrypt(const unsigned char *in, unsigned char *out, 91void AES_decrypt(const unsigned char *in, unsigned char *out,
diff --git a/src/lib/libssl/src/crypto/aes/aes_core.c b/src/lib/libssl/src/crypto/aes/aes_core.c
index 301a207ce8..ee21057392 100644
--- a/src/lib/libssl/src/crypto/aes/aes_core.c
+++ b/src/lib/libssl/src/crypto/aes/aes_core.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: aes_core.c,v 1.10 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: aes_core.c,v 1.11 2014/07/09 09:10:07 miod Exp $ */
2/** 2/**
3 * rijndael-alg-fst.c 3 * rijndael-alg-fst.c
4 * 4 *
@@ -626,8 +626,7 @@ static const u32 rcon[] = {
626 * Expand the cipher key into the encryption key schedule. 626 * Expand the cipher key into the encryption key schedule.
627 */ 627 */
628int 628int
629private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, 629AES_set_encrypt_key(const unsigned char *userKey, const int bits, AES_KEY *key)
630 AES_KEY *key)
631{ 630{
632 u32 *rk; 631 u32 *rk;
633 int i = 0; 632 int i = 0;
@@ -728,15 +727,14 @@ private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
728 * Expand the cipher key into the decryption key schedule. 727 * Expand the cipher key into the decryption key schedule.
729 */ 728 */
730int 729int
731private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, 730AES_set_decrypt_key(const unsigned char *userKey, const int bits, AES_KEY *key)
732 AES_KEY *key)
733{ 731{
734 u32 *rk; 732 u32 *rk;
735 int i, j, status; 733 int i, j, status;
736 u32 temp; 734 u32 temp;
737 735
738 /* first, start with an encryption schedule */ 736 /* first, start with an encryption schedule */
739 status = private_AES_set_encrypt_key(userKey, bits, key); 737 status = AES_set_encrypt_key(userKey, bits, key);
740 if (status < 0) 738 if (status < 0)
741 return status; 739 return status;
742 740
@@ -1213,8 +1211,7 @@ static const u32 rcon[] = {
1213 * Expand the cipher key into the encryption key schedule. 1211 * Expand the cipher key into the encryption key schedule.
1214 */ 1212 */
1215int 1213int
1216private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, 1214AES_set_encrypt_key(const unsigned char *userKey, const int bits, AES_KEY *key)
1217 AES_KEY *key)
1218{ 1215{
1219 u32 *rk; 1216 u32 *rk;
1220 int i = 0; 1217 int i = 0;
@@ -1315,7 +1312,7 @@ private_AES_set_encrypt_key(const unsigned char *userKey, const int bits,
1315 * Expand the cipher key into the decryption key schedule. 1312 * Expand the cipher key into the decryption key schedule.
1316 */ 1313 */
1317int 1314int
1318private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, 1315AES_set_decrypt_key(const unsigned char *userKey, const int bits,
1319 AES_KEY *key) 1316 AES_KEY *key)
1320{ 1317{
1321 u32 *rk; 1318 u32 *rk;
@@ -1323,7 +1320,7 @@ private_AES_set_decrypt_key(const unsigned char *userKey, const int bits,
1323 u32 temp; 1320 u32 temp;
1324 1321
1325 /* first, start with an encryption schedule */ 1322 /* first, start with an encryption schedule */
1326 status = private_AES_set_encrypt_key(userKey, bits, key); 1323 status = AES_set_encrypt_key(userKey, bits, key);
1327 if (status < 0) 1324 if (status < 0)
1328 return status; 1325 return status;
1329 1326
diff --git a/src/lib/libssl/src/crypto/aes/aes_misc.c b/src/lib/libssl/src/crypto/aes/aes_misc.c
index 213e87537f..343fc33c70 100644
--- a/src/lib/libssl/src/crypto/aes/aes_misc.c
+++ b/src/lib/libssl/src/crypto/aes/aes_misc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: aes_misc.c,v 1.8 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: aes_misc.c,v 1.9 2014/07/09 09:10:07 miod 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 *
@@ -65,19 +65,3 @@ AES_options(void)
65 return "aes(partial)"; 65 return "aes(partial)";
66#endif 66#endif
67} 67}
68
69/* FIPS wrapper functions to block low level AES calls in FIPS mode */
70
71int
72AES_set_encrypt_key(const unsigned char *userKey, const int bits,
73 AES_KEY *key)
74{
75 return private_AES_set_encrypt_key(userKey, bits, key);
76}
77
78int
79AES_set_decrypt_key(const unsigned char *userKey, const int bits,
80 AES_KEY *key)
81{
82 return private_AES_set_decrypt_key(userKey, bits, key);
83}
diff --git a/src/lib/libssl/src/crypto/aes/asm/aes-586.pl b/src/lib/libssl/src/crypto/aes/asm/aes-586.pl
index 687ed811be..aab40e6f1c 100644
--- a/src/lib/libssl/src/crypto/aes/asm/aes-586.pl
+++ b/src/lib/libssl/src/crypto/aes/asm/aes-586.pl
@@ -39,7 +39,7 @@
39# but exhibits up to 10% improvement on other cores. 39# but exhibits up to 10% improvement on other cores.
40# 40#
41# Second version is "monolithic" replacement for aes_core.c, which in 41# Second version is "monolithic" replacement for aes_core.c, which in
42# addition to AES_[de|en]crypt implements private_AES_set_[de|en]cryption_key. 42# addition to AES_[de|en]crypt implements AES_set_[de|en]cryption_key.
43# This made it possible to implement little-endian variant of the 43# This made it possible to implement little-endian variant of the
44# algorithm without modifying the base C code. Motivating factor for 44# algorithm without modifying the base C code. Motivating factor for
45# the undertaken effort was that it appeared that in tight IA-32 45# the undertaken effort was that it appeared that in tight IA-32
@@ -2854,12 +2854,12 @@ sub enckey()
2854 &set_label("exit"); 2854 &set_label("exit");
2855&function_end("_x86_AES_set_encrypt_key"); 2855&function_end("_x86_AES_set_encrypt_key");
2856 2856
2857# int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, 2857# int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
2858# AES_KEY *key) 2858# AES_KEY *key)
2859&function_begin_B("private_AES_set_encrypt_key"); 2859&function_begin_B("AES_set_encrypt_key");
2860 &call ("_x86_AES_set_encrypt_key"); 2860 &call ("_x86_AES_set_encrypt_key");
2861 &ret (); 2861 &ret ();
2862&function_end_B("private_AES_set_encrypt_key"); 2862&function_end_B("AES_set_encrypt_key");
2863 2863
2864sub deckey() 2864sub deckey()
2865{ my ($i,$key,$tp1,$tp2,$tp4,$tp8) = @_; 2865{ my ($i,$key,$tp1,$tp2,$tp4,$tp8) = @_;
@@ -2916,9 +2916,9 @@ sub deckey()
2916 &mov (&DWP(4*$i,$key),$tp1); 2916 &mov (&DWP(4*$i,$key),$tp1);
2917} 2917}
2918 2918
2919# int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, 2919# int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
2920# AES_KEY *key) 2920# AES_KEY *key)
2921&function_begin_B("private_AES_set_decrypt_key"); 2921&function_begin_B("AES_set_decrypt_key");
2922 &call ("_x86_AES_set_encrypt_key"); 2922 &call ("_x86_AES_set_encrypt_key");
2923 &cmp ("eax",0); 2923 &cmp ("eax",0);
2924 &je (&label("proceed")); 2924 &je (&label("proceed"));
@@ -2974,7 +2974,7 @@ sub deckey()
2974 &jb (&label("permute")); 2974 &jb (&label("permute"));
2975 2975
2976 &xor ("eax","eax"); # return success 2976 &xor ("eax","eax"); # return success
2977&function_end("private_AES_set_decrypt_key"); 2977&function_end("AES_set_decrypt_key");
2978&asciz("AES for x86, CRYPTOGAMS by <appro\@openssl.org>"); 2978&asciz("AES for x86, CRYPTOGAMS by <appro\@openssl.org>");
2979 2979
2980&asm_finish(); 2980&asm_finish();
diff --git a/src/lib/libssl/src/crypto/aes/asm/aes-armv4.pl b/src/lib/libssl/src/crypto/aes/asm/aes-armv4.pl
index 86b86c4a0f..717cc1ed7f 100644
--- a/src/lib/libssl/src/crypto/aes/asm/aes-armv4.pl
+++ b/src/lib/libssl/src/crypto/aes/asm/aes-armv4.pl
@@ -404,10 +404,10 @@ _armv4_AES_encrypt:
404 ldr pc,[sp],#4 @ pop and return 404 ldr pc,[sp],#4 @ pop and return
405.size _armv4_AES_encrypt,.-_armv4_AES_encrypt 405.size _armv4_AES_encrypt,.-_armv4_AES_encrypt
406 406
407.global private_AES_set_encrypt_key 407.global AES_set_encrypt_key
408.type private_AES_set_encrypt_key,%function 408.type AES_set_encrypt_key,%function
409.align 5 409.align 5
410private_AES_set_encrypt_key: 410AES_set_encrypt_key:
411_armv4_AES_set_encrypt_key: 411_armv4_AES_set_encrypt_key:
412 sub r3,pc,#8 @ AES_set_encrypt_key 412 sub r3,pc,#8 @ AES_set_encrypt_key
413 teq r0,#0 413 teq r0,#0
@@ -679,12 +679,12 @@ _armv4_AES_set_encrypt_key:
679.Labrt: tst lr,#1 679.Labrt: tst lr,#1
680 moveq pc,lr @ be binary compatible with V4, yet 680 moveq pc,lr @ be binary compatible with V4, yet
681 bx lr @ interoperable with Thumb ISA:-) 681 bx lr @ interoperable with Thumb ISA:-)
682.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key 682.size AES_set_encrypt_key,.-AES_set_encrypt_key
683 683
684.global private_AES_set_decrypt_key 684.global AES_set_decrypt_key
685.type private_AES_set_decrypt_key,%function 685.type AES_set_decrypt_key,%function
686.align 5 686.align 5
687private_AES_set_decrypt_key: 687AES_set_decrypt_key:
688 str lr,[sp,#-4]! @ push lr 688 str lr,[sp,#-4]! @ push lr
689 bl _armv4_AES_set_encrypt_key 689 bl _armv4_AES_set_encrypt_key
690 teq r0,#0 690 teq r0,#0
@@ -773,7 +773,7 @@ $code.=<<___;
773 moveq pc,lr @ be binary compatible with V4, yet 773 moveq pc,lr @ be binary compatible with V4, yet
774 bx lr @ interoperable with Thumb ISA:-) 774 bx lr @ interoperable with Thumb ISA:-)
775#endif 775#endif
776.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key 776.size AES_set_decrypt_key,.-AES_set_decrypt_key
777 777
778.type AES_Td,%object 778.type AES_Td,%object
779.align 5 779.align 5
diff --git a/src/lib/libssl/src/crypto/aes/asm/aes-mips.pl b/src/lib/libssl/src/crypto/aes/asm/aes-mips.pl
index e52395421b..2ce6deffc8 100644
--- a/src/lib/libssl/src/crypto/aes/asm/aes-mips.pl
+++ b/src/lib/libssl/src/crypto/aes/asm/aes-mips.pl
@@ -1036,9 +1036,9 @@ _mips_AES_set_encrypt_key:
1036 nop 1036 nop
1037.end _mips_AES_set_encrypt_key 1037.end _mips_AES_set_encrypt_key
1038 1038
1039.globl private_AES_set_encrypt_key 1039.globl AES_set_encrypt_key
1040.ent private_AES_set_encrypt_key 1040.ent AES_set_encrypt_key
1041private_AES_set_encrypt_key: 1041AES_set_encrypt_key:
1042 .frame $sp,$FRAMESIZE,$ra 1042 .frame $sp,$FRAMESIZE,$ra
1043 .mask $SAVED_REGS_MASK,-$SZREG 1043 .mask $SAVED_REGS_MASK,-$SZREG
1044 .set noreorder 1044 .set noreorder
@@ -1060,7 +1060,7 @@ $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue
1060___ 1060___
1061$code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification 1061$code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
1062 .cplocal $Tbl 1062 .cplocal $Tbl
1063 .cpsetup $pf,$zero,private_AES_set_encrypt_key 1063 .cpsetup $pf,$zero,AES_set_encrypt_key
1064___ 1064___
1065$code.=<<___; 1065$code.=<<___;
1066 .set reorder 1066 .set reorder
@@ -1083,7 +1083,7 @@ ___
1083$code.=<<___; 1083$code.=<<___;
1084 jr $ra 1084 jr $ra
1085 $PTR_ADD $sp,$FRAMESIZE 1085 $PTR_ADD $sp,$FRAMESIZE
1086.end private_AES_set_encrypt_key 1086.end AES_set_encrypt_key
1087___ 1087___
1088 1088
1089my ($head,$tail)=($inp,$bits); 1089my ($head,$tail)=($inp,$bits);
@@ -1091,9 +1091,9 @@ my ($tp1,$tp2,$tp4,$tp8,$tp9,$tpb,$tpd,$tpe)=($a4,$a5,$a6,$a7,$s0,$s1,$s2,$s3);
1091my ($m,$x80808080,$x7f7f7f7f,$x1b1b1b1b)=($at,$t0,$t1,$t2); 1091my ($m,$x80808080,$x7f7f7f7f,$x1b1b1b1b)=($at,$t0,$t1,$t2);
1092$code.=<<___; 1092$code.=<<___;
1093.align 5 1093.align 5
1094.globl private_AES_set_decrypt_key 1094.globl AES_set_decrypt_key
1095.ent private_AES_set_decrypt_key 1095.ent AES_set_decrypt_key
1096private_AES_set_decrypt_key: 1096AES_set_decrypt_key:
1097 .frame $sp,$FRAMESIZE,$ra 1097 .frame $sp,$FRAMESIZE,$ra
1098 .mask $SAVED_REGS_MASK,-$SZREG 1098 .mask $SAVED_REGS_MASK,-$SZREG
1099 .set noreorder 1099 .set noreorder
@@ -1115,7 +1115,7 @@ $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue
1115___ 1115___
1116$code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification 1116$code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification
1117 .cplocal $Tbl 1117 .cplocal $Tbl
1118 .cpsetup $pf,$zero,private_AES_set_decrypt_key 1118 .cpsetup $pf,$zero,AES_set_decrypt_key
1119___ 1119___
1120$code.=<<___; 1120$code.=<<___;
1121 .set reorder 1121 .set reorder
@@ -1226,7 +1226,7 @@ ___
1226$code.=<<___; 1226$code.=<<___;
1227 jr $ra 1227 jr $ra
1228 $PTR_ADD $sp,$FRAMESIZE 1228 $PTR_ADD $sp,$FRAMESIZE
1229.end private_AES_set_decrypt_key 1229.end AES_set_decrypt_key
1230___ 1230___
1231}}} 1231}}}
1232 1232
diff --git a/src/lib/libssl/src/crypto/aes/asm/aes-s390x.pl b/src/lib/libssl/src/crypto/aes/asm/aes-s390x.pl
index e75dcd0315..71d5b55077 100644
--- a/src/lib/libssl/src/crypto/aes/asm/aes-s390x.pl
+++ b/src/lib/libssl/src/crypto/aes/asm/aes-s390x.pl
@@ -779,10 +779,10 @@ ___
779$code.=<<___; 779$code.=<<___;
780# void AES_set_encrypt_key(const unsigned char *in, int bits, 780# void AES_set_encrypt_key(const unsigned char *in, int bits,
781# AES_KEY *key) { 781# AES_KEY *key) {
782.globl private_AES_set_encrypt_key 782.globl AES_set_encrypt_key
783.type private_AES_set_encrypt_key,\@function 783.type AES_set_encrypt_key,\@function
784.align 16 784.align 16
785private_AES_set_encrypt_key: 785AES_set_encrypt_key:
786_s390x_AES_set_encrypt_key: 786_s390x_AES_set_encrypt_key:
787 lghi $t0,0 787 lghi $t0,0
788 cl${g}r $inp,$t0 788 cl${g}r $inp,$t0
@@ -1063,14 +1063,14 @@ $code.=<<___;
1063.Lminus1: 1063.Lminus1:
1064 lghi %r2,-1 1064 lghi %r2,-1
1065 br $ra 1065 br $ra
1066.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key 1066.size AES_set_encrypt_key,.-AES_set_encrypt_key
1067 1067
1068# void AES_set_decrypt_key(const unsigned char *in, int bits, 1068# void AES_set_decrypt_key(const unsigned char *in, int bits,
1069# AES_KEY *key) { 1069# AES_KEY *key) {
1070.globl private_AES_set_decrypt_key 1070.globl AES_set_decrypt_key
1071.type private_AES_set_decrypt_key,\@function 1071.type AES_set_decrypt_key,\@function
1072.align 16 1072.align 16
1073private_AES_set_decrypt_key: 1073AES_set_decrypt_key:
1074 #st${g} $key,4*$SIZE_T($sp) # I rely on AES_set_encrypt_key to 1074 #st${g} $key,4*$SIZE_T($sp) # I rely on AES_set_encrypt_key to
1075 st${g} $ra,14*$SIZE_T($sp) # save non-volatile registers and $key! 1075 st${g} $ra,14*$SIZE_T($sp) # save non-volatile registers and $key!
1076 bras $ra,_s390x_AES_set_encrypt_key 1076 bras $ra,_s390x_AES_set_encrypt_key
@@ -1170,7 +1170,7 @@ $code.=<<___;
1170 lm${g} %r6,%r13,6*$SIZE_T($sp)# as was saved by AES_set_encrypt_key! 1170 lm${g} %r6,%r13,6*$SIZE_T($sp)# as was saved by AES_set_encrypt_key!
1171 lghi %r2,0 1171 lghi %r2,0
1172 br $ra 1172 br $ra
1173.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key 1173.size AES_set_decrypt_key,.-AES_set_decrypt_key
1174___ 1174___
1175 1175
1176######################################################################## 1176########################################################################
diff --git a/src/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl b/src/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl
index 34cbb5d844..f75e90ba87 100755
--- a/src/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl
+++ b/src/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl
@@ -1284,13 +1284,13 @@ $code.=<<___;
1284___ 1284___
1285} 1285}
1286 1286
1287# int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, 1287# int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
1288# AES_KEY *key) 1288# AES_KEY *key)
1289$code.=<<___; 1289$code.=<<___;
1290.globl private_AES_set_encrypt_key 1290.globl AES_set_encrypt_key
1291.type private_AES_set_encrypt_key,\@function,3 1291.type AES_set_encrypt_key,\@function,3
1292.align 16 1292.align 16
1293private_AES_set_encrypt_key: 1293AES_set_encrypt_key:
1294 push %rbx 1294 push %rbx
1295 push %rbp 1295 push %rbp
1296 push %r12 # redundant, but allows to share 1296 push %r12 # redundant, but allows to share
@@ -1311,7 +1311,7 @@ private_AES_set_encrypt_key:
1311 add \$56,%rsp 1311 add \$56,%rsp
1312.Lenc_key_epilogue: 1312.Lenc_key_epilogue:
1313 ret 1313 ret
1314.size private_AES_set_encrypt_key,.-private_AES_set_encrypt_key 1314.size AES_set_encrypt_key,.-AES_set_encrypt_key
1315 1315
1316.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent 1316.type _x86_64_AES_set_encrypt_key,\@abi-omnipotent
1317.align 16 1317.align 16
@@ -1554,13 +1554,13 @@ $code.=<<___;
1554___ 1554___
1555} 1555}
1556 1556
1557# int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, 1557# int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
1558# AES_KEY *key) 1558# AES_KEY *key)
1559$code.=<<___; 1559$code.=<<___;
1560.globl private_AES_set_decrypt_key 1560.globl AES_set_decrypt_key
1561.type private_AES_set_decrypt_key,\@function,3 1561.type AES_set_decrypt_key,\@function,3
1562.align 16 1562.align 16
1563private_AES_set_decrypt_key: 1563AES_set_decrypt_key:
1564 push %rbx 1564 push %rbx
1565 push %rbp 1565 push %rbp
1566 push %r12 1566 push %r12
@@ -1629,7 +1629,7 @@ $code.=<<___;
1629 add \$56,%rsp 1629 add \$56,%rsp
1630.Ldec_key_epilogue: 1630.Ldec_key_epilogue:
1631 ret 1631 ret
1632.size private_AES_set_decrypt_key,.-private_AES_set_decrypt_key 1632.size AES_set_decrypt_key,.-AES_set_decrypt_key
1633___ 1633___
1634 1634
1635# void AES_cbc_encrypt (const void char *inp, unsigned char *out, 1635# void AES_cbc_encrypt (const void char *inp, unsigned char *out,
@@ -2776,13 +2776,13 @@ cbc_se_handler:
2776 .rva .LSEH_end_AES_decrypt 2776 .rva .LSEH_end_AES_decrypt
2777 .rva .LSEH_info_AES_decrypt 2777 .rva .LSEH_info_AES_decrypt
2778 2778
2779 .rva .LSEH_begin_private_AES_set_encrypt_key 2779 .rva .LSEH_begin_AES_set_encrypt_key
2780 .rva .LSEH_end_private_AES_set_encrypt_key 2780 .rva .LSEH_end_AES_set_encrypt_key
2781 .rva .LSEH_info_private_AES_set_encrypt_key 2781 .rva .LSEH_info_AES_set_encrypt_key
2782 2782
2783 .rva .LSEH_begin_private_AES_set_decrypt_key 2783 .rva .LSEH_begin_AES_set_decrypt_key
2784 .rva .LSEH_end_private_AES_set_decrypt_key 2784 .rva .LSEH_end_AES_set_decrypt_key
2785 .rva .LSEH_info_private_AES_set_decrypt_key 2785 .rva .LSEH_info_AES_set_decrypt_key
2786 2786
2787 .rva .LSEH_begin_AES_cbc_encrypt 2787 .rva .LSEH_begin_AES_cbc_encrypt
2788 .rva .LSEH_end_AES_cbc_encrypt 2788 .rva .LSEH_end_AES_cbc_encrypt
@@ -2798,11 +2798,11 @@ cbc_se_handler:
2798 .byte 9,0,0,0 2798 .byte 9,0,0,0
2799 .rva block_se_handler 2799 .rva block_se_handler
2800 .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[] 2800 .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[]
2801.LSEH_info_private_AES_set_encrypt_key: 2801.LSEH_info_AES_set_encrypt_key:
2802 .byte 9,0,0,0 2802 .byte 9,0,0,0
2803 .rva key_se_handler 2803 .rva key_se_handler
2804 .rva .Lenc_key_prologue,.Lenc_key_epilogue # HandlerData[] 2804 .rva .Lenc_key_prologue,.Lenc_key_epilogue # HandlerData[]
2805.LSEH_info_private_AES_set_decrypt_key: 2805.LSEH_info_AES_set_decrypt_key:
2806 .byte 9,0,0,0 2806 .byte 9,0,0,0
2807 .rva key_se_handler 2807 .rva key_se_handler
2808 .rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[] 2808 .rva .Ldec_key_prologue,.Ldec_key_epilogue # HandlerData[]