summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/arch')
-rw-r--r--src/lib/libcrypto/arch/aarch64/Makefile.inc12
-rw-r--r--src/lib/libcrypto/arch/aarch64/crypto_arch.h43
-rw-r--r--src/lib/libcrypto/arch/aarch64/crypto_cpu_caps.c97
-rw-r--r--src/lib/libcrypto/arch/aarch64/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/alpha/Makefile.inc20
-rw-r--r--src/lib/libcrypto/arch/alpha/crypto_arch.h24
-rw-r--r--src/lib/libcrypto/arch/alpha/opensslconf.h152
-rw-r--r--src/lib/libcrypto/arch/amd64/Makefile.inc68
-rw-r--r--src/lib/libcrypto/arch/amd64/crypto_arch.h54
-rw-r--r--src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c134
-rw-r--r--src/lib/libcrypto/arch/amd64/opensslconf.h149
-rw-r--r--src/lib/libcrypto/arch/arm/Makefile.inc28
-rw-r--r--src/lib/libcrypto/arch/arm/arm_arch.h59
-rw-r--r--src/lib/libcrypto/arch/arm/armcap.c88
-rw-r--r--src/lib/libcrypto/arch/arm/armv4cpuid.S69
-rw-r--r--src/lib/libcrypto/arch/arm/crypto_arch.h39
-rw-r--r--src/lib/libcrypto/arch/arm/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/hppa/Makefile.inc24
-rw-r--r--src/lib/libcrypto/arch/hppa/crypto_arch.h34
-rw-r--r--src/lib/libcrypto/arch/hppa/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/i386/Makefile.inc42
-rw-r--r--src/lib/libcrypto/arch/i386/crypto_arch.h46
-rw-r--r--src/lib/libcrypto/arch/i386/crypto_cpu_caps.c120
-rw-r--r--src/lib/libcrypto/arch/i386/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/m88k/crypto_arch.h21
-rw-r--r--src/lib/libcrypto/arch/m88k/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/mips64/Makefile.inc23
-rw-r--r--src/lib/libcrypto/arch/mips64/crypto_arch.h39
-rw-r--r--src/lib/libcrypto/arch/mips64/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/powerpc/Makefile.inc22
-rw-r--r--src/lib/libcrypto/arch/powerpc/crypto_arch.h31
-rw-r--r--src/lib/libcrypto/arch/powerpc/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/powerpc64/Makefile.inc22
-rw-r--r--src/lib/libcrypto/arch/powerpc64/crypto_arch.h21
-rw-r--r--src/lib/libcrypto/arch/powerpc64/opensslconf.h149
-rw-r--r--src/lib/libcrypto/arch/riscv64/Makefile.inc3
-rw-r--r--src/lib/libcrypto/arch/riscv64/crypto_arch.h21
-rw-r--r--src/lib/libcrypto/arch/riscv64/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/sh/crypto_arch.h21
-rw-r--r--src/lib/libcrypto/arch/sh/opensslconf.h154
-rw-r--r--src/lib/libcrypto/arch/sparc64/Makefile.inc23
-rw-r--r--src/lib/libcrypto/arch/sparc64/crypto_arch.h37
-rw-r--r--src/lib/libcrypto/arch/sparc64/opensslconf.h154
43 files changed, 0 insertions, 3275 deletions
diff --git a/src/lib/libcrypto/arch/aarch64/Makefile.inc b/src/lib/libcrypto/arch/aarch64/Makefile.inc
deleted file mode 100644
index d93cb815ef..0000000000
--- a/src/lib/libcrypto/arch/aarch64/Makefile.inc
+++ /dev/null
@@ -1,12 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.16 2025/03/12 14:13:41 jsing Exp $
2
3# aarch64-specific libcrypto build rules
4
5SRCS += crypto_cpu_caps.c
6
7SRCS += sha256_aarch64.c
8SRCS += sha256_aarch64_ce.S
9SRCS += sha512_aarch64.c
10SRCS += sha512_aarch64_ce.S
11
12AFLAGS+= -mmark-bti-property
diff --git a/src/lib/libcrypto/arch/aarch64/crypto_arch.h b/src/lib/libcrypto/arch/aarch64/crypto_arch.h
deleted file mode 100644
index 35ecba9394..0000000000
--- a/src/lib/libcrypto/arch/aarch64/crypto_arch.h
+++ /dev/null
@@ -1,43 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.4 2025/03/12 14:13:41 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#include <stdint.h>
19
20#ifndef HEADER_CRYPTO_ARCH_H
21#define HEADER_CRYPTO_ARCH_H
22
23#define HAVE_CRYPTO_CPU_CAPS_INIT
24
25#ifndef __ASSEMBLER__
26extern uint64_t crypto_cpu_caps_aarch64;
27#endif
28
29#define CRYPTO_CPU_CAPS_AARCH64_AES (1ULL << 0)
30#define CRYPTO_CPU_CAPS_AARCH64_PMULL (1ULL << 1)
31#define CRYPTO_CPU_CAPS_AARCH64_SHA1 (1ULL << 2)
32#define CRYPTO_CPU_CAPS_AARCH64_SHA2 (1ULL << 3)
33#define CRYPTO_CPU_CAPS_AARCH64_SHA512 (1ULL << 4)
34#define CRYPTO_CPU_CAPS_AARCH64_SHA3 (1ULL << 5)
35
36#ifndef OPENSSL_NO_ASM
37
38#define HAVE_SHA256_BLOCK_DATA_ORDER
39#define HAVE_SHA512_BLOCK_DATA_ORDER
40
41#endif
42
43#endif
diff --git a/src/lib/libcrypto/arch/aarch64/crypto_cpu_caps.c b/src/lib/libcrypto/arch/aarch64/crypto_cpu_caps.c
deleted file mode 100644
index b31a50ef75..0000000000
--- a/src/lib/libcrypto/arch/aarch64/crypto_cpu_caps.c
+++ /dev/null
@@ -1,97 +0,0 @@
1/* $OpenBSD: crypto_cpu_caps.c,v 1.2 2024/11/12 13:52:31 jsing Exp $ */
2/*
3 * Copyright (c) 2023 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#include <sys/types.h>
19#include <sys/sysctl.h>
20
21#include <machine/cpu.h>
22
23#include <stddef.h>
24#include <stdio.h>
25
26#include "crypto_arch.h"
27
28/* Machine dependent CPU capabilities. */
29uint64_t crypto_cpu_caps_aarch64;
30
31static inline uint64_t
32extract_bits(uint64_t val, int start, int end)
33{
34 return (val >> end) & (1ULL << (1 + start - end)) - 1;
35}
36
37static uint64_t
38parse_isar0(uint64_t isar0)
39{
40 uint64_t caps = 0;
41 uint64_t feature;
42
43 /* AES - bits [7:4] */
44 feature = extract_bits(isar0, 7, 4);
45 if (feature >= 1)
46 caps |= CRYPTO_CPU_CAPS_AARCH64_AES;
47 if (feature >= 2)
48 caps |= CRYPTO_CPU_CAPS_AARCH64_PMULL;
49
50 /* SHA1 - bits [11:8] */
51 feature = extract_bits(isar0, 11, 8);
52 if (feature >= 1)
53 caps |= CRYPTO_CPU_CAPS_AARCH64_SHA1;
54
55 /* SHA2 - bits [15:12] */
56 feature = extract_bits(isar0, 15, 12);
57 if (feature >= 1)
58 caps |= CRYPTO_CPU_CAPS_AARCH64_SHA2;
59 if (feature >= 2)
60 caps |= CRYPTO_CPU_CAPS_AARCH64_SHA512;
61
62 /* SHA3 - bits [35:32] */
63 feature = extract_bits(isar0, 35, 32);
64 if (feature >= 1)
65 caps |= CRYPTO_CPU_CAPS_AARCH64_SHA3;
66
67 return caps;
68}
69
70static int
71read_isar0(uint64_t *isar0)
72{
73 uint64_t isar;
74 int mib[2];
75 size_t len;
76
77 mib[0] = CTL_MACHDEP;
78 mib[1] = CPU_ID_AA64ISAR0;
79 len = sizeof(isar);
80 if (sysctl(mib, 2, &isar, &len, NULL, 0) == -1)
81 return 0;
82
83 *isar0 = isar;
84
85 return 1;
86}
87
88void
89crypto_cpu_caps_init(void)
90{
91 uint64_t isar = 0;
92
93 if (!read_isar0(&isar))
94 return;
95
96 crypto_cpu_caps_aarch64 = parse_isar0(isar);
97}
diff --git a/src/lib/libcrypto/arch/aarch64/opensslconf.h b/src/lib/libcrypto/arch/aarch64/opensslconf.h
deleted file mode 100644
index 731b06aecc..0000000000
--- a/src/lib/libcrypto/arch/aarch64/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#define RC4_CHUNK unsigned long
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#undef BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#define SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#undef THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/alpha/Makefile.inc b/src/lib/libcrypto/arch/alpha/Makefile.inc
deleted file mode 100644
index 1073ac3c1e..0000000000
--- a/src/lib/libcrypto/arch/alpha/Makefile.inc
+++ /dev/null
@@ -1,20 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.15 2025/02/14 12:01:58 jsing Exp $
2
3# alpha-specific libcrypto build rules
4
5# bn
6SSLASM+= bn alpha-mont
7CFLAGS+= -DOPENSSL_BN_ASM_MONT
8# modes
9CFLAGS+= -DGHASH_ASM
10SSLASM+= modes ghash-alpha
11# sha
12SSLASM+= sha sha1-alpha
13
14.for dir f in ${SSLASM}
15SRCS+= ${f}.S
16GENERATED+=${f}.S
17${f}.S: ${LCRYPTO_SRC}/${dir}/asm/${f}.pl
18 /usr/bin/perl \
19 ${LCRYPTO_SRC}/${dir}/asm/${f}.pl > ${.TARGET}
20.endfor
diff --git a/src/lib/libcrypto/arch/alpha/crypto_arch.h b/src/lib/libcrypto/arch/alpha/crypto_arch.h
deleted file mode 100644
index 1d553b7e07..0000000000
--- a/src/lib/libcrypto/arch/alpha/crypto_arch.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.2 2025/02/14 12:01:58 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#define HAVE_SHA1_BLOCK_DATA_ORDER
22#define HAVE_SHA1_BLOCK_GENERIC
23
24#endif
diff --git a/src/lib/libcrypto/arch/alpha/opensslconf.h b/src/lib/libcrypto/arch/alpha/opensslconf.h
deleted file mode 100644
index 0ec9c25891..0000000000
--- a/src/lib/libcrypto/arch/alpha/opensslconf.h
+++ /dev/null
@@ -1,152 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#define RC4_CHUNK unsigned long
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#undef BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#define SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#undef THIRTY_TWO_BIT
74#endif
75
76#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
77#define CONFIG_HEADER_BF_LOCL_H
78#define BF_PTR
79#endif /* HEADER_BF_LOCL_H */
80
81#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
82#define CONFIG_HEADER_DES_LOCL_H
83#ifndef DES_DEFAULT_OPTIONS
84/* the following is tweaked from a config script, that is why it is a
85 * protected undef/define */
86#ifndef DES_PTR
87#define DES_PTR
88#endif
89
90/* This helps C compiler generate the correct code for multiple functional
91 * units. It reduces register dependencies at the expense of 2 more
92 * registers */
93#ifndef DES_RISC1
94#undef DES_RISC1
95#endif
96
97#ifndef DES_RISC2
98#define DES_RISC2
99#endif
100
101#if defined(DES_RISC1) && defined(DES_RISC2)
102YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
103#endif
104
105/* Unroll the inner loop, this sometimes helps, sometimes hinders.
106 * Very much CPU dependent */
107#ifndef DES_UNROLL
108#undef DES_UNROLL
109#endif
110
111/* These default values were supplied by
112 * Peter Gutman <pgut001@cs.auckland.ac.nz>
113 * They are only used if nothing else has been defined */
114#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
115/* Special defines which change the way the code is built depending on the
116 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
117 even newer MIPS CPU's, but at the moment one size fits all for
118 optimization options. Older Sparc's work better with only UNROLL, but
119 there's no way to tell at compile time what it is you're running on */
120
121#if defined( sun ) /* Newer Sparc's */
122# define DES_PTR
123# define DES_RISC1
124# define DES_UNROLL
125#elif defined( __ultrix ) /* Older MIPS */
126# define DES_PTR
127# define DES_RISC2
128# define DES_UNROLL
129#elif defined( __osf1__ ) /* Alpha */
130# define DES_PTR
131# define DES_RISC2
132#elif defined ( _AIX ) /* RS6000 */
133 /* Unknown */
134#elif defined( __hpux ) /* HP-PA */
135 /* Unknown */
136#elif defined( __aux ) /* 68K */
137 /* Unknown */
138#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
139# define DES_UNROLL
140#elif defined( __sgi ) /* Newer MIPS */
141# define DES_PTR
142# define DES_RISC2
143# define DES_UNROLL
144#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
145# define DES_PTR
146# define DES_RISC1
147# define DES_UNROLL
148#endif /* Systems-specific speed defines */
149#endif
150
151#endif /* DES_DEFAULT_OPTIONS */
152#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/amd64/Makefile.inc b/src/lib/libcrypto/arch/amd64/Makefile.inc
deleted file mode 100644
index b1a6563931..0000000000
--- a/src/lib/libcrypto/arch/amd64/Makefile.inc
+++ /dev/null
@@ -1,68 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.37 2025/02/14 12:01:58 jsing Exp $
2
3# amd64-specific libcrypto build rules
4
5# all amd64 code generators use this
6EXTRA_PL = ${LCRYPTO_SRC}/perlasm/x86_64-xlate.pl
7
8SRCS += crypto_cpu_caps.c
9
10# aes
11CFLAGS+= -DAES_ASM
12SSLASM+= aes aes-x86_64
13CFLAGS+= -DBSAES_ASM
14SSLASM+= aes bsaes-x86_64
15CFLAGS+= -DVPAES_ASM
16SSLASM+= aes vpaes-x86_64
17SSLASM+= aes aesni-x86_64
18# bn
19CFLAGS+= -DOPENSSL_IA32_SSE2
20CFLAGS+= -DRSA_ASM
21SSLASM+= bn modexp512-x86_64
22CFLAGS+= -DOPENSSL_BN_ASM_MONT
23SSLASM+= bn x86_64-mont
24CFLAGS+= -DOPENSSL_BN_ASM_MONT5
25SSLASM+= bn x86_64-mont5
26
27# bn s2n-bignum
28SRCS += bn_arch.c
29SRCS += bignum_add.S
30SRCS += bignum_cmadd.S
31SRCS += bignum_cmul.S
32SRCS += bignum_mul.S
33SRCS += bignum_mul_4_8_alt.S
34SRCS += bignum_mul_8_16_alt.S
35SRCS += bignum_sqr.S
36SRCS += bignum_sqr_4_8_alt.S
37SRCS += bignum_sqr_8_16_alt.S
38SRCS += bignum_sub.S
39SRCS += word_clz.S
40
41# md5
42CFLAGS+= -DMD5_ASM
43SRCS+= md5_amd64_generic.S
44# modes
45CFLAGS+= -DGHASH_ASM
46SSLASM+= modes ghash-x86_64
47# rc4
48SSLASM+= rc4 rc4-x86_64
49# ripemd
50# sha
51SRCS+= sha1_amd64.c
52SRCS+= sha1_amd64_generic.S
53SRCS+= sha1_amd64_shani.S
54SRCS+= sha256_amd64.c
55SRCS+= sha256_amd64_generic.S
56SRCS+= sha256_amd64_shani.S
57SRCS+= sha512_amd64.c
58SRCS+= sha512_amd64_generic.S
59
60.for dir f in ${SSLASM}
61SRCS+= ${f}.S
62GENERATED+=${f}.S
63${f}.S: ${LCRYPTO_SRC}/${dir}/asm/${f}.pl ${EXTRA_PL}
64 (cd ${LCRYPTO_SRC}/${dir} ; \
65 /usr/bin/perl ./asm/${f}.pl openbsd) > ${.TARGET}
66.endfor
67
68CFLAGS+=-fret-clean
diff --git a/src/lib/libcrypto/arch/amd64/crypto_arch.h b/src/lib/libcrypto/arch/amd64/crypto_arch.h
deleted file mode 100644
index 951374250d..0000000000
--- a/src/lib/libcrypto/arch/amd64/crypto_arch.h
+++ /dev/null
@@ -1,54 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.5 2025/02/14 12:01:58 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#include <stdint.h>
19
20#ifndef HEADER_CRYPTO_ARCH_H
21#define HEADER_CRYPTO_ARCH_H
22
23#define HAVE_CRYPTO_CPU_CAPS_INIT
24#define HAVE_CRYPTO_CPU_CAPS_IA32
25
26#ifndef __ASSEMBLER__
27extern uint64_t crypto_cpu_caps_amd64;
28#endif
29
30#define CRYPTO_CPU_CAPS_AMD64_SHA (1ULL << 0)
31
32#ifndef OPENSSL_NO_ASM
33
34#define HAVE_AES_CBC_ENCRYPT_INTERNAL
35#define HAVE_AES_SET_ENCRYPT_KEY_INTERNAL
36#define HAVE_AES_SET_DECRYPT_KEY_INTERNAL
37#define HAVE_AES_ENCRYPT_INTERNAL
38#define HAVE_AES_DECRYPT_INTERNAL
39
40#define HAVE_RC4_INTERNAL
41#define HAVE_RC4_SET_KEY_INTERNAL
42
43#define HAVE_SHA1_BLOCK_DATA_ORDER
44#define HAVE_SHA1_BLOCK_GENERIC
45
46#define HAVE_SHA256_BLOCK_DATA_ORDER
47#define HAVE_SHA256_BLOCK_GENERIC
48
49#define HAVE_SHA512_BLOCK_DATA_ORDER
50#define HAVE_SHA512_BLOCK_GENERIC
51
52#endif
53
54#endif
diff --git a/src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c b/src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c
deleted file mode 100644
index 63b7b64cda..0000000000
--- a/src/lib/libcrypto/arch/amd64/crypto_cpu_caps.c
+++ /dev/null
@@ -1,134 +0,0 @@
1/* $OpenBSD: crypto_cpu_caps.c,v 1.4 2024/11/16 13:05:35 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#include <stdio.h>
19
20#include <openssl/crypto.h>
21
22#include "crypto_arch.h"
23#include "x86_arch.h"
24
25/* Legacy architecture specific capabilities, used by perlasm. */
26uint64_t OPENSSL_ia32cap_P;
27
28/* Machine dependent CPU capabilities. */
29uint64_t crypto_cpu_caps_amd64;
30
31/* Machine independent CPU capabilities. */
32extern uint64_t crypto_cpu_caps;
33
34static inline void
35cpuid(uint32_t eax, uint32_t *out_eax, uint32_t *out_ebx, uint32_t *out_ecx,
36 uint32_t *out_edx)
37{
38 uint32_t ebx = 0, ecx = 0, edx = 0;
39
40#ifndef OPENSSL_NO_ASM
41 __asm__ ("cpuid": "+a"(eax), "+b"(ebx), "+c"(ecx), "+d"(edx));
42#else
43 eax = 0;
44#endif
45
46 if (out_eax != NULL)
47 *out_eax = eax;
48 if (out_ebx != NULL)
49 *out_ebx = ebx;
50 if (out_ecx != NULL)
51 *out_ecx = ecx;
52 if (out_edx != NULL)
53 *out_edx = edx;
54}
55
56static inline void
57xgetbv(uint32_t ecx, uint32_t *out_eax, uint32_t *out_edx)
58{
59 uint32_t eax = 0, edx = 0;
60
61#ifndef OPENSSL_NO_ASM
62 __asm__ ("xgetbv": "+a"(eax), "+c"(ecx), "+d"(edx));
63#endif
64
65 if (out_eax != NULL)
66 *out_eax = eax;
67 if (out_edx != NULL)
68 *out_edx = edx;
69}
70
71void
72crypto_cpu_caps_init(void)
73{
74 uint32_t eax, ebx, ecx, edx, max_cpuid;
75 uint64_t caps = 0;
76
77 cpuid(0, &eax, &ebx, &ecx, &edx);
78
79 max_cpuid = eax;
80
81 /* "GenuineIntel" in little endian. */
82 if (ebx == 0x756e6547 && edx == 0x49656e69 && ecx == 0x6c65746e)
83 caps |= CPUCAP_MASK_INTEL;
84
85 if (max_cpuid < 1)
86 return;
87
88 cpuid(1, &eax, NULL, &ecx, &edx);
89
90 if ((edx & IA32CAP_MASK0_FXSR) != 0)
91 caps |= CPUCAP_MASK_FXSR;
92 if ((edx & IA32CAP_MASK0_HT) != 0)
93 caps |= CPUCAP_MASK_HT;
94 if ((edx & IA32CAP_MASK0_MMX) != 0)
95 caps |= CPUCAP_MASK_MMX;
96 if ((edx & IA32CAP_MASK0_SSE) != 0)
97 caps |= CPUCAP_MASK_SSE;
98 if ((edx & IA32CAP_MASK0_SSE2) != 0)
99 caps |= CPUCAP_MASK_SSE2;
100
101 if ((ecx & IA32CAP_MASK1_AESNI) != 0)
102 caps |= CPUCAP_MASK_AESNI;
103 if ((ecx & IA32CAP_MASK1_PCLMUL) != 0)
104 caps |= CPUCAP_MASK_PCLMUL;
105 if ((ecx & IA32CAP_MASK1_SSSE3) != 0)
106 caps |= CPUCAP_MASK_SSSE3;
107
108 /* AVX requires OSXSAVE and XMM/YMM state to be enabled. */
109 if ((ecx & IA32CAP_MASK1_OSXSAVE) != 0) {
110 xgetbv(0, &eax, NULL);
111 if (((eax >> 1) & 3) == 3 && (ecx & IA32CAP_MASK1_AVX) != 0)
112 caps |= CPUCAP_MASK_AVX;
113 }
114
115 if (max_cpuid >= 7) {
116 cpuid(7, NULL, &ebx, NULL, NULL);
117
118 /* Intel SHA extensions feature bit - ebx[29]. */
119 if (((ebx >> 29) & 1) != 0)
120 crypto_cpu_caps_amd64 |= CRYPTO_CPU_CAPS_AMD64_SHA;
121 }
122
123 /* Set machine independent CPU capabilities. */
124 if ((caps & CPUCAP_MASK_AESNI) != 0)
125 crypto_cpu_caps |= CRYPTO_CPU_CAPS_ACCELERATED_AES;
126
127 OPENSSL_ia32cap_P = caps;
128}
129
130uint64_t
131crypto_cpu_caps_ia32(void)
132{
133 return OPENSSL_ia32cap_P;
134}
diff --git a/src/lib/libcrypto/arch/amd64/opensslconf.h b/src/lib/libcrypto/arch/amd64/opensslconf.h
deleted file mode 100644
index cc193762f1..0000000000
--- a/src/lib/libcrypto/arch/amd64/opensslconf.h
+++ /dev/null
@@ -1,149 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#define RC4_CHUNK unsigned long
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#undef BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68#define SIXTY_FOUR_BIT_LONG
69#undef SIXTY_FOUR_BIT
70#undef THIRTY_TWO_BIT
71#endif
72
73#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
74#define CONFIG_HEADER_BF_LOCL_H
75#undef BF_PTR
76#endif /* HEADER_BF_LOCL_H */
77
78#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
79#define CONFIG_HEADER_DES_LOCL_H
80#ifndef DES_DEFAULT_OPTIONS
81/* the following is tweaked from a config script, that is why it is a
82 * protected undef/define */
83#ifndef DES_PTR
84#undef DES_PTR
85#endif
86
87/* This helps C compiler generate the correct code for multiple functional
88 * units. It reduces register dependencies at the expense of 2 more
89 * registers */
90#ifndef DES_RISC1
91#undef DES_RISC1
92#endif
93
94#ifndef DES_RISC2
95#undef DES_RISC2
96#endif
97
98#if defined(DES_RISC1) && defined(DES_RISC2)
99YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
100#endif
101
102/* Unroll the inner loop, this sometimes helps, sometimes hinders.
103 * Very much CPU dependent */
104#ifndef DES_UNROLL
105#define DES_UNROLL
106#endif
107
108/* These default values were supplied by
109 * Peter Gutman <pgut001@cs.auckland.ac.nz>
110 * They are only used if nothing else has been defined */
111#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
112/* Special defines which change the way the code is built depending on the
113 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
114 even newer MIPS CPU's, but at the moment one size fits all for
115 optimization options. Older Sparc's work better with only UNROLL, but
116 there's no way to tell at compile time what it is you're running on */
117
118#if defined( sun ) /* Newer Sparc's */
119# define DES_PTR
120# define DES_RISC1
121# define DES_UNROLL
122#elif defined( __ultrix ) /* Older MIPS */
123# define DES_PTR
124# define DES_RISC2
125# define DES_UNROLL
126#elif defined( __osf1__ ) /* Alpha */
127# define DES_PTR
128# define DES_RISC2
129#elif defined ( _AIX ) /* RS6000 */
130 /* Unknown */
131#elif defined( __hpux ) /* HP-PA */
132 /* Unknown */
133#elif defined( __aux ) /* 68K */
134 /* Unknown */
135#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
136# define DES_UNROLL
137#elif defined( __sgi ) /* Newer MIPS */
138# define DES_PTR
139# define DES_RISC2
140# define DES_UNROLL
141#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
142# define DES_PTR
143# define DES_RISC1
144# define DES_UNROLL
145#endif /* Systems-specific speed defines */
146#endif
147
148#endif /* DES_DEFAULT_OPTIONS */
149#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/arm/Makefile.inc b/src/lib/libcrypto/arch/arm/Makefile.inc
deleted file mode 100644
index e078c51d98..0000000000
--- a/src/lib/libcrypto/arch/arm/Makefile.inc
+++ /dev/null
@@ -1,28 +0,0 @@
1# $oPenBSD: Makefile.inc,v 1.2 2014/05/02 18:21:39 miod Exp $
2
3# arm-specific libcrypto build rules
4
5# aes
6CFLAGS+= -DAES_ASM
7SSLASM+= aes aes-armv4
8# bn
9CFLAGS+= -DOPENSSL_BN_ASM_MONT
10SSLASM+= bn armv4-mont
11# modes
12CFLAGS+= -DGHASH_ASM
13SSLASM+= modes ghash-armv4
14# sha
15SSLASM+= sha sha1-armv4-large
16SSLASM+= sha sha256-armv4
17SSLASM+= sha sha512-armv4
18
19.for dir f in ${SSLASM}
20SRCS+= ${f}.S
21GENERATED+=${f}.S
22${f}.S: ${LCRYPTO_SRC}/${dir}/asm/${f}.pl
23 /usr/bin/perl \
24 ${LCRYPTO_SRC}/${dir}/asm/${f}.pl void ${.TARGET} > ${.TARGET}
25.endfor
26
27CFLAGS+= -DOPENSSL_CPUID_OBJ
28SRCS+= armv4cpuid.S armcap.c
diff --git a/src/lib/libcrypto/arch/arm/arm_arch.h b/src/lib/libcrypto/arch/arm/arm_arch.h
deleted file mode 100644
index 5ac3b935f1..0000000000
--- a/src/lib/libcrypto/arch/arm/arm_arch.h
+++ /dev/null
@@ -1,59 +0,0 @@
1/* $OpenBSD: arm_arch.h,v 1.1 2022/03/23 15:13:31 tb Exp $ */
2#ifndef __ARM_ARCH_H__
3#define __ARM_ARCH_H__
4
5#if !defined(__ARM_ARCH__)
6# if defined(__CC_ARM)
7# define __ARM_ARCH__ __TARGET_ARCH_ARM
8# if defined(__BIG_ENDIAN)
9# define __ARMEB__
10# else
11# define __ARMEL__
12# endif
13# elif defined(__GNUC__)
14 /*
15 * Why doesn't gcc define __ARM_ARCH__? Instead it defines
16 * bunch of below macros. See all_architectures[] table in
17 * gcc/config/arm/arm.c. On a side note it defines
18 * __ARMEL__/__ARMEB__ for little-/big-endian.
19 */
20# if defined(__ARM_ARCH)
21# define __ARM_ARCH__ __ARM_ARCH
22# elif defined(__ARM_ARCH_8A__)
23# define __ARM_ARCH__ 8
24# elif defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
25 defined(__ARM_ARCH_7R__)|| defined(__ARM_ARCH_7M__) || \
26 defined(__ARM_ARCH_7EM__)
27# define __ARM_ARCH__ 7
28# elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
29 defined(__ARM_ARCH_6K__)|| defined(__ARM_ARCH_6M__) || \
30 defined(__ARM_ARCH_6Z__)|| defined(__ARM_ARCH_6ZK__) || \
31 defined(__ARM_ARCH_6T2__)
32# define __ARM_ARCH__ 6
33# elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \
34 defined(__ARM_ARCH_5E__)|| defined(__ARM_ARCH_5TE__) || \
35 defined(__ARM_ARCH_5TEJ__)
36# define __ARM_ARCH__ 5
37# elif defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__)
38# define __ARM_ARCH__ 4
39# else
40# error "unsupported ARM architecture"
41# endif
42# endif
43#endif
44
45#if !defined(__ASSEMBLER__)
46extern unsigned int OPENSSL_armcap_P;
47
48#define ARMV7_NEON (1<<0)
49#define ARMV8_AES (1<<1)
50#define ARMV8_SHA1 (1<<2)
51#define ARMV8_SHA256 (1<<3)
52#define ARMV8_PMULL (1<<4)
53#endif
54
55#if defined(__OpenBSD__)
56#define __STRICT_ALIGNMENT
57#endif
58
59#endif
diff --git a/src/lib/libcrypto/arch/arm/armcap.c b/src/lib/libcrypto/arch/arm/armcap.c
deleted file mode 100644
index 0238195397..0000000000
--- a/src/lib/libcrypto/arch/arm/armcap.c
+++ /dev/null
@@ -1,88 +0,0 @@
1/* $OpenBSD: armcap.c,v 1.3 2024/08/29 03:30:05 deraadt Exp $ */
2#include <stdio.h>
3#include <stdlib.h>
4#include <string.h>
5#include <setjmp.h>
6#include <signal.h>
7#include <openssl/crypto.h>
8
9#include "arm_arch.h"
10
11unsigned int OPENSSL_armcap_P;
12
13#if __ARM_ARCH__ >= 7
14static sigset_t all_masked;
15
16static sigjmp_buf ill_jmp;
17
18static void
19ill_handler(int sig)
20{
21 siglongjmp(ill_jmp, sig);
22}
23
24/*
25 * Following subroutines could have been inlined, but it's not all
26 * ARM compilers support inline assembler...
27 */
28void _armv7_neon_probe(void);
29void _armv8_aes_probe(void);
30void _armv8_sha1_probe(void);
31void _armv8_sha256_probe(void);
32void _armv8_pmull_probe(void);
33#endif
34
35void
36OPENSSL_cpuid_setup(void)
37{
38#if __ARM_ARCH__ >= 7
39 struct sigaction ill_oact, ill_act;
40 sigset_t oset;
41#endif
42 static int trigger = 0;
43
44 if (trigger)
45 return;
46 trigger = 1;
47
48 OPENSSL_armcap_P = 0;
49
50#if __ARM_ARCH__ >= 7
51 sigfillset(&all_masked);
52 sigdelset(&all_masked, SIGILL);
53 sigdelset(&all_masked, SIGTRAP);
54 sigdelset(&all_masked, SIGFPE);
55 sigdelset(&all_masked, SIGBUS);
56 sigdelset(&all_masked, SIGSEGV);
57
58 memset(&ill_act, 0, sizeof(ill_act));
59 ill_act.sa_handler = ill_handler;
60 ill_act.sa_mask = all_masked;
61
62 sigprocmask(SIG_SETMASK, &ill_act.sa_mask, &oset);
63 sigaction(SIGILL, &ill_act, &ill_oact);
64
65 if (sigsetjmp(ill_jmp, 1) == 0) {
66 _armv7_neon_probe();
67 OPENSSL_armcap_P |= ARMV7_NEON;
68 if (sigsetjmp(ill_jmp, 1) == 0) {
69 _armv8_pmull_probe();
70 OPENSSL_armcap_P |= ARMV8_PMULL | ARMV8_AES;
71 } else if (sigsetjmp(ill_jmp, 1) == 0) {
72 _armv8_aes_probe();
73 OPENSSL_armcap_P |= ARMV8_AES;
74 }
75 if (sigsetjmp(ill_jmp, 1) == 0) {
76 _armv8_sha1_probe();
77 OPENSSL_armcap_P |= ARMV8_SHA1;
78 }
79 if (sigsetjmp(ill_jmp, 1) == 0) {
80 _armv8_sha256_probe();
81 OPENSSL_armcap_P |= ARMV8_SHA256;
82 }
83 }
84
85 sigaction (SIGILL, &ill_oact, NULL);
86 sigprocmask(SIG_SETMASK, &oset, NULL);
87#endif
88}
diff --git a/src/lib/libcrypto/arch/arm/armv4cpuid.S b/src/lib/libcrypto/arch/arm/armv4cpuid.S
deleted file mode 100644
index db0b54e496..0000000000
--- a/src/lib/libcrypto/arch/arm/armv4cpuid.S
+++ /dev/null
@@ -1,69 +0,0 @@
1#include "arm_arch.h"
2
3.text
4#if defined(__thumb2__) && !defined(__APPLE__)
5.syntax unified
6.thumb
7#else
8.code 32
9#undef __thumb2__
10#endif
11
12#if __ARM_ARCH__>=7
13.arch armv7-a
14.fpu neon
15
16.align 5
17.globl _armv7_neon_probe
18.type _armv7_neon_probe,%function
19_armv7_neon_probe:
20 vorr q0,q0,q0
21 bx lr
22.size _armv7_neon_probe,.-_armv7_neon_probe
23
24.globl _armv8_aes_probe
25.type _armv8_aes_probe,%function
26_armv8_aes_probe:
27#if defined(__thumb2__) && !defined(__APPLE__)
28.byte 0xb0,0xff,0x00,0x03 @ aese.8 q0,q0
29#else
30.byte 0x00,0x03,0xb0,0xf3 @ aese.8 q0,q0
31#endif
32 bx lr
33.size _armv8_aes_probe,.-_armv8_aes_probe
34
35.globl _armv8_sha1_probe
36.type _armv8_sha1_probe,%function
37_armv8_sha1_probe:
38#if defined(__thumb2__) && !defined(__APPLE__)
39.byte 0x00,0xef,0x40,0x0c @ sha1c.32 q0,q0,q0
40#else
41.byte 0x40,0x0c,0x00,0xf2 @ sha1c.32 q0,q0,q0
42#endif
43 bx lr
44.size _armv8_sha1_probe,.-_armv8_sha1_probe
45
46.globl _armv8_sha256_probe
47.type _armv8_sha256_probe,%function
48_armv8_sha256_probe:
49#if defined(__thumb2__) && !defined(__APPLE__)
50.byte 0x00,0xff,0x40,0x0c @ sha256h.32 q0,q0,q0
51#else
52.byte 0x40,0x0c,0x00,0xf3 @ sha256h.32 q0,q0,q0
53#endif
54 bx lr
55.size _armv8_sha256_probe,.-_armv8_sha256_probe
56.globl _armv8_pmull_probe
57.type _armv8_pmull_probe,%function
58_armv8_pmull_probe:
59#if defined(__thumb2__) && !defined(__APPLE__)
60.byte 0xa0,0xef,0x00,0x0e @ vmull.p64 q0,d0,d0
61#else
62.byte 0x00,0x0e,0xa0,0xf2 @ vmull.p64 q0,d0,d0
63#endif
64 bx lr
65.size _armv8_pmull_probe,.-_armv8_pmull_probe
66#endif
67
68.comm OPENSSL_armcap_P,4,4
69.hidden OPENSSL_armcap_P
diff --git a/src/lib/libcrypto/arch/arm/crypto_arch.h b/src/lib/libcrypto/arch/arm/crypto_arch.h
deleted file mode 100644
index 07d7829fe3..0000000000
--- a/src/lib/libcrypto/arch/arm/crypto_arch.h
+++ /dev/null
@@ -1,39 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.2 2025/02/14 12:01:58 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#define HAVE_SHA1_BLOCK_DATA_ORDER
29#define HAVE_SHA1_BLOCK_GENERIC
30
31#define HAVE_SHA256_BLOCK_DATA_ORDER
32#define HAVE_SHA256_BLOCK_GENERIC
33
34#define HAVE_SHA512_BLOCK_DATA_ORDER
35#define HAVE_SHA512_BLOCK_GENERIC
36
37#endif
38
39#endif
diff --git a/src/lib/libcrypto/arch/arm/opensslconf.h b/src/lib/libcrypto/arch/arm/opensslconf.h
deleted file mode 100644
index a5d26b6fdc..0000000000
--- a/src/lib/libcrypto/arch/arm/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#undef RC4_CHUNK
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#define BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#undef SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#define THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/hppa/Makefile.inc b/src/lib/libcrypto/arch/hppa/Makefile.inc
deleted file mode 100644
index 11bfa4a5d3..0000000000
--- a/src/lib/libcrypto/arch/hppa/Makefile.inc
+++ /dev/null
@@ -1,24 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.26 2025/02/14 12:01:58 jsing Exp $
2
3# hppa-specific libcrypto build rules
4
5# aes
6CFLAGS+= -DAES_ASM
7SSLASM+= aes aes-parisc aes-parisc
8# bn
9SSLASM+= bn parisc-mont parisc-mont
10CFLAGS+= -DOPENSSL_BN_ASM_MONT -DBN_DIV2W
11# modes
12CFLAGS+= -DGHASH_ASM
13SSLASM+= modes ghash-parisc ghash-parisc
14# sha
15SSLASM+= sha sha1-parisc sha1-parisc
16SSLASM+= sha sha512-parisc sha256-parisc
17
18.for dir src dst in ${SSLASM}
19SRCS+= ${dst}.S
20GENERATED+=${dst}.S
21${dst}.S: ${LCRYPTO_SRC}/${dir}/asm/${src}.pl
22 /usr/bin/perl \
23 ${LCRYPTO_SRC}/${dir}/asm/${src}.pl 32 ${.TARGET} > ${.TARGET}
24.endfor
diff --git a/src/lib/libcrypto/arch/hppa/crypto_arch.h b/src/lib/libcrypto/arch/hppa/crypto_arch.h
deleted file mode 100644
index 08fcaca045..0000000000
--- a/src/lib/libcrypto/arch/hppa/crypto_arch.h
+++ /dev/null
@@ -1,34 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.2 2025/02/14 12:01:58 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#define HAVE_SHA1_BLOCK_DATA_ORDER
27#define HAVE_SHA1_BLOCK_GENERIC
28
29#define HAVE_SHA256_BLOCK_DATA_ORDER
30#define HAVE_SHA256_BLOCK_GENERIC
31
32#endif
33
34#endif
diff --git a/src/lib/libcrypto/arch/hppa/opensslconf.h b/src/lib/libcrypto/arch/hppa/opensslconf.h
deleted file mode 100644
index a5d26b6fdc..0000000000
--- a/src/lib/libcrypto/arch/hppa/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#undef RC4_CHUNK
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#define BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#undef SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#define THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/i386/Makefile.inc b/src/lib/libcrypto/arch/i386/Makefile.inc
deleted file mode 100644
index 6989b35686..0000000000
--- a/src/lib/libcrypto/arch/i386/Makefile.inc
+++ /dev/null
@@ -1,42 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.27 2025/02/14 12:01:58 jsing Exp $
2
3# i386-specific libcrypto build rules
4
5# all i386 code generators use these
6EXTRA_PL = ${LCRYPTO_SRC}/perlasm/x86gas.pl ${LCRYPTO_SRC}/perlasm/x86asm.pl
7
8SRCS += crypto_cpu_caps.c
9
10# aes
11CFLAGS+= -DAES_ASM
12SSLASM+= aes aes-586
13CFLAGS+= -DVPAES_ASM
14SSLASM+= aes vpaes-x86
15SSLASM+= aes aesni-x86
16# bn
17CFLAGS+= -DOPENSSL_IA32_SSE2
18SSLASM+= bn bn-586
19SSLASM+= bn co-586
20CFLAGS+= -DOPENSSL_BN_ASM_MONT
21SSLASM+= bn x86-mont
22# md5
23CFLAGS+= -DMD5_ASM
24SSLASM+= md5 md5-586
25# modes
26CFLAGS+= -DGHASH_ASM
27SSLASM+= modes ghash-x86
28# rc4
29SSLASM+= rc4 rc4-586
30# sha
31SSLASM+= sha sha1-586
32SSLASM+= sha sha256-586
33SSLASM+= sha sha512-586
34
35.for dir f in ${SSLASM}
36SRCS+= ${f}.S
37GENERATED+=${f}.S
38${f}.S: ${LCRYPTO_SRC}/${dir}/asm/${f}.pl ${EXTRA_PL}
39 /usr/bin/perl -I${LCRYPTO_SRC}/perlasm -I${LCRYPTO_SRC}/${dir}/asm \
40 ${LCRYPTO_SRC}/${dir}/asm/${f}.pl \
41 openbsd-elf ${CFLAGS} 386 ${PICFLAG} > ${.TARGET}
42.endfor
diff --git a/src/lib/libcrypto/arch/i386/crypto_arch.h b/src/lib/libcrypto/arch/i386/crypto_arch.h
deleted file mode 100644
index 3df3963d0b..0000000000
--- a/src/lib/libcrypto/arch/i386/crypto_arch.h
+++ /dev/null
@@ -1,46 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.4 2025/02/14 12:01:58 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#define HAVE_CRYPTO_CPU_CAPS_INIT
22#define HAVE_CRYPTO_CPU_CAPS_IA32
23
24#ifndef OPENSSL_NO_ASM
25
26#define HAVE_AES_CBC_ENCRYPT_INTERNAL
27#define HAVE_AES_SET_ENCRYPT_KEY_INTERNAL
28#define HAVE_AES_SET_DECRYPT_KEY_INTERNAL
29#define HAVE_AES_ENCRYPT_INTERNAL
30#define HAVE_AES_DECRYPT_INTERNAL
31
32#define HAVE_RC4_INTERNAL
33#define HAVE_RC4_SET_KEY_INTERNAL
34
35#define HAVE_SHA1_BLOCK_DATA_ORDER
36#define HAVE_SHA1_BLOCK_GENERIC
37
38#define HAVE_SHA256_BLOCK_DATA_ORDER
39#define HAVE_SHA256_BLOCK_GENERIC
40
41#define HAVE_SHA512_BLOCK_DATA_ORDER
42#define HAVE_SHA512_BLOCK_GENERIC
43
44#endif
45
46#endif
diff --git a/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c b/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c
deleted file mode 100644
index 6bb77411af..0000000000
--- a/src/lib/libcrypto/arch/i386/crypto_cpu_caps.c
+++ /dev/null
@@ -1,120 +0,0 @@
1/* $OpenBSD: crypto_cpu_caps.c,v 1.3 2024/11/12 13:14:57 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#include <stdio.h>
19
20#include <openssl/crypto.h>
21
22#include "x86_arch.h"
23
24/* Legacy architecture specific capabilities, used by perlasm. */
25uint64_t OPENSSL_ia32cap_P;
26
27/* Machine independent CPU capabilities. */
28extern uint64_t crypto_cpu_caps;
29
30static inline void
31cpuid(uint32_t eax, uint32_t *out_eax, uint32_t *out_ebx, uint32_t *out_ecx,
32 uint32_t *out_edx)
33{
34 uint32_t ebx = 0, ecx = 0, edx = 0;
35
36#ifndef OPENSSL_NO_ASM
37 __asm__ ("cpuid": "+a"(eax), "+b"(ebx), "+c"(ecx), "+d"(edx));
38#else
39 eax = 0;
40#endif
41
42 if (out_eax != NULL)
43 *out_eax = eax;
44 if (out_ebx != NULL)
45 *out_ebx = ebx;
46 if (out_ecx != NULL)
47 *out_ecx = ecx;
48 if (out_edx != NULL)
49 *out_edx = edx;
50}
51
52static inline void
53xgetbv(uint32_t ecx, uint32_t *out_eax, uint32_t *out_edx)
54{
55 uint32_t eax = 0, edx = 0;
56
57#ifndef OPENSSL_NO_ASM
58 __asm__ ("xgetbv": "+a"(eax), "+c"(ecx), "+d"(edx));
59#endif
60
61 if (out_eax != NULL)
62 *out_eax = eax;
63 if (out_edx != NULL)
64 *out_edx = edx;
65}
66
67void
68crypto_cpu_caps_init(void)
69{
70 uint32_t eax, ebx, ecx, edx;
71 uint64_t caps = 0;
72
73 cpuid(0, &eax, &ebx, &ecx, &edx);
74
75 /* "GenuineIntel" in little endian. */
76 if (ebx == 0x756e6547 && edx == 0x49656e69 && ecx == 0x6c65746e)
77 caps |= CPUCAP_MASK_INTEL;
78
79 if (eax < 1)
80 return;
81
82 cpuid(1, &eax, &ebx, &ecx, &edx);
83
84 if ((edx & IA32CAP_MASK0_FXSR) != 0)
85 caps |= CPUCAP_MASK_FXSR;
86 if ((edx & IA32CAP_MASK0_HT) != 0)
87 caps |= CPUCAP_MASK_HT;
88 if ((edx & IA32CAP_MASK0_MMX) != 0)
89 caps |= CPUCAP_MASK_MMX;
90 if ((edx & IA32CAP_MASK0_SSE) != 0)
91 caps |= CPUCAP_MASK_SSE;
92 if ((edx & IA32CAP_MASK0_SSE2) != 0)
93 caps |= CPUCAP_MASK_SSE2;
94
95 if ((ecx & IA32CAP_MASK1_AESNI) != 0)
96 caps |= CPUCAP_MASK_AESNI;
97 if ((ecx & IA32CAP_MASK1_PCLMUL) != 0)
98 caps |= CPUCAP_MASK_PCLMUL;
99 if ((ecx & IA32CAP_MASK1_SSSE3) != 0)
100 caps |= CPUCAP_MASK_SSSE3;
101
102 /* AVX requires OSXSAVE and XMM/YMM state to be enabled. */
103 if ((ecx & IA32CAP_MASK1_OSXSAVE) != 0) {
104 xgetbv(0, &eax, NULL);
105 if (((eax >> 1) & 3) == 3 && (ecx & IA32CAP_MASK1_AVX) != 0)
106 caps |= CPUCAP_MASK_AVX;
107 }
108
109 /* Set machine independent CPU capabilities. */
110 if ((caps & CPUCAP_MASK_AESNI) != 0)
111 crypto_cpu_caps |= CRYPTO_CPU_CAPS_ACCELERATED_AES;
112
113 OPENSSL_ia32cap_P = caps;
114}
115
116uint64_t
117crypto_cpu_caps_ia32(void)
118{
119 return OPENSSL_ia32cap_P;
120}
diff --git a/src/lib/libcrypto/arch/i386/opensslconf.h b/src/lib/libcrypto/arch/i386/opensslconf.h
deleted file mode 100644
index 03cf31b940..0000000000
--- a/src/lib/libcrypto/arch/i386/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#undef RC4_CHUNK
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned long
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#define BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#undef SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#define THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#define DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#define DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/m88k/crypto_arch.h b/src/lib/libcrypto/arch/m88k/crypto_arch.h
deleted file mode 100644
index a3dd98d0ce..0000000000
--- a/src/lib/libcrypto/arch/m88k/crypto_arch.h
+++ /dev/null
@@ -1,21 +0,0 @@
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/m88k/opensslconf.h b/src/lib/libcrypto/arch/m88k/opensslconf.h
deleted file mode 100644
index a5d26b6fdc..0000000000
--- a/src/lib/libcrypto/arch/m88k/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#undef RC4_CHUNK
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#define BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#undef SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#define THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/mips64/Makefile.inc b/src/lib/libcrypto/arch/mips64/Makefile.inc
deleted file mode 100644
index 64e806289d..0000000000
--- a/src/lib/libcrypto/arch/mips64/Makefile.inc
+++ /dev/null
@@ -1,23 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.19 2025/02/14 12:01:58 jsing Exp $
2
3# mips64-specific libcrypto build rules
4
5# aes
6CFLAGS+= -DAES_ASM
7SSLASM+= aes aes-mips aes-mips
8# bn
9SSLASM+= bn mips bn-mips
10SSLASM+= bn mips-mont mips-mont
11CFLAGS+= -DOPENSSL_BN_ASM_MONT
12# sha
13SSLASM+= sha sha1-mips sha1-mips
14SSLASM+= sha sha512-mips sha256-mips
15SSLASM+= sha sha512-mips sha512-mips
16
17.for dir src dst in ${SSLASM}
18SRCS+= ${dst}.S
19GENERATED+=${dst}.S
20${dst}.S: ${LCRYPTO_SRC}/${dir}/asm/${src}.pl
21 /usr/bin/env CC=${CC} /usr/bin/perl \
22 ${LCRYPTO_SRC}/${dir}/asm/${src}.pl 64 ${.TARGET} > ${.TARGET}
23.endfor
diff --git a/src/lib/libcrypto/arch/mips64/crypto_arch.h b/src/lib/libcrypto/arch/mips64/crypto_arch.h
deleted file mode 100644
index 07d7829fe3..0000000000
--- a/src/lib/libcrypto/arch/mips64/crypto_arch.h
+++ /dev/null
@@ -1,39 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.2 2025/02/14 12:01:58 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#define HAVE_SHA1_BLOCK_DATA_ORDER
29#define HAVE_SHA1_BLOCK_GENERIC
30
31#define HAVE_SHA256_BLOCK_DATA_ORDER
32#define HAVE_SHA256_BLOCK_GENERIC
33
34#define HAVE_SHA512_BLOCK_DATA_ORDER
35#define HAVE_SHA512_BLOCK_GENERIC
36
37#endif
38
39#endif
diff --git a/src/lib/libcrypto/arch/mips64/opensslconf.h b/src/lib/libcrypto/arch/mips64/opensslconf.h
deleted file mode 100644
index 36cdd2840b..0000000000
--- a/src/lib/libcrypto/arch/mips64/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#define RC4_CHUNK unsigned long
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#undef BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#define SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#undef THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#define BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#define DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#define DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#undef DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/powerpc/Makefile.inc b/src/lib/libcrypto/arch/powerpc/Makefile.inc
deleted file mode 100644
index c5218e53f4..0000000000
--- a/src/lib/libcrypto/arch/powerpc/Makefile.inc
+++ /dev/null
@@ -1,22 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.14 2025/02/14 12:01:58 jsing Exp $
2
3# powerpc-specific libcrypto build rules
4
5# slower than C code
6#CFLAGS+= -DAES_ASM
7#SSLASM+= aes aes-ppc aes-ppc
8# bn
9SSLASM+= bn ppc bn-ppc
10SSLASM+= bn ppc-mont ppc-mont
11CFLAGS+= -DOPENSSL_BN_ASM_MONT
12# sha
13SSLASM+= sha sha1-ppc sha1-ppc
14SSLASM+= sha sha512-ppc sha256-ppc
15
16.for dir src dst in ${SSLASM}
17SRCS+= ${dst}.S
18GENERATED+=${dst}.S
19${dst}.S: ${LCRYPTO_SRC}/${dir}/asm/${src}.pl
20 /usr/bin/perl \
21 ${LCRYPTO_SRC}/${dir}/asm/${src}.pl linux32 ${.TARGET} > ${.TARGET}
22.endfor
diff --git a/src/lib/libcrypto/arch/powerpc/crypto_arch.h b/src/lib/libcrypto/arch/powerpc/crypto_arch.h
deleted file mode 100644
index d2730af0fb..0000000000
--- a/src/lib/libcrypto/arch/powerpc/crypto_arch.h
+++ /dev/null
@@ -1,31 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.2 2025/02/14 12:01:58 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_SHA1_BLOCK_DATA_ORDER
24#define HAVE_SHA1_BLOCK_GENERIC
25
26#define HAVE_SHA256_BLOCK_DATA_ORDER
27#define HAVE_SHA256_BLOCK_GENERIC
28
29#endif
30
31#endif
diff --git a/src/lib/libcrypto/arch/powerpc/opensslconf.h b/src/lib/libcrypto/arch/powerpc/opensslconf.h
deleted file mode 100644
index a5d26b6fdc..0000000000
--- a/src/lib/libcrypto/arch/powerpc/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#undef RC4_CHUNK
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#define BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#undef SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#define THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/powerpc64/Makefile.inc b/src/lib/libcrypto/arch/powerpc64/Makefile.inc
deleted file mode 100644
index c309ab8b40..0000000000
--- a/src/lib/libcrypto/arch/powerpc64/Makefile.inc
+++ /dev/null
@@ -1,22 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.16 2025/02/14 12:01:58 jsing Exp $
2
3# powerpc-specific libcrypto build rules
4
5# slower than C code
6#CFLAGS+= -DAES_ASM
7#SSLASM+= aes aes-ppc aes-ppc
8# bn
9#SSLASM+= bn ppc bn-ppc
10#SSLASM+= bn ppc-mont ppc-mont
11#CFLAGS+= -DOPENSSL_BN_ASM_MONT
12# sha
13#SSLASM+= sha sha1-ppc sha1-ppc
14#SSLASM+= sha sha512-ppc sha256-ppc
15
16.for dir src dst in ${SSLASM}
17SRCS+= ${dst}.S
18GENERATED+=${dst}.S
19${dst}.S: ${LCRYPTO_SRC}/${dir}/asm/${src}.pl
20 /usr/bin/perl \
21 ${LCRYPTO_SRC}/${dir}/asm/${src}.pl linux32 ${.TARGET} > ${.TARGET}
22.endfor
diff --git a/src/lib/libcrypto/arch/powerpc64/crypto_arch.h b/src/lib/libcrypto/arch/powerpc64/crypto_arch.h
deleted file mode 100644
index a3dd98d0ce..0000000000
--- a/src/lib/libcrypto/arch/powerpc64/crypto_arch.h
+++ /dev/null
@@ -1,21 +0,0 @@
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/opensslconf.h b/src/lib/libcrypto/arch/powerpc64/opensslconf.h
deleted file mode 100644
index cc193762f1..0000000000
--- a/src/lib/libcrypto/arch/powerpc64/opensslconf.h
+++ /dev/null
@@ -1,149 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#define RC4_CHUNK unsigned long
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#undef BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68#define SIXTY_FOUR_BIT_LONG
69#undef SIXTY_FOUR_BIT
70#undef THIRTY_TWO_BIT
71#endif
72
73#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
74#define CONFIG_HEADER_BF_LOCL_H
75#undef BF_PTR
76#endif /* HEADER_BF_LOCL_H */
77
78#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
79#define CONFIG_HEADER_DES_LOCL_H
80#ifndef DES_DEFAULT_OPTIONS
81/* the following is tweaked from a config script, that is why it is a
82 * protected undef/define */
83#ifndef DES_PTR
84#undef DES_PTR
85#endif
86
87/* This helps C compiler generate the correct code for multiple functional
88 * units. It reduces register dependencies at the expense of 2 more
89 * registers */
90#ifndef DES_RISC1
91#undef DES_RISC1
92#endif
93
94#ifndef DES_RISC2
95#undef DES_RISC2
96#endif
97
98#if defined(DES_RISC1) && defined(DES_RISC2)
99YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
100#endif
101
102/* Unroll the inner loop, this sometimes helps, sometimes hinders.
103 * Very much CPU dependent */
104#ifndef DES_UNROLL
105#define DES_UNROLL
106#endif
107
108/* These default values were supplied by
109 * Peter Gutman <pgut001@cs.auckland.ac.nz>
110 * They are only used if nothing else has been defined */
111#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
112/* Special defines which change the way the code is built depending on the
113 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
114 even newer MIPS CPU's, but at the moment one size fits all for
115 optimization options. Older Sparc's work better with only UNROLL, but
116 there's no way to tell at compile time what it is you're running on */
117
118#if defined( sun ) /* Newer Sparc's */
119# define DES_PTR
120# define DES_RISC1
121# define DES_UNROLL
122#elif defined( __ultrix ) /* Older MIPS */
123# define DES_PTR
124# define DES_RISC2
125# define DES_UNROLL
126#elif defined( __osf1__ ) /* Alpha */
127# define DES_PTR
128# define DES_RISC2
129#elif defined ( _AIX ) /* RS6000 */
130 /* Unknown */
131#elif defined( __hpux ) /* HP-PA */
132 /* Unknown */
133#elif defined( __aux ) /* 68K */
134 /* Unknown */
135#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
136# define DES_UNROLL
137#elif defined( __sgi ) /* Newer MIPS */
138# define DES_PTR
139# define DES_RISC2
140# define DES_UNROLL
141#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
142# define DES_PTR
143# define DES_RISC1
144# define DES_UNROLL
145#endif /* Systems-specific speed defines */
146#endif
147
148#endif /* DES_DEFAULT_OPTIONS */
149#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/riscv64/Makefile.inc b/src/lib/libcrypto/arch/riscv64/Makefile.inc
deleted file mode 100644
index 94cc03ed70..0000000000
--- a/src/lib/libcrypto/arch/riscv64/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.10 2024/03/29 07:24:09 jsing Exp $
2
3# riscv64 libcrypto build rules
diff --git a/src/lib/libcrypto/arch/riscv64/crypto_arch.h b/src/lib/libcrypto/arch/riscv64/crypto_arch.h
deleted file mode 100644
index a3dd98d0ce..0000000000
--- a/src/lib/libcrypto/arch/riscv64/crypto_arch.h
+++ /dev/null
@@ -1,21 +0,0 @@
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/opensslconf.h b/src/lib/libcrypto/arch/riscv64/opensslconf.h
deleted file mode 100644
index 731b06aecc..0000000000
--- a/src/lib/libcrypto/arch/riscv64/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#define RC4_CHUNK unsigned long
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#undef BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#define SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#undef THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/sh/crypto_arch.h b/src/lib/libcrypto/arch/sh/crypto_arch.h
deleted file mode 100644
index a3dd98d0ce..0000000000
--- a/src/lib/libcrypto/arch/sh/crypto_arch.h
+++ /dev/null
@@ -1,21 +0,0 @@
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/opensslconf.h b/src/lib/libcrypto/arch/sh/opensslconf.h
deleted file mode 100644
index a5d26b6fdc..0000000000
--- a/src/lib/libcrypto/arch/sh/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#undef RC4_CHUNK
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#define BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#undef SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#define THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/src/lib/libcrypto/arch/sparc64/Makefile.inc b/src/lib/libcrypto/arch/sparc64/Makefile.inc
deleted file mode 100644
index cbf63e033e..0000000000
--- a/src/lib/libcrypto/arch/sparc64/Makefile.inc
+++ /dev/null
@@ -1,23 +0,0 @@
1# $OpenBSD: Makefile.inc,v 1.21 2025/02/14 12:01:58 jsing Exp $
2
3# sparc64-specific libcrypto build rules
4
5# aes
6CFLAGS+= -DAES_ASM
7SSLASM+= aes aes-sparcv9 aes-sparcv9
8# bn
9# modes
10CFLAGS+= -DGHASH_ASM
11SSLASM+= modes ghash-sparcv9 ghash-sparcv9
12# sha
13SSLASM+= sha sha1-sparcv9 sha1-sparcv9
14SSLASM+= sha sha512-sparcv9 sha256-sparcv9
15SSLASM+= sha sha512-sparcv9 sha512-sparcv9
16
17.for dir src dst in ${SSLASM}
18SRCS+= ${dst}.S
19GENERATED+=${dst}.S
20${dst}.S: ${LCRYPTO_SRC}/${dir}/asm/${src}.pl
21 /usr/bin/env CC=${CC} /usr/bin/perl \
22 ${LCRYPTO_SRC}/${dir}/asm/${src}.pl ${.TARGET} -m64 > ${.TARGET}
23.endfor
diff --git a/src/lib/libcrypto/arch/sparc64/crypto_arch.h b/src/lib/libcrypto/arch/sparc64/crypto_arch.h
deleted file mode 100644
index 251957a5bc..0000000000
--- a/src/lib/libcrypto/arch/sparc64/crypto_arch.h
+++ /dev/null
@@ -1,37 +0,0 @@
1/* $OpenBSD: crypto_arch.h,v 1.2 2025/02/14 12:01:58 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#define HAVE_SHA1_BLOCK_DATA_ORDER
27#define HAVE_SHA1_BLOCK_GENERIC
28
29#define HAVE_SHA256_BLOCK_DATA_ORDER
30#define HAVE_SHA256_BLOCK_GENERIC
31
32#define HAVE_SHA512_BLOCK_DATA_ORDER
33#define HAVE_SHA512_BLOCK_GENERIC
34
35#endif
36
37#endif
diff --git a/src/lib/libcrypto/arch/sparc64/opensslconf.h b/src/lib/libcrypto/arch/sparc64/opensslconf.h
deleted file mode 100644
index 36cdd2840b..0000000000
--- a/src/lib/libcrypto/arch/sparc64/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTO_LOCAL_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
9
10#ifndef OPENSSL_FILE
11#ifdef OPENSSL_NO_FILENAMES
12#define OPENSSL_FILE ""
13#define OPENSSL_LINE 0
14#else
15#define OPENSSL_FILE __FILE__
16#define OPENSSL_LINE __LINE__
17#endif
18#endif
19
20#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
21#define IDEA_INT unsigned int
22#endif
23
24#if defined(HEADER_MD2_H) && !defined(MD2_INT)
25#define MD2_INT unsigned int
26#endif
27
28#if defined(HEADER_RC2_H) && !defined(RC2_INT)
29/* I need to put in a mod for the alpha - eay */
30#define RC2_INT unsigned int
31#endif
32
33#if defined(HEADER_RC4_H)
34#if !defined(RC4_INT)
35/* using int types make the structure larger but make the code faster
36 * on most boxes I have tested - up to %20 faster. */
37/*
38 * I don't know what does "most" mean, but declaring "int" is a must on:
39 * - Intel P6 because partial register stalls are very expensive;
40 * - elder Alpha because it lacks byte load/store instructions;
41 */
42#define RC4_INT unsigned int
43#endif
44#if !defined(RC4_CHUNK)
45/*
46 * This enables code handling data aligned at natural CPU word
47 * boundary. See crypto/rc4/rc4_enc.c for further details.
48 */
49#define RC4_CHUNK unsigned long
50#endif
51#endif
52
53#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
54/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
55 * %20 speed up (longs are 8 bytes, int's are 4). */
56#ifndef DES_LONG
57#define DES_LONG unsigned int
58#endif
59#endif
60
61#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
62#define CONFIG_HEADER_BN_H
63#undef BN_LLONG
64
65/* Should we define BN_DIV2W here? */
66
67/* Only one for the following should be defined */
68/* The prime number generation stuff may not work when
69 * EIGHT_BIT but I don't care since I've only used this mode
70 * for debugging the bignum libraries */
71#define SIXTY_FOUR_BIT_LONG
72#undef SIXTY_FOUR_BIT
73#undef THIRTY_TWO_BIT
74#undef SIXTEEN_BIT
75#undef EIGHT_BIT
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#define BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#define DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#define DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#undef DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */