summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp
diff options
context:
space:
mode:
authortb <>2024-03-02 11:17:27 +0000
committertb <>2024-03-02 11:17:27 +0000
commitd0dca40aabf970e230bf037138cf9765723fbeec (patch)
tree8c07af34e7527067f90550ed8765d719f02813b4 /src/lib/libcrypto/evp
parent3228d4664f5cbc8a4b11e8d1cf7aa6636946f529 (diff)
downloadopenbsd-d0dca40aabf970e230bf037138cf9765723fbeec.tar.gz
openbsd-d0dca40aabf970e230bf037138cf9765723fbeec.tar.bz2
openbsd-d0dca40aabf970e230bf037138cf9765723fbeec.zip
Unhook and remove GOST and STREEBOG
This stops compiling the GOST source. The current implementation is low quality and got in the way, especially in libssl. While we would be open for GOST support, it needs to be significantly better than what we have had and it also needs a maintainer. Add OPENSSL_NO_GOST to opensslfeatures and stop installing gost.h. Some code wrapped in #ifndef OPENSSL_NO_GOST will be removed later. ok jsing
Diffstat (limited to 'src/lib/libcrypto/evp')
-rw-r--r--src/lib/libcrypto/evp/e_gost2814789.c312
-rw-r--r--src/lib/libcrypto/evp/m_gost2814789.c113
-rw-r--r--src/lib/libcrypto/evp/m_gostr341194.c100
-rw-r--r--src/lib/libcrypto/evp/p_lib.c10
-rw-r--r--src/lib/libcrypto/evp/pmeth_lib.c6
5 files changed, 2 insertions, 539 deletions
diff --git a/src/lib/libcrypto/evp/e_gost2814789.c b/src/lib/libcrypto/evp/e_gost2814789.c
deleted file mode 100644
index 48619d109d..0000000000
--- a/src/lib/libcrypto/evp/e_gost2814789.c
+++ /dev/null
@@ -1,312 +0,0 @@
1/* $OpenBSD: e_gost2814789.c,v 1.14 2024/01/04 17:38:36 tb Exp $ */
2/*
3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
4 * Copyright (c) 2005-2006 Cryptocom LTD
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
16 * distribution.
17 *
18 * 3. All advertising materials mentioning features or use of this
19 * software must display the following acknowledgment:
20 * "This product includes software developed by the OpenSSL Project
21 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
22 *
23 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
24 * endorse or promote products derived from this software without
25 * prior written permission. For written permission, please contact
26 * openssl-core@openssl.org.
27 *
28 * 5. Products derived from this software may not be called "OpenSSL"
29 * nor may "OpenSSL" appear in their names without prior written
30 * permission of the OpenSSL Project.
31 *
32 * 6. Redistributions of any form whatsoever must retain the following
33 * acknowledgment:
34 * "This product includes software developed by the OpenSSL Project
35 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
36 *
37 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
38 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
39 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
40 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
44 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
45 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
46 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
47 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
48 * OF THE POSSIBILITY OF SUCH DAMAGE.
49 * ====================================================================
50 */
51
52#include <string.h>
53
54#include <openssl/opensslconf.h>
55
56#ifndef OPENSSL_NO_GOST
57#include <openssl/evp.h>
58#include <openssl/err.h>
59#include <openssl/gost.h>
60
61#include "evp_local.h"
62
63typedef struct {
64 GOST2814789_KEY ks;
65 int param_nid;
66} EVP_GOST2814789_CTX;
67
68static int
69gost2814789_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
70 const unsigned char *iv, int enc)
71{
72 EVP_GOST2814789_CTX *c = ctx->cipher_data;
73
74 return Gost2814789_set_key(&c->ks, key, ctx->key_len * 8);
75}
76
77static int
78gost2814789_ctl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
79{
80 EVP_GOST2814789_CTX *c = ctx->cipher_data;
81
82 switch (type) {
83 case EVP_CTRL_PBE_PRF_NID:
84 if (ptr != NULL) {
85 *((int *)ptr) = NID_id_HMACGostR3411_94;
86 return 1;
87 } else {
88 return 0;
89 }
90 case EVP_CTRL_INIT:
91 /* Default value to have any s-box set at all */
92 c->param_nid = NID_id_Gost28147_89_CryptoPro_A_ParamSet;
93 return Gost2814789_set_sbox(&c->ks, c->param_nid);
94 case EVP_CTRL_GOST_SET_SBOX:
95 return Gost2814789_set_sbox(&c->ks, arg);
96 default:
97 return -1;
98 }
99}
100
101int
102gost2814789_set_asn1_params(EVP_CIPHER_CTX *ctx, ASN1_TYPE *params)
103{
104 int len = 0;
105 unsigned char *buf = NULL;
106 unsigned char *p = NULL;
107 EVP_GOST2814789_CTX *c = ctx->cipher_data;
108 ASN1_OCTET_STRING *os = NULL;
109 GOST_CIPHER_PARAMS *gcp = GOST_CIPHER_PARAMS_new();
110
111 if (gcp == NULL) {
112 GOSTerror(ERR_R_MALLOC_FAILURE);
113 return 0;
114 }
115 if (ASN1_OCTET_STRING_set(gcp->iv, ctx->iv, ctx->cipher->iv_len) == 0) {
116 GOST_CIPHER_PARAMS_free(gcp);
117 GOSTerror(ERR_R_ASN1_LIB);
118 return 0;
119 }
120 ASN1_OBJECT_free(gcp->enc_param_set);
121 gcp->enc_param_set = OBJ_nid2obj(c->param_nid);
122
123 len = i2d_GOST_CIPHER_PARAMS(gcp, NULL);
124 p = buf = malloc(len);
125 if (buf == NULL) {
126 GOST_CIPHER_PARAMS_free(gcp);
127 GOSTerror(ERR_R_MALLOC_FAILURE);
128 return 0;
129 }
130 i2d_GOST_CIPHER_PARAMS(gcp, &p);
131 GOST_CIPHER_PARAMS_free(gcp);
132
133 os = ASN1_OCTET_STRING_new();
134 if (os == NULL) {
135 free(buf);
136 GOSTerror(ERR_R_MALLOC_FAILURE);
137 return 0;
138 }
139 if (ASN1_OCTET_STRING_set(os, buf, len) == 0) {
140 ASN1_OCTET_STRING_free(os);
141 free(buf);
142 GOSTerror(ERR_R_ASN1_LIB);
143 return 0;
144 }
145 free(buf);
146
147 ASN1_TYPE_set(params, V_ASN1_SEQUENCE, os);
148 return 1;
149}
150
151int
152gost2814789_get_asn1_params(EVP_CIPHER_CTX *ctx, ASN1_TYPE *params)
153{
154 int ret = -1;
155 int len;
156 GOST_CIPHER_PARAMS *gcp = NULL;
157 EVP_GOST2814789_CTX *c = ctx->cipher_data;
158 unsigned char *p;
159
160 if (ASN1_TYPE_get(params) != V_ASN1_SEQUENCE)
161 return ret;
162
163 p = params->value.sequence->data;
164
165 gcp = d2i_GOST_CIPHER_PARAMS(NULL, (const unsigned char **)&p,
166 params->value.sequence->length);
167
168 len = gcp->iv->length;
169 if (len != ctx->cipher->iv_len) {
170 GOST_CIPHER_PARAMS_free(gcp);
171 GOSTerror(GOST_R_INVALID_IV_LENGTH);
172 return -1;
173 }
174
175 if (!Gost2814789_set_sbox(&c->ks, OBJ_obj2nid(gcp->enc_param_set))) {
176 GOST_CIPHER_PARAMS_free(gcp);
177 return -1;
178 }
179 c->param_nid = OBJ_obj2nid(gcp->enc_param_set);
180
181 memcpy(ctx->oiv, gcp->iv->data, len);
182 memcpy(ctx->iv, gcp->iv->data, len);
183
184 GOST_CIPHER_PARAMS_free(gcp);
185
186 return 1;
187}
188
189static int
190gost2814789_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
191{
192 size_t i, bl;
193
194 bl = ctx->cipher->block_size;
195
196 if (inl < bl)
197 return 1;
198
199 inl -= bl;
200
201 for (i = 0; i <= inl; i += bl)
202 Gost2814789_ecb_encrypt(in + i, out + i, &((EVP_GOST2814789_CTX *)ctx->cipher_data)->ks, ctx->encrypt);
203
204 return 1;
205}
206
207static int
208gost2814789_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl)
209{
210 size_t chunk = EVP_MAXCHUNK;
211
212 if (inl < chunk)
213 chunk = inl;
214
215 while (inl && inl >= chunk) {
216 Gost2814789_cfb64_encrypt(in, out, chunk, &((EVP_GOST2814789_CTX *)ctx->cipher_data)->ks, ctx->iv, &ctx->num, ctx->encrypt);
217 inl -= chunk;
218 in += chunk;
219 out += chunk;
220 if (inl < chunk)
221 chunk = inl;
222 }
223
224 return 1;
225}
226
227static int
228gost2814789_cnt_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
229 const unsigned char *in, size_t inl)
230{
231 EVP_GOST2814789_CTX *c = ctx->cipher_data;
232
233 while (inl >= EVP_MAXCHUNK) {
234 Gost2814789_cnt_encrypt(in, out, EVP_MAXCHUNK, &c->ks,
235 ctx->iv, ctx->buf, &ctx->num);
236 inl -= EVP_MAXCHUNK;
237 in += EVP_MAXCHUNK;
238 out += EVP_MAXCHUNK;
239 }
240
241 if (inl)
242 Gost2814789_cnt_encrypt(in, out, inl, &c->ks, ctx->iv, ctx->buf,
243 &ctx->num);
244 return 1;
245}
246
247/* gost89 is CFB-64 */
248#define NID_gost89_cfb64 NID_id_Gost28147_89
249
250static const EVP_CIPHER gost2814789_ecb = {
251 .nid = NID_gost89_ecb,
252 .block_size = 8,
253 .key_len = 32,
254 .iv_len = 0,
255 .flags = EVP_CIPH_NO_PADDING | EVP_CIPH_CTRL_INIT | EVP_CIPH_ECB_MODE,
256 .init = gost2814789_init_key,
257 .do_cipher = gost2814789_ecb_cipher,
258 .cleanup = NULL,
259 .ctx_size = sizeof(EVP_GOST2814789_CTX),
260 .set_asn1_parameters = gost2814789_set_asn1_params,
261 .get_asn1_parameters = gost2814789_get_asn1_params,
262 .ctrl = gost2814789_ctl,
263};
264
265const EVP_CIPHER *
266EVP_gost2814789_ecb(void)
267{
268 return &gost2814789_ecb;
269}
270
271static const EVP_CIPHER gost2814789_cfb64 = {
272 .nid = NID_gost89_cfb64,
273 .block_size = 1,
274 .key_len = 32,
275 .iv_len = 8,
276 .flags = EVP_CIPH_NO_PADDING | EVP_CIPH_CTRL_INIT | EVP_CIPH_CFB_MODE,
277 .init = gost2814789_init_key,
278 .do_cipher = gost2814789_cfb64_cipher,
279 .cleanup = NULL,
280 .ctx_size = sizeof(EVP_GOST2814789_CTX),
281 .set_asn1_parameters = gost2814789_set_asn1_params,
282 .get_asn1_parameters = gost2814789_get_asn1_params,
283 .ctrl = gost2814789_ctl,
284};
285
286const EVP_CIPHER *
287EVP_gost2814789_cfb64(void)
288{
289 return &gost2814789_cfb64;
290}
291
292static const EVP_CIPHER gost2814789_cnt = {
293 .nid = NID_gost89_cnt,
294 .block_size = 1,
295 .key_len = 32,
296 .iv_len = 8,
297 .flags = EVP_CIPH_NO_PADDING | EVP_CIPH_CTRL_INIT | EVP_CIPH_OFB_MODE,
298 .init = gost2814789_init_key,
299 .do_cipher = gost2814789_cnt_cipher,
300 .cleanup = NULL,
301 .ctx_size = sizeof(EVP_GOST2814789_CTX),
302 .set_asn1_parameters = gost2814789_set_asn1_params,
303 .get_asn1_parameters = gost2814789_get_asn1_params,
304 .ctrl = gost2814789_ctl,
305};
306
307const EVP_CIPHER *
308EVP_gost2814789_cnt(void)
309{
310 return &gost2814789_cnt;
311}
312#endif
diff --git a/src/lib/libcrypto/evp/m_gost2814789.c b/src/lib/libcrypto/evp/m_gost2814789.c
deleted file mode 100644
index 9b8a09e5a4..0000000000
--- a/src/lib/libcrypto/evp/m_gost2814789.c
+++ /dev/null
@@ -1,113 +0,0 @@
1/* $OpenBSD: m_gost2814789.c,v 1.6 2023/07/07 19:37:53 beck Exp $ */
2/*
3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
4 * Copyright (c) 2005-2006 Cryptocom LTD
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
16 * distribution.
17 *
18 * 3. All advertising materials mentioning features or use of this
19 * software must display the following acknowledgment:
20 * "This product includes software developed by the OpenSSL Project
21 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
22 *
23 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
24 * endorse or promote products derived from this software without
25 * prior written permission. For written permission, please contact
26 * openssl-core@openssl.org.
27 *
28 * 5. Products derived from this software may not be called "OpenSSL"
29 * nor may "OpenSSL" appear in their names without prior written
30 * permission of the OpenSSL Project.
31 *
32 * 6. Redistributions of any form whatsoever must retain the following
33 * acknowledgment:
34 * "This product includes software developed by the OpenSSL Project
35 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
36 *
37 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
38 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
39 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
40 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
44 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
45 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
46 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
47 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
48 * OF THE POSSIBILITY OF SUCH DAMAGE.
49 * ====================================================================
50 */
51
52#include <openssl/opensslconf.h>
53
54#ifndef OPENSSL_NO_GOST
55
56#include <openssl/evp.h>
57#include <openssl/gost.h>
58#include <openssl/objects.h>
59
60#include "evp_local.h"
61
62static int
63gost2814789_init(EVP_MD_CTX *ctx)
64{
65 return GOST2814789IMIT_Init(ctx->md_data,
66 NID_id_Gost28147_89_CryptoPro_A_ParamSet);
67}
68
69static int
70gost2814789_update(EVP_MD_CTX *ctx, const void *data, size_t count)
71{
72 return GOST2814789IMIT_Update(ctx->md_data, data, count);
73}
74
75static int
76gost2814789_final(EVP_MD_CTX *ctx, unsigned char *md)
77{
78 return GOST2814789IMIT_Final(md, ctx->md_data);
79}
80
81static int
82gost2814789_md_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2)
83{
84 GOST2814789IMIT_CTX *gctx = ctx->md_data;
85
86 switch (cmd) {
87 case EVP_MD_CTRL_SET_KEY:
88 return Gost2814789_set_key(&gctx->cipher, p2, p1);
89 case EVP_MD_CTRL_GOST_SET_SBOX:
90 return Gost2814789_set_sbox(&gctx->cipher, p1);
91 }
92 return -2;
93}
94
95static const EVP_MD gost2814789imit_md = {
96 .type = NID_id_Gost28147_89_MAC,
97 .pkey_type = NID_undef,
98 .md_size = GOST2814789IMIT_LENGTH,
99 .flags = 0,
100 .init = gost2814789_init,
101 .update = gost2814789_update,
102 .final = gost2814789_final,
103 .block_size = GOST2814789IMIT_CBLOCK,
104 .ctx_size = sizeof(EVP_MD *) + sizeof(GOST2814789IMIT_CTX),
105 .md_ctrl = gost2814789_md_ctrl,
106};
107
108const EVP_MD *
109EVP_gost2814789imit(void)
110{
111 return (&gost2814789imit_md);
112}
113#endif
diff --git a/src/lib/libcrypto/evp/m_gostr341194.c b/src/lib/libcrypto/evp/m_gostr341194.c
deleted file mode 100644
index 723349a0d8..0000000000
--- a/src/lib/libcrypto/evp/m_gostr341194.c
+++ /dev/null
@@ -1,100 +0,0 @@
1/* $OpenBSD: m_gostr341194.c,v 1.7 2023/07/07 19:37:53 beck Exp $ */
2/*
3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
4 * Copyright (c) 2005-2006 Cryptocom LTD
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
16 * distribution.
17 *
18 * 3. All advertising materials mentioning features or use of this
19 * software must display the following acknowledgment:
20 * "This product includes software developed by the OpenSSL Project
21 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
22 *
23 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
24 * endorse or promote products derived from this software without
25 * prior written permission. For written permission, please contact
26 * openssl-core@openssl.org.
27 *
28 * 5. Products derived from this software may not be called "OpenSSL"
29 * nor may "OpenSSL" appear in their names without prior written
30 * permission of the OpenSSL Project.
31 *
32 * 6. Redistributions of any form whatsoever must retain the following
33 * acknowledgment:
34 * "This product includes software developed by the OpenSSL Project
35 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
36 *
37 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
38 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
39 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
40 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
44 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
45 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
46 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
47 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
48 * OF THE POSSIBILITY OF SUCH DAMAGE.
49 * ====================================================================
50 */
51
52#include <stdio.h>
53
54#include <openssl/opensslconf.h>
55
56#ifndef OPENSSL_NO_GOST
57
58#include <openssl/evp.h>
59#include <openssl/gost.h>
60#include <openssl/objects.h>
61
62#include "evp_local.h"
63
64static int
65gostr341194_init(EVP_MD_CTX *ctx)
66{
67 return GOSTR341194_Init(ctx->md_data,
68 NID_id_GostR3411_94_CryptoProParamSet);
69}
70
71static int
72gostr341194_update(EVP_MD_CTX *ctx, const void *data, size_t count)
73{
74 return GOSTR341194_Update(ctx->md_data, data, count);
75}
76
77static int
78gostr341194_final(EVP_MD_CTX *ctx, unsigned char *md)
79{
80 return GOSTR341194_Final(md, ctx->md_data);
81}
82
83static const EVP_MD gostr341194_md = {
84 .type = NID_id_GostR3411_94,
85 .pkey_type = NID_undef,
86 .md_size = GOSTR341194_LENGTH,
87 .flags = 0,
88 .init = gostr341194_init,
89 .update = gostr341194_update,
90 .final = gostr341194_final,
91 .block_size = GOSTR341194_CBLOCK,
92 .ctx_size = sizeof(EVP_MD *) + sizeof(GOSTR341194_CTX),
93};
94
95const EVP_MD *
96EVP_gostr341194(void)
97{
98 return (&gostr341194_md);
99}
100#endif
diff --git a/src/lib/libcrypto/evp/p_lib.c b/src/lib/libcrypto/evp/p_lib.c
index 558c89d427..8bf820560c 100644
--- a/src/lib/libcrypto/evp/p_lib.c
+++ b/src/lib/libcrypto/evp/p_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p_lib.c,v 1.58 2024/01/05 21:22:01 tb Exp $ */ 1/* $OpenBSD: p_lib.c,v 1.59 2024/03/02 11:17:27 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -140,10 +140,6 @@ extern const EVP_PKEY_ASN1_METHOD dsa3_asn1_meth;
140extern const EVP_PKEY_ASN1_METHOD dsa4_asn1_meth; 140extern const EVP_PKEY_ASN1_METHOD dsa4_asn1_meth;
141extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth; 141extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth;
142extern const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth; 142extern const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth;
143extern const EVP_PKEY_ASN1_METHOD gostimit_asn1_meth;
144extern const EVP_PKEY_ASN1_METHOD gostr01_asn1_meth;
145extern const EVP_PKEY_ASN1_METHOD gostr12_256_asn1_meth;
146extern const EVP_PKEY_ASN1_METHOD gostr12_512_asn1_meth;
147extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth; 143extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth;
148extern const EVP_PKEY_ASN1_METHOD rsa_asn1_meth; 144extern const EVP_PKEY_ASN1_METHOD rsa_asn1_meth;
149extern const EVP_PKEY_ASN1_METHOD rsa2_asn1_meth; 145extern const EVP_PKEY_ASN1_METHOD rsa2_asn1_meth;
@@ -160,10 +156,6 @@ static const EVP_PKEY_ASN1_METHOD *asn1_methods[] = {
160 &dsa4_asn1_meth, 156 &dsa4_asn1_meth,
161 &eckey_asn1_meth, 157 &eckey_asn1_meth,
162 &ed25519_asn1_meth, 158 &ed25519_asn1_meth,
163 &gostimit_asn1_meth,
164 &gostr01_asn1_meth,
165 &gostr12_256_asn1_meth,
166 &gostr12_512_asn1_meth,
167 &hmac_asn1_meth, 159 &hmac_asn1_meth,
168 &rsa_asn1_meth, 160 &rsa_asn1_meth,
169 &rsa2_asn1_meth, 161 &rsa2_asn1_meth,
diff --git a/src/lib/libcrypto/evp/pmeth_lib.c b/src/lib/libcrypto/evp/pmeth_lib.c
index a0d57594d8..a2a9ad9c7b 100644
--- a/src/lib/libcrypto/evp/pmeth_lib.c
+++ b/src/lib/libcrypto/evp/pmeth_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pmeth_lib.c,v 1.38 2024/03/02 10:04:40 tb Exp $ */ 1/* $OpenBSD: pmeth_lib.c,v 1.39 2024/03/02 11:17:27 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -76,8 +76,6 @@ extern const EVP_PKEY_METHOD dh_pkey_meth;
76extern const EVP_PKEY_METHOD dsa_pkey_meth; 76extern const EVP_PKEY_METHOD dsa_pkey_meth;
77extern const EVP_PKEY_METHOD ec_pkey_meth; 77extern const EVP_PKEY_METHOD ec_pkey_meth;
78extern const EVP_PKEY_METHOD ed25519_pkey_meth; 78extern const EVP_PKEY_METHOD ed25519_pkey_meth;
79extern const EVP_PKEY_METHOD gostimit_pkey_meth;
80extern const EVP_PKEY_METHOD gostr01_pkey_meth;
81extern const EVP_PKEY_METHOD hkdf_pkey_meth; 79extern const EVP_PKEY_METHOD hkdf_pkey_meth;
82extern const EVP_PKEY_METHOD hmac_pkey_meth; 80extern const EVP_PKEY_METHOD hmac_pkey_meth;
83extern const EVP_PKEY_METHOD rsa_pkey_meth; 81extern const EVP_PKEY_METHOD rsa_pkey_meth;
@@ -90,8 +88,6 @@ static const EVP_PKEY_METHOD *pkey_methods[] = {
90 &dsa_pkey_meth, 88 &dsa_pkey_meth,
91 &ec_pkey_meth, 89 &ec_pkey_meth,
92 &ed25519_pkey_meth, 90 &ed25519_pkey_meth,
93 &gostimit_pkey_meth,
94 &gostr01_pkey_meth,
95 &hkdf_pkey_meth, 91 &hkdf_pkey_meth,
96 &hmac_pkey_meth, 92 &hmac_pkey_meth,
97 &rsa_pkey_meth, 93 &rsa_pkey_meth,