diff options
author | jsing <> | 2024-03-29 11:00:57 +0000 |
---|---|---|
committer | jsing <> | 2024-03-29 11:00:57 +0000 |
commit | 75b82074adb4b78df59f9391f6cb70b6bb285522 (patch) | |
tree | f7c84b00ed5b9c6990e905b6d3cb91b87a46eab7 /src | |
parent | ddc94e581bd0cb9a0de0d9dbc0091d0b640dacd8 (diff) | |
download | openbsd-75b82074adb4b78df59f9391f6cb70b6bb285522.tar.gz openbsd-75b82074adb4b78df59f9391f6cb70b6bb285522.tar.bz2 openbsd-75b82074adb4b78df59f9391f6cb70b6bb285522.zip |
Always use C functions for AES_{encrypt,decrypt}().
Always provide AES_{encrypt,decrypt}() via C functions, which then either
use a C implementation or call the assembly implementation.
ok tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/aes/aes_core.c | 54 | ||||
-rw-r--r-- | src/lib/libcrypto/aes/asm/aes-586.pl | 12 | ||||
-rw-r--r-- | src/lib/libcrypto/aes/asm/aes-armv4.pl | 32 | ||||
-rw-r--r-- | src/lib/libcrypto/aes/asm/aes-mips.pl | 20 | ||||
-rw-r--r-- | src/lib/libcrypto/aes/asm/aes-parisc.pl | 8 | ||||
-rw-r--r-- | src/lib/libcrypto/aes/asm/aes-ppc.pl | 8 | ||||
-rwxr-xr-x | src/lib/libcrypto/aes/asm/aes-sparcv9.pl | 16 | ||||
-rwxr-xr-x | src/lib/libcrypto/aes/asm/aes-x86_64.pl | 36 | ||||
-rw-r--r-- | src/lib/libcrypto/arch/amd64/Makefile.inc | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/arch/arm/Makefile.inc | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/arch/hppa/Makefile.inc | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/arch/i386/Makefile.inc | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/arch/mips64/Makefile.inc | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/arch/sparc64/Makefile.inc | 4 |
14 files changed, 124 insertions, 84 deletions
diff --git a/src/lib/libcrypto/aes/aes_core.c b/src/lib/libcrypto/aes/aes_core.c index ee0bbb9f40..bf5149d833 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.20 2024/03/29 04:39:54 jsing Exp $ */ | 1 | /* $OpenBSD: aes_core.c,v 1.21 2024/03/29 11:00:57 jsing Exp $ */ |
2 | /** | 2 | /** |
3 | * rijndael-alg-fst.c | 3 | * rijndael-alg-fst.c |
4 | * | 4 | * |
@@ -37,8 +37,10 @@ | |||
37 | #include "aes_local.h" | 37 | #include "aes_local.h" |
38 | #include "crypto_internal.h" | 38 | #include "crypto_internal.h" |
39 | 39 | ||
40 | #if !defined(HAVE_AES_SET_ENCRYPT_KEY_INTERNAL) && \ | 40 | #if !defined(HAVE_AES_SET_ENCRYPT_KEY_INTERNAL) || \ |
41 | !defined(HAVE_AES_SET_DECRYPT_KEY_INTERNAL) | 41 | !defined(HAVE_AES_SET_DECRYPT_KEY_INTERNAL) || \ |
42 | !defined(HAVE_AES_ENCRYPT_INTERNAL) || \ | ||
43 | !defined(HAVE_AES_DECRYPT_INTERNAL) | ||
42 | 44 | ||
43 | /* | 45 | /* |
44 | Te0[x] = S [x].[02, 01, 01, 03]; | 46 | Te0[x] = S [x].[02, 01, 01, 03]; |
@@ -616,6 +618,10 @@ static const u8 Td4[256] = { | |||
616 | 0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U, | 618 | 0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U, |
617 | 0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU, | 619 | 0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU, |
618 | }; | 620 | }; |
621 | #endif | ||
622 | |||
623 | #if !defined(HAVE_AES_SET_ENCRYPT_KEY_INTERNAL) || \ | ||
624 | !defined(HAVE_AES_SET_DECRYPT_KEY_INTERNAL) | ||
619 | static const u32 rcon[] = { | 625 | static const u32 rcon[] = { |
620 | 0x01000000, 0x02000000, 0x04000000, 0x08000000, | 626 | 0x01000000, 0x02000000, 0x04000000, 0x08000000, |
621 | 0x10000000, 0x20000000, 0x40000000, 0x80000000, | 627 | 0x10000000, 0x20000000, 0x40000000, 0x80000000, |
@@ -810,13 +816,17 @@ AES_set_decrypt_key(const unsigned char *userKey, const int bits, AES_KEY *key) | |||
810 | return aes_set_decrypt_key_internal(userKey, bits, key); | 816 | return aes_set_decrypt_key_internal(userKey, bits, key); |
811 | } | 817 | } |
812 | 818 | ||
813 | #ifndef AES_ASM | 819 | #ifdef HAVE_AES_ENCRYPT_INTERNAL |
820 | void aes_encrypt_internal(const unsigned char *in, unsigned char *out, | ||
821 | const AES_KEY *key); | ||
822 | |||
823 | #else | ||
814 | /* | 824 | /* |
815 | * Encrypt a single block | 825 | * Encrypt a single block - in and out can overlap. |
816 | * in and out can overlap | ||
817 | */ | 826 | */ |
818 | void | 827 | static inline void |
819 | AES_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key) | 828 | aes_encrypt_internal(const unsigned char *in, unsigned char *out, |
829 | const AES_KEY *key) | ||
820 | { | 830 | { |
821 | const u32 *rk; | 831 | const u32 *rk; |
822 | u32 s0, s1, s2, s3, t0, t1, t2, t3; | 832 | u32 s0, s1, s2, s3, t0, t1, t2, t3; |
@@ -1000,13 +1010,25 @@ AES_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key) | |||
1000 | rk[3]; | 1010 | rk[3]; |
1001 | crypto_store_htobe32(&out[3 * 4], s3); | 1011 | crypto_store_htobe32(&out[3 * 4], s3); |
1002 | } | 1012 | } |
1013 | #endif | ||
1014 | |||
1015 | void | ||
1016 | AES_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key) | ||
1017 | { | ||
1018 | return aes_encrypt_internal(in, out, key); | ||
1019 | } | ||
1020 | |||
1021 | #ifdef HAVE_AES_DECRYPT_INTERNAL | ||
1022 | void aes_decrypt_internal(const unsigned char *in, unsigned char *out, | ||
1023 | const AES_KEY *key); | ||
1003 | 1024 | ||
1025 | #else | ||
1004 | /* | 1026 | /* |
1005 | * Decrypt a single block | 1027 | * Decrypt a single block - in and out can overlap. |
1006 | * in and out can overlap | ||
1007 | */ | 1028 | */ |
1008 | void | 1029 | static inline void |
1009 | AES_decrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key) | 1030 | aes_decrypt_internal(const unsigned char *in, unsigned char *out, |
1031 | const AES_KEY *key) | ||
1010 | { | 1032 | { |
1011 | const u32 *rk; | 1033 | const u32 *rk; |
1012 | u32 s0, s1, s2, s3, t0, t1, t2, t3; | 1034 | u32 s0, s1, s2, s3, t0, t1, t2, t3; |
@@ -1190,4 +1212,10 @@ AES_decrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key) | |||
1190 | rk[3]; | 1212 | rk[3]; |
1191 | crypto_store_htobe32(&out[3 * 4], s3); | 1213 | crypto_store_htobe32(&out[3 * 4], s3); |
1192 | } | 1214 | } |
1193 | #endif /* AES_ASM */ | 1215 | #endif |
1216 | |||
1217 | void | ||
1218 | AES_decrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key) | ||
1219 | { | ||
1220 | return aes_decrypt_internal(in, out, key); | ||
1221 | } | ||
diff --git a/src/lib/libcrypto/aes/asm/aes-586.pl b/src/lib/libcrypto/aes/asm/aes-586.pl index a2d98009e8..364099d4d3 100644 --- a/src/lib/libcrypto/aes/asm/aes-586.pl +++ b/src/lib/libcrypto/aes/asm/aes-586.pl | |||
@@ -1158,8 +1158,8 @@ sub enclast() | |||
1158 | &data_word(0x00000000, 0x00000000, 0x00000000, 0x00000000); | 1158 | &data_word(0x00000000, 0x00000000, 0x00000000, 0x00000000); |
1159 | &previous(); | 1159 | &previous(); |
1160 | 1160 | ||
1161 | # void AES_encrypt (const void *inp,void *out,const AES_KEY *key); | 1161 | # void aes_encrypt_internal(const void *inp, void *out, const AES_KEY *key); |
1162 | &function_begin("AES_encrypt"); | 1162 | &function_begin("aes_encrypt_internal"); |
1163 | &mov ($acc,&wparam(0)); # load inp | 1163 | &mov ($acc,&wparam(0)); # load inp |
1164 | &mov ($key,&wparam(2)); # load key | 1164 | &mov ($key,&wparam(2)); # load key |
1165 | 1165 | ||
@@ -1213,7 +1213,7 @@ sub enclast() | |||
1213 | &mov (&DWP(4,$acc),$s1); | 1213 | &mov (&DWP(4,$acc),$s1); |
1214 | &mov (&DWP(8,$acc),$s2); | 1214 | &mov (&DWP(8,$acc),$s2); |
1215 | &mov (&DWP(12,$acc),$s3); | 1215 | &mov (&DWP(12,$acc),$s3); |
1216 | &function_end("AES_encrypt"); | 1216 | &function_end("aes_encrypt_internal"); |
1217 | 1217 | ||
1218 | #--------------------------------------------------------------------# | 1218 | #--------------------------------------------------------------------# |
1219 | 1219 | ||
@@ -1947,8 +1947,8 @@ sub declast() | |||
1947 | &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d); | 1947 | &data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d); |
1948 | &previous(); | 1948 | &previous(); |
1949 | 1949 | ||
1950 | # void AES_decrypt (const void *inp,void *out,const AES_KEY *key); | 1950 | # void aes_decrypt_internal(const void *inp, void *out, const AES_KEY *key); |
1951 | &function_begin("AES_decrypt"); | 1951 | &function_begin("aes_decrypt_internal"); |
1952 | &mov ($acc,&wparam(0)); # load inp | 1952 | &mov ($acc,&wparam(0)); # load inp |
1953 | &mov ($key,&wparam(2)); # load key | 1953 | &mov ($key,&wparam(2)); # load key |
1954 | 1954 | ||
@@ -2002,7 +2002,7 @@ sub declast() | |||
2002 | &mov (&DWP(4,$acc),$s1); | 2002 | &mov (&DWP(4,$acc),$s1); |
2003 | &mov (&DWP(8,$acc),$s2); | 2003 | &mov (&DWP(8,$acc),$s2); |
2004 | &mov (&DWP(12,$acc),$s3); | 2004 | &mov (&DWP(12,$acc),$s3); |
2005 | &function_end("AES_decrypt"); | 2005 | &function_end("aes_decrypt_internal"); |
2006 | 2006 | ||
2007 | # void aes_cbc_encrypt_internal(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, unsigned char *ivp,const int enc); | 2008 | # size_t length, const AES_KEY *key, unsigned char *ivp,const int enc); |
diff --git a/src/lib/libcrypto/aes/asm/aes-armv4.pl b/src/lib/libcrypto/aes/asm/aes-armv4.pl index 3d581c5d7c..0048ee5b29 100644 --- a/src/lib/libcrypto/aes/asm/aes-armv4.pl +++ b/src/lib/libcrypto/aes/asm/aes-armv4.pl | |||
@@ -161,17 +161,17 @@ AES_Te: | |||
161 | .word 0x1B000000, 0x36000000, 0, 0, 0, 0, 0, 0 | 161 | .word 0x1B000000, 0x36000000, 0, 0, 0, 0, 0, 0 |
162 | .size AES_Te,.-AES_Te | 162 | .size AES_Te,.-AES_Te |
163 | 163 | ||
164 | @ void AES_encrypt(const unsigned char *in, unsigned char *out, | 164 | @ void aes_encrypt_internal(const unsigned char *in, unsigned char *out, |
165 | @ const AES_KEY *key) { | 165 | @ const AES_KEY *key) { |
166 | .global AES_encrypt | 166 | .global aes_encrypt_internal |
167 | .type AES_encrypt,%function | 167 | .type aes_encrypt_internal,%function |
168 | .align 5 | 168 | .align 5 |
169 | AES_encrypt: | 169 | aes_encrypt_internal: |
170 | sub r3,pc,#8 @ AES_encrypt | 170 | sub r3,pc,#8 @ aes_encrypt_internal |
171 | stmdb sp!,{r1,r4-r12,lr} | 171 | stmdb sp!,{r1,r4-r12,lr} |
172 | mov $rounds,r0 @ inp | 172 | mov $rounds,r0 @ inp |
173 | mov $key,r2 | 173 | mov $key,r2 |
174 | sub $tbl,r3,#AES_encrypt-AES_Te @ Te | 174 | sub $tbl,r3,#aes_encrypt_internal-AES_Te @ Te |
175 | #if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT) | 175 | #if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT) |
176 | ldrb $s0,[$rounds,#3] @ load input data in endian-neutral | 176 | ldrb $s0,[$rounds,#3] @ load input data in endian-neutral |
177 | ldrb $t1,[$rounds,#2] @ manner... | 177 | ldrb $t1,[$rounds,#2] @ manner... |
@@ -265,7 +265,7 @@ AES_encrypt: | |||
265 | moveq pc,lr @ be binary compatible with V4, yet | 265 | moveq pc,lr @ be binary compatible with V4, yet |
266 | bx lr @ interoperable with Thumb ISA:-) | 266 | bx lr @ interoperable with Thumb ISA:-) |
267 | #endif | 267 | #endif |
268 | .size AES_encrypt,.-AES_encrypt | 268 | .size aes_encrypt_internal,.-aes_encrypt_internal |
269 | 269 | ||
270 | .type _armv4_AES_encrypt,%function | 270 | .type _armv4_AES_encrypt,%function |
271 | .align 2 | 271 | .align 2 |
@@ -877,17 +877,17 @@ AES_Td: | |||
877 | .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d | 877 | .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d |
878 | .size AES_Td,.-AES_Td | 878 | .size AES_Td,.-AES_Td |
879 | 879 | ||
880 | @ void AES_decrypt(const unsigned char *in, unsigned char *out, | 880 | @ void aes_decrypt_internal(const unsigned char *in, unsigned char *out, |
881 | @ const AES_KEY *key) { | 881 | @ const AES_KEY *key) { |
882 | .global AES_decrypt | 882 | .global aes_decrypt_internal |
883 | .type AES_decrypt,%function | 883 | .type aes_decrypt_internal,%function |
884 | .align 5 | 884 | .align 5 |
885 | AES_decrypt: | 885 | aes_decrypt_internal: |
886 | sub r3,pc,#8 @ AES_decrypt | 886 | sub r3,pc,#8 @ aes_decrypt_internal |
887 | stmdb sp!,{r1,r4-r12,lr} | 887 | stmdb sp!,{r1,r4-r12,lr} |
888 | mov $rounds,r0 @ inp | 888 | mov $rounds,r0 @ inp |
889 | mov $key,r2 | 889 | mov $key,r2 |
890 | sub $tbl,r3,#AES_decrypt-AES_Td @ Td | 890 | sub $tbl,r3,#aes_decrypt_internal-AES_Td @ Td |
891 | #if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT) | 891 | #if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT) |
892 | ldrb $s0,[$rounds,#3] @ load input data in endian-neutral | 892 | ldrb $s0,[$rounds,#3] @ load input data in endian-neutral |
893 | ldrb $t1,[$rounds,#2] @ manner... | 893 | ldrb $t1,[$rounds,#2] @ manner... |
@@ -981,7 +981,7 @@ AES_decrypt: | |||
981 | moveq pc,lr @ be binary compatible with V4, yet | 981 | moveq pc,lr @ be binary compatible with V4, yet |
982 | bx lr @ interoperable with Thumb ISA:-) | 982 | bx lr @ interoperable with Thumb ISA:-) |
983 | #endif | 983 | #endif |
984 | .size AES_decrypt,.-AES_decrypt | 984 | .size aes_decrypt_internal,.-aes_decrypt_internal |
985 | 985 | ||
986 | .type _armv4_AES_decrypt,%function | 986 | .type _armv4_AES_decrypt,%function |
987 | .align 2 | 987 | .align 2 |
diff --git a/src/lib/libcrypto/aes/asm/aes-mips.pl b/src/lib/libcrypto/aes/asm/aes-mips.pl index b3649bc60f..9a5df878f5 100644 --- a/src/lib/libcrypto/aes/asm/aes-mips.pl +++ b/src/lib/libcrypto/aes/asm/aes-mips.pl | |||
@@ -355,9 +355,9 @@ _mips_AES_encrypt: | |||
355 | .end _mips_AES_encrypt | 355 | .end _mips_AES_encrypt |
356 | 356 | ||
357 | .align 5 | 357 | .align 5 |
358 | .globl AES_encrypt | 358 | .globl aes_encrypt_internal |
359 | .ent AES_encrypt | 359 | .ent aes_encrypt_internal |
360 | AES_encrypt: | 360 | aes_encrypt_internal: |
361 | .frame $sp,$FRAMESIZE,$ra | 361 | .frame $sp,$FRAMESIZE,$ra |
362 | .mask $SAVED_REGS_MASK,-$SZREG | 362 | .mask $SAVED_REGS_MASK,-$SZREG |
363 | .set noreorder | 363 | .set noreorder |
@@ -387,7 +387,7 @@ $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue | |||
387 | ___ | 387 | ___ |
388 | $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification | 388 | $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification |
389 | .cplocal $Tbl | 389 | .cplocal $Tbl |
390 | .cpsetup $pf,$zero,AES_encrypt | 390 | .cpsetup $pf,$zero,aes_encrypt_internal |
391 | ___ | 391 | ___ |
392 | $code.=<<___; | 392 | $code.=<<___; |
393 | .set reorder | 393 | .set reorder |
@@ -435,7 +435,7 @@ ___ | |||
435 | $code.=<<___; | 435 | $code.=<<___; |
436 | jr $ra | 436 | jr $ra |
437 | $PTR_ADD $sp,$FRAMESIZE | 437 | $PTR_ADD $sp,$FRAMESIZE |
438 | .end AES_encrypt | 438 | .end aes_encrypt_internal |
439 | ___ | 439 | ___ |
440 | 440 | ||
441 | $code.=<<___; | 441 | $code.=<<___; |
@@ -691,9 +691,9 @@ _mips_AES_decrypt: | |||
691 | .end _mips_AES_decrypt | 691 | .end _mips_AES_decrypt |
692 | 692 | ||
693 | .align 5 | 693 | .align 5 |
694 | .globl AES_decrypt | 694 | .globl aes_decrypt_internal |
695 | .ent AES_decrypt | 695 | .ent aes_decrypt_internal |
696 | AES_decrypt: | 696 | aes_decrypt_internal: |
697 | .frame $sp,$FRAMESIZE,$ra | 697 | .frame $sp,$FRAMESIZE,$ra |
698 | .mask $SAVED_REGS_MASK,-$SZREG | 698 | .mask $SAVED_REGS_MASK,-$SZREG |
699 | .set noreorder | 699 | .set noreorder |
@@ -723,7 +723,7 @@ $code.=<<___ if ($flavour =~ /nubi/i); # optimize non-nubi prologue | |||
723 | ___ | 723 | ___ |
724 | $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification | 724 | $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification |
725 | .cplocal $Tbl | 725 | .cplocal $Tbl |
726 | .cpsetup $pf,$zero,AES_decrypt | 726 | .cpsetup $pf,$zero,aes_decrypt_internal |
727 | ___ | 727 | ___ |
728 | $code.=<<___; | 728 | $code.=<<___; |
729 | .set reorder | 729 | .set reorder |
@@ -771,7 +771,7 @@ ___ | |||
771 | $code.=<<___; | 771 | $code.=<<___; |
772 | jr $ra | 772 | jr $ra |
773 | $PTR_ADD $sp,$FRAMESIZE | 773 | $PTR_ADD $sp,$FRAMESIZE |
774 | .end AES_decrypt | 774 | .end aes_decrypt_internal |
775 | ___ | 775 | ___ |
776 | }}} | 776 | }}} |
777 | 777 | ||
diff --git a/src/lib/libcrypto/aes/asm/aes-parisc.pl b/src/lib/libcrypto/aes/asm/aes-parisc.pl index 43dbfc108d..4e4592b56b 100644 --- a/src/lib/libcrypto/aes/asm/aes-parisc.pl +++ b/src/lib/libcrypto/aes/asm/aes-parisc.pl | |||
@@ -66,9 +66,9 @@ $code=<<___; | |||
66 | .LEVEL $LEVEL | 66 | .LEVEL $LEVEL |
67 | .text | 67 | .text |
68 | 68 | ||
69 | .EXPORT AES_encrypt,ENTRY,ARGW0=GR,ARGW1=GR,ARGW2=GR | 69 | .EXPORT aes_encrypt_internal,ENTRY,ARGW0=GR,ARGW1=GR,ARGW2=GR |
70 | .ALIGN 64 | 70 | .ALIGN 64 |
71 | AES_encrypt | 71 | aes_encrypt_internal |
72 | .PROC | 72 | .PROC |
73 | .CALLINFO FRAME=`$FRAME-16*$SIZE_T`,NO_CALLS,SAVE_RP,ENTRY_GR=18 | 73 | .CALLINFO FRAME=`$FRAME-16*$SIZE_T`,NO_CALLS,SAVE_RP,ENTRY_GR=18 |
74 | .ENTRY | 74 | .ENTRY |
@@ -540,9 +540,9 @@ L\$AES_Te | |||
540 | ___ | 540 | ___ |
541 | 541 | ||
542 | $code.=<<___; | 542 | $code.=<<___; |
543 | .EXPORT AES_decrypt,ENTRY,ARGW0=GR,ARGW1=GR,ARGW2=GR | 543 | .EXPORT aes_decrypt_internal,ENTRY,ARGW0=GR,ARGW1=GR,ARGW2=GR |
544 | .ALIGN 16 | 544 | .ALIGN 16 |
545 | AES_decrypt | 545 | aes_decrypt_internal |
546 | .PROC | 546 | .PROC |
547 | .CALLINFO FRAME=`$FRAME-16*$SIZE_T`,NO_CALLS,SAVE_RP,ENTRY_GR=18 | 547 | .CALLINFO FRAME=`$FRAME-16*$SIZE_T`,NO_CALLS,SAVE_RP,ENTRY_GR=18 |
548 | .ENTRY | 548 | .ENTRY |
diff --git a/src/lib/libcrypto/aes/asm/aes-ppc.pl b/src/lib/libcrypto/aes/asm/aes-ppc.pl index bc93603669..178ba56b3e 100644 --- a/src/lib/libcrypto/aes/asm/aes-ppc.pl +++ b/src/lib/libcrypto/aes/asm/aes-ppc.pl | |||
@@ -327,9 +327,9 @@ $code.=<<___; | |||
327 | .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d | 327 | .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d |
328 | 328 | ||
329 | 329 | ||
330 | .globl .AES_encrypt | 330 | .globl .aes_encrypt_internal |
331 | .align 7 | 331 | .align 7 |
332 | .AES_encrypt: | 332 | .aes_encrypt_internal: |
333 | $STU $sp,-$FRAME($sp) | 333 | $STU $sp,-$FRAME($sp) |
334 | mflr r0 | 334 | mflr r0 |
335 | 335 | ||
@@ -754,9 +754,9 @@ Lenc_compact_done: | |||
754 | xor $s3,$s3,$t3 | 754 | xor $s3,$s3,$t3 |
755 | blr | 755 | blr |
756 | 756 | ||
757 | .globl .AES_decrypt | 757 | .globl .aes_decrypt_internal |
758 | .align 7 | 758 | .align 7 |
759 | .AES_decrypt: | 759 | .aes_decrypt_internal: |
760 | $STU $sp,-$FRAME($sp) | 760 | $STU $sp,-$FRAME($sp) |
761 | mflr r0 | 761 | mflr r0 |
762 | 762 | ||
diff --git a/src/lib/libcrypto/aes/asm/aes-sparcv9.pl b/src/lib/libcrypto/aes/asm/aes-sparcv9.pl index 08ac9830f1..1348d09594 100755 --- a/src/lib/libcrypto/aes/asm/aes-sparcv9.pl +++ b/src/lib/libcrypto/aes/asm/aes-sparcv9.pl | |||
@@ -511,8 +511,8 @@ _sparcv9_AES_encrypt: | |||
511 | .size _sparcv9_AES_encrypt,(.-_sparcv9_AES_encrypt) | 511 | .size _sparcv9_AES_encrypt,(.-_sparcv9_AES_encrypt) |
512 | 512 | ||
513 | .align 32 | 513 | .align 32 |
514 | .globl AES_encrypt | 514 | .globl aes_encrypt_internal |
515 | AES_encrypt: | 515 | aes_encrypt_internal: |
516 | save %sp,-$frame,%sp | 516 | save %sp,-$frame,%sp |
517 | #ifdef __PIC__ | 517 | #ifdef __PIC__ |
518 | sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5 | 518 | sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5 |
@@ -638,8 +638,8 @@ AES_encrypt: | |||
638 | 638 | ||
639 | ret | 639 | ret |
640 | restore | 640 | restore |
641 | .type AES_encrypt,#function | 641 | .type aes_encrypt_internal,#function |
642 | .size AES_encrypt,(.-AES_encrypt) | 642 | .size aes_encrypt_internal,(.-aes_encrypt_internal) |
643 | 643 | ||
644 | ___ | 644 | ___ |
645 | 645 | ||
@@ -1075,8 +1075,8 @@ _sparcv9_AES_decrypt: | |||
1075 | .size _sparcv9_AES_decrypt,(.-_sparcv9_AES_decrypt) | 1075 | .size _sparcv9_AES_decrypt,(.-_sparcv9_AES_decrypt) |
1076 | 1076 | ||
1077 | .align 32 | 1077 | .align 32 |
1078 | .globl AES_decrypt | 1078 | .globl aes_decrypt_internal |
1079 | AES_decrypt: | 1079 | aes_decrypt_internal: |
1080 | save %sp,-$frame,%sp | 1080 | save %sp,-$frame,%sp |
1081 | #ifdef __PIC__ | 1081 | #ifdef __PIC__ |
1082 | sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5 | 1082 | sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5 |
@@ -1202,8 +1202,8 @@ AES_decrypt: | |||
1202 | 1202 | ||
1203 | ret | 1203 | ret |
1204 | restore | 1204 | restore |
1205 | .type AES_decrypt,#function | 1205 | .type aes_decrypt_internal,#function |
1206 | .size AES_decrypt,(.-AES_decrypt) | 1206 | .size aes_decrypt_internal,(.-aes_decrypt_internal) |
1207 | ___ | 1207 | ___ |
1208 | 1208 | ||
1209 | # fmovs instructions substituting for FP nops were originally added | 1209 | # fmovs instructions substituting for FP nops were originally added |
diff --git a/src/lib/libcrypto/aes/asm/aes-x86_64.pl b/src/lib/libcrypto/aes/asm/aes-x86_64.pl index 9b75a6f7a5..324c4a2be2 100755 --- a/src/lib/libcrypto/aes/asm/aes-x86_64.pl +++ b/src/lib/libcrypto/aes/asm/aes-x86_64.pl | |||
@@ -586,15 +586,15 @@ $code.=<<___; | |||
586 | .size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact | 586 | .size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact |
587 | ___ | 587 | ___ |
588 | 588 | ||
589 | # void AES_encrypt (const void *inp,void *out,const AES_KEY *key); | 589 | # void aes_encrypt_internal(const void *inp, void *out, const AES_KEY *key); |
590 | $code.=<<___; | 590 | $code.=<<___; |
591 | .globl AES_encrypt | 591 | .globl aes_encrypt_internal |
592 | .type AES_encrypt,\@function,3 | 592 | .type aes_encrypt_internal,\@function,3 |
593 | .align 16 | 593 | .align 16 |
594 | .globl asm_AES_encrypt | 594 | .globl asm_AES_encrypt |
595 | .hidden asm_AES_encrypt | 595 | .hidden asm_AES_encrypt |
596 | asm_AES_encrypt: | 596 | asm_AES_encrypt: |
597 | AES_encrypt: | 597 | aes_encrypt_internal: |
598 | _CET_ENDBR | 598 | _CET_ENDBR |
599 | push %rbx | 599 | push %rbx |
600 | push %rbp | 600 | push %rbp |
@@ -655,7 +655,7 @@ AES_encrypt: | |||
655 | lea 48(%rsi),%rsp | 655 | lea 48(%rsi),%rsp |
656 | .Lenc_epilogue: | 656 | .Lenc_epilogue: |
657 | ret | 657 | ret |
658 | .size AES_encrypt,.-AES_encrypt | 658 | .size aes_encrypt_internal,.-aes_encrypt_internal |
659 | ___ | 659 | ___ |
660 | 660 | ||
661 | #------------------------------------------------------------------# | 661 | #------------------------------------------------------------------# |
@@ -1188,15 +1188,15 @@ $code.=<<___; | |||
1188 | .size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact | 1188 | .size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact |
1189 | ___ | 1189 | ___ |
1190 | 1190 | ||
1191 | # void AES_decrypt (const void *inp,void *out,const AES_KEY *key); | 1191 | # void aes_decrypt_internal(const void *inp, void *out, const AES_KEY *key); |
1192 | $code.=<<___; | 1192 | $code.=<<___; |
1193 | .globl AES_decrypt | 1193 | .globl aes_decrypt_internal |
1194 | .type AES_decrypt,\@function,3 | 1194 | .type aes_decrypt_internal,\@function,3 |
1195 | .align 16 | 1195 | .align 16 |
1196 | .globl asm_AES_decrypt | 1196 | .globl asm_AES_decrypt |
1197 | .hidden asm_AES_decrypt | 1197 | .hidden asm_AES_decrypt |
1198 | asm_AES_decrypt: | 1198 | asm_AES_decrypt: |
1199 | AES_decrypt: | 1199 | aes_decrypt_internal: |
1200 | _CET_ENDBR | 1200 | _CET_ENDBR |
1201 | push %rbx | 1201 | push %rbx |
1202 | push %rbp | 1202 | push %rbp |
@@ -1259,7 +1259,7 @@ AES_decrypt: | |||
1259 | lea 48(%rsi),%rsp | 1259 | lea 48(%rsi),%rsp |
1260 | .Ldec_epilogue: | 1260 | .Ldec_epilogue: |
1261 | ret | 1261 | ret |
1262 | .size AES_decrypt,.-AES_decrypt | 1262 | .size aes_decrypt_internal,.-aes_decrypt_internal |
1263 | ___ | 1263 | ___ |
1264 | #------------------------------------------------------------------# | 1264 | #------------------------------------------------------------------# |
1265 | 1265 | ||
@@ -2782,13 +2782,13 @@ cbc_se_handler: | |||
2782 | 2782 | ||
2783 | .section .pdata | 2783 | .section .pdata |
2784 | .align 4 | 2784 | .align 4 |
2785 | .rva .LSEH_begin_AES_encrypt | 2785 | .rva .LSEH_begin_aes_encrypt_internal |
2786 | .rva .LSEH_end_AES_encrypt | 2786 | .rva .LSEH_end_aes_encrypt_internal |
2787 | .rva .LSEH_info_AES_encrypt | 2787 | .rva .LSEH_info_aes_encrypt_internal |
2788 | 2788 | ||
2789 | .rva .LSEH_begin_AES_decrypt | 2789 | .rva .LSEH_begin_aes_decrypt_internal |
2790 | .rva .LSEH_end_AES_decrypt | 2790 | .rva .LSEH_end_aes_decrypt_internal |
2791 | .rva .LSEH_info_AES_decrypt | 2791 | .rva .LSEH_info_aes_decrypt_internal |
2792 | 2792 | ||
2793 | .rva .LSEH_begin_aes_set_encrypt_key_internal | 2793 | .rva .LSEH_begin_aes_set_encrypt_key_internal |
2794 | .rva .LSEH_end_aes_set_encrypt_key_internal | 2794 | .rva .LSEH_end_aes_set_encrypt_key_internal |
@@ -2804,11 +2804,11 @@ cbc_se_handler: | |||
2804 | 2804 | ||
2805 | .section .xdata | 2805 | .section .xdata |
2806 | .align 8 | 2806 | .align 8 |
2807 | .LSEH_info_AES_encrypt: | 2807 | .LSEH_info_aes_encrypt_internal: |
2808 | .byte 9,0,0,0 | 2808 | .byte 9,0,0,0 |
2809 | .rva block_se_handler | 2809 | .rva block_se_handler |
2810 | .rva .Lenc_prologue,.Lenc_epilogue # HandlerData[] | 2810 | .rva .Lenc_prologue,.Lenc_epilogue # HandlerData[] |
2811 | .LSEH_info_AES_decrypt: | 2811 | .LSEH_info_aes_decrypt_internal: |
2812 | .byte 9,0,0,0 | 2812 | .byte 9,0,0,0 |
2813 | .rva block_se_handler | 2813 | .rva block_se_handler |
2814 | .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[] | 2814 | .rva .Ldec_prologue,.Ldec_epilogue # HandlerData[] |
diff --git a/src/lib/libcrypto/arch/amd64/Makefile.inc b/src/lib/libcrypto/arch/amd64/Makefile.inc index ca7d751d77..a354105822 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.26 2024/03/29 07:24:09 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.27 2024/03/29 11:00:57 jsing Exp $ |
2 | 2 | ||
3 | # amd64-specific libcrypto build rules | 3 | # amd64-specific libcrypto build rules |
4 | 4 | ||
@@ -16,6 +16,8 @@ SSLASM+= aes aesni-x86_64 | |||
16 | CFLAGS+= -DHAVE_AES_CBC_ENCRYPT_INTERNAL | 16 | CFLAGS+= -DHAVE_AES_CBC_ENCRYPT_INTERNAL |
17 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL | 17 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL |
18 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL | 18 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL |
19 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
20 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
19 | # bn | 21 | # bn |
20 | CFLAGS+= -DOPENSSL_IA32_SSE2 | 22 | CFLAGS+= -DOPENSSL_IA32_SSE2 |
21 | CFLAGS+= -DRSA_ASM | 23 | CFLAGS+= -DRSA_ASM |
diff --git a/src/lib/libcrypto/arch/arm/Makefile.inc b/src/lib/libcrypto/arch/arm/Makefile.inc index a614add80c..43c0589eb6 100644 --- a/src/lib/libcrypto/arch/arm/Makefile.inc +++ b/src/lib/libcrypto/arch/arm/Makefile.inc | |||
@@ -7,6 +7,8 @@ CFLAGS+= -DAES_ASM | |||
7 | SSLASM+= aes aes-armv4 | 7 | SSLASM+= aes aes-armv4 |
8 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL | 8 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL |
9 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL | 9 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL |
10 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
11 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
10 | # bn | 12 | # bn |
11 | CFLAGS+= -DOPENSSL_BN_ASM_MONT | 13 | CFLAGS+= -DOPENSSL_BN_ASM_MONT |
12 | SSLASM+= bn armv4-mont | 14 | SSLASM+= bn armv4-mont |
diff --git a/src/lib/libcrypto/arch/hppa/Makefile.inc b/src/lib/libcrypto/arch/hppa/Makefile.inc index 5938320aa4..9796d3a860 100644 --- a/src/lib/libcrypto/arch/hppa/Makefile.inc +++ b/src/lib/libcrypto/arch/hppa/Makefile.inc | |||
@@ -1,10 +1,12 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.23 2024/03/29 07:24:09 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.24 2024/03/29 11:00:57 jsing Exp $ |
2 | 2 | ||
3 | # hppa-specific libcrypto build rules | 3 | # hppa-specific libcrypto build rules |
4 | 4 | ||
5 | # aes | 5 | # aes |
6 | CFLAGS+= -DAES_ASM | 6 | CFLAGS+= -DAES_ASM |
7 | SSLASM+= aes aes-parisc aes-parisc | 7 | SSLASM+= aes aes-parisc aes-parisc |
8 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
9 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
8 | # bn | 10 | # bn |
9 | SSLASM+= bn parisc-mont parisc-mont | 11 | SSLASM+= bn parisc-mont parisc-mont |
10 | CFLAGS+= -DOPENSSL_BN_ASM_MONT -DBN_DIV2W | 12 | CFLAGS+= -DOPENSSL_BN_ASM_MONT -DBN_DIV2W |
diff --git a/src/lib/libcrypto/arch/i386/Makefile.inc b/src/lib/libcrypto/arch/i386/Makefile.inc index 71bee6e1a0..37f6ba32b9 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.23 2024/03/29 07:24:09 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.24 2024/03/29 11:00:57 jsing Exp $ |
2 | 2 | ||
3 | # i386-specific libcrypto build rules | 3 | # i386-specific libcrypto build rules |
4 | 4 | ||
@@ -14,6 +14,8 @@ SSLASM+= aes aesni-x86 | |||
14 | CFLAGS+= -DHAVE_AES_CBC_ENCRYPT_INTERNAL | 14 | CFLAGS+= -DHAVE_AES_CBC_ENCRYPT_INTERNAL |
15 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL | 15 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL |
16 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL | 16 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL |
17 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
18 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
17 | # bn | 19 | # bn |
18 | CFLAGS+= -DOPENSSL_IA32_SSE2 | 20 | CFLAGS+= -DOPENSSL_IA32_SSE2 |
19 | SSLASM+= bn bn-586 | 21 | SSLASM+= bn bn-586 |
diff --git a/src/lib/libcrypto/arch/mips64/Makefile.inc b/src/lib/libcrypto/arch/mips64/Makefile.inc index baad8c43e7..41d6b0e888 100644 --- a/src/lib/libcrypto/arch/mips64/Makefile.inc +++ b/src/lib/libcrypto/arch/mips64/Makefile.inc | |||
@@ -1,4 +1,4 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.16 2024/03/29 07:24:09 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.17 2024/03/29 11:00:57 jsing Exp $ |
2 | 2 | ||
3 | # mips64-specific libcrypto build rules | 3 | # mips64-specific libcrypto build rules |
4 | 4 | ||
@@ -7,6 +7,8 @@ CFLAGS+= -DAES_ASM | |||
7 | SSLASM+= aes aes-mips aes-mips | 7 | SSLASM+= aes aes-mips aes-mips |
8 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL | 8 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL |
9 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL | 9 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL |
10 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
11 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
10 | # bn | 12 | # bn |
11 | SSLASM+= bn mips bn-mips | 13 | SSLASM+= bn mips bn-mips |
12 | SSLASM+= bn mips-mont mips-mont | 14 | SSLASM+= bn mips-mont mips-mont |
diff --git a/src/lib/libcrypto/arch/sparc64/Makefile.inc b/src/lib/libcrypto/arch/sparc64/Makefile.inc index 3f2b7a6c55..c4b303f444 100644 --- a/src/lib/libcrypto/arch/sparc64/Makefile.inc +++ b/src/lib/libcrypto/arch/sparc64/Makefile.inc | |||
@@ -1,10 +1,12 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.17 2024/03/29 07:24:09 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.18 2024/03/29 11:00:57 jsing Exp $ |
2 | 2 | ||
3 | # sparc64-specific libcrypto build rules | 3 | # sparc64-specific libcrypto build rules |
4 | 4 | ||
5 | # aes | 5 | # aes |
6 | CFLAGS+= -DAES_ASM | 6 | CFLAGS+= -DAES_ASM |
7 | SSLASM+= aes aes-sparcv9 aes-sparcv9 | 7 | SSLASM+= aes aes-sparcv9 aes-sparcv9 |
8 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
9 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
8 | # bn | 10 | # bn |
9 | # modes | 11 | # modes |
10 | CFLAGS+= -DGHASH_ASM | 12 | CFLAGS+= -DGHASH_ASM |