diff options
author | jsing <> | 2024-08-11 13:02:39 +0000 |
---|---|---|
committer | jsing <> | 2024-08-11 13:02:39 +0000 |
commit | b0dd926baf4bcb43c9b178d7c252489f4434c5a8 (patch) | |
tree | 8b15d049ee9ab57d9d0970062ec6f18bd01c002c | |
parent | 04ef9499c2bc221c90eb7bd81841524c46ffde33 (diff) | |
download | openbsd-b0dd926baf4bcb43c9b178d7c252489f4434c5a8.tar.gz openbsd-b0dd926baf4bcb43c9b178d7c252489f4434c5a8.tar.bz2 openbsd-b0dd926baf4bcb43c9b178d7c252489f4434c5a8.zip |
Provide and use crypto_arch.h.
Provide a per architecture crypto_arch.h - this will be used in a similar
manner to bn_arch.h and will allow for architecture specific #defines and
static inline functions. Move the HAVE_AES_* and HAVE_RC4_* defines here.
ok tb@
23 files changed, 347 insertions, 35 deletions
diff --git a/src/lib/libcrypto/aes/aes.c b/src/lib/libcrypto/aes/aes.c index 4d040ea5f7..d36a006360 100644 --- a/src/lib/libcrypto/aes/aes.c +++ b/src/lib/libcrypto/aes/aes.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: aes.c,v 1.3 2024/03/30 05:14:12 joshua Exp $ */ | 1 | /* $OpenBSD: aes.c,v 1.4 2024/08/11 13:02:39 jsing Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -55,6 +55,8 @@ | |||
55 | #include <openssl/bio.h> | 55 | #include <openssl/bio.h> |
56 | #include <openssl/modes.h> | 56 | #include <openssl/modes.h> |
57 | 57 | ||
58 | #include "crypto_arch.h" | ||
59 | |||
58 | static const unsigned char aes_wrap_default_iv[] = { | 60 | static const unsigned char aes_wrap_default_iv[] = { |
59 | 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, | 61 | 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, |
60 | }; | 62 | }; |
diff --git a/src/lib/libcrypto/aes/aes_core.c b/src/lib/libcrypto/aes/aes_core.c index 335b1dba54..0472d5f4e2 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.23 2024/03/30 05:14:12 joshua Exp $ */ | 1 | /* $OpenBSD: aes_core.c,v 1.24 2024/08/11 13:02:39 jsing Exp $ */ |
2 | /** | 2 | /** |
3 | * rijndael-alg-fst.c | 3 | * rijndael-alg-fst.c |
4 | * | 4 | * |
@@ -35,6 +35,7 @@ | |||
35 | #include <openssl/aes.h> | 35 | #include <openssl/aes.h> |
36 | 36 | ||
37 | #include "aes_local.h" | 37 | #include "aes_local.h" |
38 | #include "crypto_arch.h" | ||
38 | #include "crypto_internal.h" | 39 | #include "crypto_internal.h" |
39 | 40 | ||
40 | /* | 41 | /* |
diff --git a/src/lib/libcrypto/arch/aarch64/crypto_arch.h b/src/lib/libcrypto/arch/aarch64/crypto_arch.h new file mode 100644 index 0000000000..a3dd98d0ce --- /dev/null +++ b/src/lib/libcrypto/arch/aarch64/crypto_arch.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #endif | ||
diff --git a/src/lib/libcrypto/arch/alpha/crypto_arch.h b/src/lib/libcrypto/arch/alpha/crypto_arch.h new file mode 100644 index 0000000000..a3dd98d0ce --- /dev/null +++ b/src/lib/libcrypto/arch/alpha/crypto_arch.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #endif | ||
diff --git a/src/lib/libcrypto/arch/amd64/Makefile.inc b/src/lib/libcrypto/arch/amd64/Makefile.inc index 0cf212b186..dd136f76a7 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.28 2024/06/04 15:14:45 deraadt Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.29 2024/08/11 13:02:39 jsing Exp $ |
2 | 2 | ||
3 | # amd64-specific libcrypto build rules | 3 | # amd64-specific libcrypto build rules |
4 | 4 | ||
@@ -13,11 +13,6 @@ 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 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL | ||
18 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL | ||
19 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
20 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
21 | # bn | 16 | # bn |
22 | CFLAGS+= -DOPENSSL_IA32_SSE2 | 17 | CFLAGS+= -DOPENSSL_IA32_SSE2 |
23 | CFLAGS+= -DRSA_ASM | 18 | CFLAGS+= -DRSA_ASM |
@@ -48,8 +43,6 @@ SSLASM+= md5 md5-x86_64 | |||
48 | CFLAGS+= -DGHASH_ASM | 43 | CFLAGS+= -DGHASH_ASM |
49 | SSLASM+= modes ghash-x86_64 | 44 | SSLASM+= modes ghash-x86_64 |
50 | # rc4 | 45 | # rc4 |
51 | CFLAGS+= -DHAVE_RC4_INTERNAL | ||
52 | CFLAGS+= -DHAVE_RC4_SET_KEY_INTERNAL | ||
53 | SSLASM+= rc4 rc4-x86_64 | 46 | SSLASM+= rc4 rc4-x86_64 |
54 | # ripemd | 47 | # ripemd |
55 | # sha | 48 | # sha |
diff --git a/src/lib/libcrypto/arch/amd64/crypto_arch.h b/src/lib/libcrypto/arch/amd64/crypto_arch.h new file mode 100644 index 0000000000..8e91c25529 --- /dev/null +++ b/src/lib/libcrypto/arch/amd64/crypto_arch.h | |||
@@ -0,0 +1,34 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #ifndef OPENSSL_NO_ASM | ||
22 | |||
23 | #define HAVE_AES_CBC_ENCRYPT_INTERNAL | ||
24 | #define HAVE_AES_SET_ENCRYPT_KEY_INTERNAL | ||
25 | #define HAVE_AES_SET_DECRYPT_KEY_INTERNAL | ||
26 | #define HAVE_AES_ENCRYPT_INTERNAL | ||
27 | #define HAVE_AES_DECRYPT_INTERNAL | ||
28 | |||
29 | #define HAVE_RC4_INTERNAL | ||
30 | #define HAVE_RC4_SET_KEY_INTERNAL | ||
31 | |||
32 | #endif | ||
33 | |||
34 | #endif | ||
diff --git a/src/lib/libcrypto/arch/arm/Makefile.inc b/src/lib/libcrypto/arch/arm/Makefile.inc index 43c0589eb6..b09b54a564 100644 --- a/src/lib/libcrypto/arch/arm/Makefile.inc +++ b/src/lib/libcrypto/arch/arm/Makefile.inc | |||
@@ -5,10 +5,6 @@ | |||
5 | # aes | 5 | # aes |
6 | CFLAGS+= -DAES_ASM | 6 | CFLAGS+= -DAES_ASM |
7 | SSLASM+= aes aes-armv4 | 7 | SSLASM+= aes aes-armv4 |
8 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL | ||
9 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL | ||
10 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
11 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
12 | # bn | 8 | # bn |
13 | CFLAGS+= -DOPENSSL_BN_ASM_MONT | 9 | CFLAGS+= -DOPENSSL_BN_ASM_MONT |
14 | SSLASM+= bn armv4-mont | 10 | SSLASM+= bn armv4-mont |
diff --git a/src/lib/libcrypto/arch/arm/crypto_arch.h b/src/lib/libcrypto/arch/arm/crypto_arch.h new file mode 100644 index 0000000000..4276dc31ea --- /dev/null +++ b/src/lib/libcrypto/arch/arm/crypto_arch.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #ifndef OPENSSL_NO_ASM | ||
22 | |||
23 | #define HAVE_AES_SET_ENCRYPT_KEY_INTERNAL | ||
24 | #define HAVE_AES_SET_DECRYPT_KEY_INTERNAL | ||
25 | #define HAVE_AES_ENCRYPT_INTERNAL | ||
26 | #define HAVE_AES_DECRYPT_INTERNAL | ||
27 | |||
28 | #endif | ||
29 | |||
30 | #endif | ||
diff --git a/src/lib/libcrypto/arch/hppa/Makefile.inc b/src/lib/libcrypto/arch/hppa/Makefile.inc index 9796d3a860..4e2675a600 100644 --- a/src/lib/libcrypto/arch/hppa/Makefile.inc +++ b/src/lib/libcrypto/arch/hppa/Makefile.inc | |||
@@ -1,12 +1,10 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.24 2024/03/29 11:00:57 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.25 2024/08/11 13:02:39 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 | ||
10 | # bn | 8 | # bn |
11 | SSLASM+= bn parisc-mont parisc-mont | 9 | SSLASM+= bn parisc-mont parisc-mont |
12 | CFLAGS+= -DOPENSSL_BN_ASM_MONT -DBN_DIV2W | 10 | CFLAGS+= -DOPENSSL_BN_ASM_MONT -DBN_DIV2W |
diff --git a/src/lib/libcrypto/arch/hppa/crypto_arch.h b/src/lib/libcrypto/arch/hppa/crypto_arch.h new file mode 100644 index 0000000000..7f1fc36cac --- /dev/null +++ b/src/lib/libcrypto/arch/hppa/crypto_arch.h | |||
@@ -0,0 +1,28 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #ifndef OPENSSL_NO_ASM | ||
22 | |||
23 | #define HAVE_AES_ENCRYPT_INTERNAL | ||
24 | #define HAVE_AES_DECRYPT_INTERNAL | ||
25 | |||
26 | #endif | ||
27 | |||
28 | #endif | ||
diff --git a/src/lib/libcrypto/arch/i386/Makefile.inc b/src/lib/libcrypto/arch/i386/Makefile.inc index 37f6ba32b9..eeaed44f84 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.24 2024/03/29 11:00:57 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.25 2024/08/11 13:02:39 jsing Exp $ |
2 | 2 | ||
3 | # i386-specific libcrypto build rules | 3 | # i386-specific libcrypto build rules |
4 | 4 | ||
@@ -11,11 +11,6 @@ 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 | CFLAGS+= -DHAVE_AES_SET_ENCRYPT_KEY_INTERNAL | ||
16 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL | ||
17 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
18 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
19 | # bn | 14 | # bn |
20 | CFLAGS+= -DOPENSSL_IA32_SSE2 | 15 | CFLAGS+= -DOPENSSL_IA32_SSE2 |
21 | SSLASM+= bn bn-586 | 16 | SSLASM+= bn bn-586 |
@@ -29,8 +24,6 @@ SSLASM+= md5 md5-586 | |||
29 | CFLAGS+= -DGHASH_ASM | 24 | CFLAGS+= -DGHASH_ASM |
30 | SSLASM+= modes ghash-x86 | 25 | SSLASM+= modes ghash-x86 |
31 | # rc4 | 26 | # rc4 |
32 | CFLAGS+= -DHAVE_RC4_INTERNAL | ||
33 | CFLAGS+= -DHAVE_RC4_SET_KEY_INTERNAL | ||
34 | SSLASM+= rc4 rc4-586 | 27 | SSLASM+= rc4 rc4-586 |
35 | # sha | 28 | # sha |
36 | CFLAGS+= -DSHA1_ASM | 29 | CFLAGS+= -DSHA1_ASM |
diff --git a/src/lib/libcrypto/arch/i386/crypto_arch.h b/src/lib/libcrypto/arch/i386/crypto_arch.h new file mode 100644 index 0000000000..8e91c25529 --- /dev/null +++ b/src/lib/libcrypto/arch/i386/crypto_arch.h | |||
@@ -0,0 +1,34 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #ifndef OPENSSL_NO_ASM | ||
22 | |||
23 | #define HAVE_AES_CBC_ENCRYPT_INTERNAL | ||
24 | #define HAVE_AES_SET_ENCRYPT_KEY_INTERNAL | ||
25 | #define HAVE_AES_SET_DECRYPT_KEY_INTERNAL | ||
26 | #define HAVE_AES_ENCRYPT_INTERNAL | ||
27 | #define HAVE_AES_DECRYPT_INTERNAL | ||
28 | |||
29 | #define HAVE_RC4_INTERNAL | ||
30 | #define HAVE_RC4_SET_KEY_INTERNAL | ||
31 | |||
32 | #endif | ||
33 | |||
34 | #endif | ||
diff --git a/src/lib/libcrypto/arch/m88k/crypto_arch.h b/src/lib/libcrypto/arch/m88k/crypto_arch.h new file mode 100644 index 0000000000..a3dd98d0ce --- /dev/null +++ b/src/lib/libcrypto/arch/m88k/crypto_arch.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #endif | ||
diff --git a/src/lib/libcrypto/arch/mips64/Makefile.inc b/src/lib/libcrypto/arch/mips64/Makefile.inc index 41d6b0e888..9e08b442ac 100644 --- a/src/lib/libcrypto/arch/mips64/Makefile.inc +++ b/src/lib/libcrypto/arch/mips64/Makefile.inc | |||
@@ -1,14 +1,10 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.17 2024/03/29 11:00:57 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.18 2024/08/11 13:02:39 jsing Exp $ |
2 | 2 | ||
3 | # mips64-specific libcrypto build rules | 3 | # mips64-specific libcrypto build rules |
4 | 4 | ||
5 | # aes | 5 | # aes |
6 | CFLAGS+= -DAES_ASM | 6 | 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 | ||
9 | CFLAGS+= -DHAVE_AES_SET_DECRYPT_KEY_INTERNAL | ||
10 | CFLAGS+= -DHAVE_AES_ENCRYPT_INTERNAL | ||
11 | CFLAGS+= -DHAVE_AES_DECRYPT_INTERNAL | ||
12 | # bn | 8 | # bn |
13 | SSLASM+= bn mips bn-mips | 9 | SSLASM+= bn mips bn-mips |
14 | SSLASM+= bn mips-mont mips-mont | 10 | SSLASM+= bn mips-mont mips-mont |
diff --git a/src/lib/libcrypto/arch/mips64/crypto_arch.h b/src/lib/libcrypto/arch/mips64/crypto_arch.h new file mode 100644 index 0000000000..4276dc31ea --- /dev/null +++ b/src/lib/libcrypto/arch/mips64/crypto_arch.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #ifndef OPENSSL_NO_ASM | ||
22 | |||
23 | #define HAVE_AES_SET_ENCRYPT_KEY_INTERNAL | ||
24 | #define HAVE_AES_SET_DECRYPT_KEY_INTERNAL | ||
25 | #define HAVE_AES_ENCRYPT_INTERNAL | ||
26 | #define HAVE_AES_DECRYPT_INTERNAL | ||
27 | |||
28 | #endif | ||
29 | |||
30 | #endif | ||
diff --git a/src/lib/libcrypto/arch/powerpc/crypto_arch.h b/src/lib/libcrypto/arch/powerpc/crypto_arch.h new file mode 100644 index 0000000000..a3dd98d0ce --- /dev/null +++ b/src/lib/libcrypto/arch/powerpc/crypto_arch.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #endif | ||
diff --git a/src/lib/libcrypto/arch/powerpc64/crypto_arch.h b/src/lib/libcrypto/arch/powerpc64/crypto_arch.h new file mode 100644 index 0000000000..a3dd98d0ce --- /dev/null +++ b/src/lib/libcrypto/arch/powerpc64/crypto_arch.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #endif | ||
diff --git a/src/lib/libcrypto/arch/riscv64/crypto_arch.h b/src/lib/libcrypto/arch/riscv64/crypto_arch.h new file mode 100644 index 0000000000..a3dd98d0ce --- /dev/null +++ b/src/lib/libcrypto/arch/riscv64/crypto_arch.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #endif | ||
diff --git a/src/lib/libcrypto/arch/sh/crypto_arch.h b/src/lib/libcrypto/arch/sh/crypto_arch.h new file mode 100644 index 0000000000..a3dd98d0ce --- /dev/null +++ b/src/lib/libcrypto/arch/sh/crypto_arch.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #endif | ||
diff --git a/src/lib/libcrypto/arch/sparc64/Makefile.inc b/src/lib/libcrypto/arch/sparc64/Makefile.inc index c4b303f444..9101d8a89d 100644 --- a/src/lib/libcrypto/arch/sparc64/Makefile.inc +++ b/src/lib/libcrypto/arch/sparc64/Makefile.inc | |||
@@ -1,12 +1,10 @@ | |||
1 | # $OpenBSD: Makefile.inc,v 1.18 2024/03/29 11:00:57 jsing Exp $ | 1 | # $OpenBSD: Makefile.inc,v 1.19 2024/08/11 13:02:39 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 | ||
10 | # bn | 8 | # bn |
11 | # modes | 9 | # modes |
12 | CFLAGS+= -DGHASH_ASM | 10 | CFLAGS+= -DGHASH_ASM |
diff --git a/src/lib/libcrypto/arch/sparc64/crypto_arch.h b/src/lib/libcrypto/arch/sparc64/crypto_arch.h new file mode 100644 index 0000000000..7f1fc36cac --- /dev/null +++ b/src/lib/libcrypto/arch/sparc64/crypto_arch.h | |||
@@ -0,0 +1,28 @@ | |||
1 | /* $OpenBSD: crypto_arch.h,v 1.1 2024/08/11 13:02:39 jsing Exp $ */ | ||
2 | /* | ||
3 | * Copyright (c) 2024 Joel Sing <jsing@openbsd.org> | ||
4 | * | ||
5 | * Permission to use, copy, modify, and distribute this software for any | ||
6 | * purpose with or without fee is hereby granted, provided that the above | ||
7 | * copyright notice and this permission notice appear in all copies. | ||
8 | * | ||
9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
10 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
11 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
12 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
13 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
14 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
15 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
16 | */ | ||
17 | |||
18 | #ifndef HEADER_CRYPTO_ARCH_H | ||
19 | #define HEADER_CRYPTO_ARCH_H | ||
20 | |||
21 | #ifndef OPENSSL_NO_ASM | ||
22 | |||
23 | #define HAVE_AES_ENCRYPT_INTERNAL | ||
24 | #define HAVE_AES_DECRYPT_INTERNAL | ||
25 | |||
26 | #endif | ||
27 | |||
28 | #endif | ||
diff --git a/src/lib/libcrypto/crypto_internal.h b/src/lib/libcrypto/crypto_internal.h index 8229db2d68..7676076f67 100644 --- a/src/lib/libcrypto/crypto_internal.h +++ b/src/lib/libcrypto/crypto_internal.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: crypto_internal.h,v 1.10 2024/04/17 14:43:37 jsing Exp $ */ | 1 | /* $OpenBSD: crypto_internal.h,v 1.11 2024/08/11 13:02:39 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -20,6 +20,8 @@ | |||
20 | #include <stdint.h> | 20 | #include <stdint.h> |
21 | #include <string.h> | 21 | #include <string.h> |
22 | 22 | ||
23 | #include "crypto_arch.h" | ||
24 | |||
23 | #ifndef HEADER_CRYPTO_INTERNAL_H | 25 | #ifndef HEADER_CRYPTO_INTERNAL_H |
24 | #define HEADER_CRYPTO_INTERNAL_H | 26 | #define HEADER_CRYPTO_INTERNAL_H |
25 | 27 | ||
diff --git a/src/lib/libcrypto/rc4/rc4.c b/src/lib/libcrypto/rc4/rc4.c index 203fee4996..930d0d9bb3 100644 --- a/src/lib/libcrypto/rc4/rc4.c +++ b/src/lib/libcrypto/rc4/rc4.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: rc4.c,v 1.11 2024/03/28 12:11:26 jsing Exp $ */ | 1 | /* $OpenBSD: rc4.c,v 1.12 2024/08/11 13:02:39 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -60,6 +60,8 @@ | |||
60 | 60 | ||
61 | #include <openssl/rc4.h> | 61 | #include <openssl/rc4.h> |
62 | 62 | ||
63 | #include "crypto_arch.h" | ||
64 | |||
63 | /* RC4 as implemented from a posting from | 65 | /* RC4 as implemented from a posting from |
64 | * Newsgroups: sci.crypt | 66 | * Newsgroups: sci.crypt |
65 | * From: sterndark@netcom.com (David Sterndark) | 67 | * From: sterndark@netcom.com (David Sterndark) |