summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2023-11-19 15:43:52 +0000
committertb <>2023-11-19 15:43:52 +0000
commitfea63fbd7eeaebeff6720b8ec754575f90e8eb77 (patch)
treef32da51e993861a652fa3e012466423087ebd181
parent6b9527d672af48cf8c311feff15bb4caba9f091d (diff)
downloadopenbsd-fea63fbd7eeaebeff6720b8ec754575f90e8eb77.tar.gz
openbsd-fea63fbd7eeaebeff6720b8ec754575f90e8eb77.tar.bz2
openbsd-fea63fbd7eeaebeff6720b8ec754575f90e8eb77.zip
Unifdef OPENSSL_NO_ENGINE in pmeth_lib.c
This includes a manual intervention for the call to EVP_PKEY_meth_find() which ended up in the middle of nowhere. ok jsing
-rw-r--r--src/lib/libcrypto/evp/pmeth_lib.c44
1 files changed, 3 insertions, 41 deletions
diff --git a/src/lib/libcrypto/evp/pmeth_lib.c b/src/lib/libcrypto/evp/pmeth_lib.c
index b480a574fe..7ebf273415 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.33 2023/07/07 19:37:54 beck Exp $ */ 1/* $OpenBSD: pmeth_lib.c,v 1.34 2023/11/19 15:43:52 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 */
@@ -68,10 +68,6 @@
68#include <openssl/objects.h> 68#include <openssl/objects.h>
69#include <openssl/x509v3.h> 69#include <openssl/x509v3.h>
70 70
71#ifndef OPENSSL_NO_ENGINE
72#include <openssl/engine.h>
73#endif
74
75#include "asn1_local.h" 71#include "asn1_local.h"
76#include "evp_local.h" 72#include "evp_local.h"
77 73
@@ -161,26 +157,8 @@ evp_pkey_ctx_new(EVP_PKEY *pkey, ENGINE *engine, int id)
161 return NULL; 157 return NULL;
162 id = pkey->ameth->pkey_id; 158 id = pkey->ameth->pkey_id;
163 } 159 }
164#ifndef OPENSSL_NO_ENGINE 160
165 if (pkey != NULL && pkey->engine != NULL) 161 if ((pmeth = EVP_PKEY_meth_find(id)) == NULL) {
166 engine = pkey->engine;
167 /* Try to find an ENGINE which implements this method. */
168 if (engine != NULL) {
169 if (!ENGINE_init(engine)) {
170 EVPerror(ERR_R_ENGINE_LIB);
171 return NULL;
172 }
173 } else
174 engine = ENGINE_get_pkey_meth_engine(id);
175
176 /* Look up method handler in ENGINE or use internal tables. */
177 if (engine != NULL)
178 pmeth = ENGINE_get_pkey_meth(engine, id);
179 else
180#endif
181 pmeth = EVP_PKEY_meth_find(id);
182
183 if (pmeth == NULL) {
184 EVPerror(EVP_R_UNSUPPORTED_ALGORITHM); 162 EVPerror(EVP_R_UNSUPPORTED_ALGORITHM);
185 goto err; 163 goto err;
186 } 164 }
@@ -205,9 +183,6 @@ evp_pkey_ctx_new(EVP_PKEY *pkey, ENGINE *engine, int id)
205 183
206 err: 184 err:
207 EVP_PKEY_CTX_free(pkey_ctx); 185 EVP_PKEY_CTX_free(pkey_ctx);
208#ifndef OPENSSL_NO_ENGINE
209 ENGINE_finish(engine);
210#endif
211 186
212 return NULL; 187 return NULL;
213} 188}
@@ -275,22 +250,12 @@ EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx)
275 250
276 if (pctx->pmeth == NULL || pctx->pmeth->copy == NULL) 251 if (pctx->pmeth == NULL || pctx->pmeth->copy == NULL)
277 goto err; 252 goto err;
278#ifndef OPENSSL_NO_ENGINE
279 /* Make sure it's safe to copy a pkey context using an ENGINE */
280 if (pctx->engine != NULL && !ENGINE_init(pctx->engine)) {
281 EVPerror(ERR_R_ENGINE_LIB);
282 goto err;
283 }
284#endif
285 if ((rctx = calloc(1, sizeof(*rctx))) == NULL) { 253 if ((rctx = calloc(1, sizeof(*rctx))) == NULL) {
286 EVPerror(ERR_R_MALLOC_FAILURE); 254 EVPerror(ERR_R_MALLOC_FAILURE);
287 goto err; 255 goto err;
288 } 256 }
289 257
290 rctx->pmeth = pctx->pmeth; 258 rctx->pmeth = pctx->pmeth;
291#ifndef OPENSSL_NO_ENGINE
292 rctx->engine = pctx->engine;
293#endif
294 259
295 if ((rctx->pkey = pctx->pkey) != NULL) 260 if ((rctx->pkey = pctx->pkey) != NULL)
296 EVP_PKEY_up_ref(rctx->pkey); 261 EVP_PKEY_up_ref(rctx->pkey);
@@ -333,9 +298,6 @@ EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
333 ctx->pmeth->cleanup(ctx); 298 ctx->pmeth->cleanup(ctx);
334 EVP_PKEY_free(ctx->pkey); 299 EVP_PKEY_free(ctx->pkey);
335 EVP_PKEY_free(ctx->peerkey); 300 EVP_PKEY_free(ctx->peerkey);
336#ifndef OPENSSL_NO_ENGINE
337 ENGINE_finish(ctx->engine);
338#endif
339 free(ctx); 301 free(ctx);
340} 302}
341 303