diff options
-rw-r--r-- | src/lib/libcrypto/asn1/ameth_lib.c | 45 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/pmeth_lib.c | 41 |
2 files changed, 23 insertions, 63 deletions
diff --git a/src/lib/libcrypto/asn1/ameth_lib.c b/src/lib/libcrypto/asn1/ameth_lib.c index 8be82060ef..545ba8f1a1 100644 --- a/src/lib/libcrypto/asn1/ameth_lib.c +++ b/src/lib/libcrypto/asn1/ameth_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ameth_lib.c,v 1.21 2019/11/02 16:06:25 inoguchi Exp $ */ | 1 | /* $OpenBSD: ameth_lib.c,v 1.22 2021/12/03 14:18:06 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 | */ |
@@ -340,34 +340,21 @@ EVP_PKEY_asn1_new(int id, int flags, const char *pem_str, const char *info) | |||
340 | void | 340 | void |
341 | EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, const EVP_PKEY_ASN1_METHOD *src) | 341 | EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, const EVP_PKEY_ASN1_METHOD *src) |
342 | { | 342 | { |
343 | dst->pub_decode = src->pub_decode; | 343 | EVP_PKEY_ASN1_METHOD preserve; |
344 | dst->pub_encode = src->pub_encode; | 344 | |
345 | dst->pub_cmp = src->pub_cmp; | 345 | preserve.pkey_id = dst->pkey_id; |
346 | dst->pub_print = src->pub_print; | 346 | preserve.pkey_base_id = dst->pkey_base_id; |
347 | 347 | preserve.pkey_flags = dst->pkey_flags; | |
348 | dst->priv_decode = src->priv_decode; | 348 | preserve.pem_str = dst->pem_str; |
349 | dst->priv_encode = src->priv_encode; | 349 | preserve.info = dst->info; |
350 | dst->priv_print = src->priv_print; | 350 | |
351 | 351 | *dst = *src; | |
352 | dst->old_priv_encode = src->old_priv_encode; | 352 | |
353 | dst->old_priv_decode = src->old_priv_decode; | 353 | dst->pkey_id = preserve.pkey_id; |
354 | 354 | dst->pkey_base_id = preserve.pkey_base_id; | |
355 | dst->pkey_size = src->pkey_size; | 355 | dst->pkey_flags = preserve.pkey_flags; |
356 | dst->pkey_bits = src->pkey_bits; | 356 | dst->pem_str = preserve.pem_str; |
357 | 357 | dst->info = preserve.info; | |
358 | dst->param_decode = src->param_decode; | ||
359 | dst->param_encode = src->param_encode; | ||
360 | dst->param_missing = src->param_missing; | ||
361 | dst->param_copy = src->param_copy; | ||
362 | dst->param_cmp = src->param_cmp; | ||
363 | dst->param_print = src->param_print; | ||
364 | dst->sig_print = src->sig_print; | ||
365 | |||
366 | dst->pkey_free = src->pkey_free; | ||
367 | dst->pkey_ctrl = src->pkey_ctrl; | ||
368 | |||
369 | dst->item_sign = src->item_sign; | ||
370 | dst->item_verify = src->item_verify; | ||
371 | } | 358 | } |
372 | 359 | ||
373 | void | 360 | void |
diff --git a/src/lib/libcrypto/evp/pmeth_lib.c b/src/lib/libcrypto/evp/pmeth_lib.c index 36bfe8d9fc..359e57d74c 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.16 2019/11/01 15:08:57 jsing Exp $ */ | 1 | /* $OpenBSD: pmeth_lib.c,v 1.17 2021/12/03 14:18:06 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 | */ |
@@ -272,42 +272,15 @@ EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, const EVP_PKEY_METHOD *meth) | |||
272 | void | 272 | void |
273 | EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src) | 273 | EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src) |
274 | { | 274 | { |
275 | dst->init = src->init; | 275 | EVP_PKEY_METHOD preserve; |
276 | dst->copy = src->copy; | ||
277 | dst->cleanup = src->cleanup; | ||
278 | 276 | ||
279 | dst->paramgen_init = src->paramgen_init; | 277 | preserve.pkey_id = dst->pkey_id; |
280 | dst->paramgen = src->paramgen; | 278 | preserve.flags = dst->flags; |
281 | 279 | ||
282 | dst->keygen_init = src->keygen_init; | 280 | *dst = *src; |
283 | dst->keygen = src->keygen; | ||
284 | 281 | ||
285 | dst->sign_init = src->sign_init; | 282 | dst->pkey_id = preserve.pkey_id; |
286 | dst->sign = src->sign; | 283 | dst->flags = preserve.flags; |
287 | |||
288 | dst->verify_init = src->verify_init; | ||
289 | dst->verify = src->verify; | ||
290 | |||
291 | dst->verify_recover_init = src->verify_recover_init; | ||
292 | dst->verify_recover = src->verify_recover; | ||
293 | |||
294 | dst->signctx_init = src->signctx_init; | ||
295 | dst->signctx = src->signctx; | ||
296 | |||
297 | dst->verifyctx_init = src->verifyctx_init; | ||
298 | dst->verifyctx = src->verifyctx; | ||
299 | |||
300 | dst->encrypt_init = src->encrypt_init; | ||
301 | dst->encrypt = src->encrypt; | ||
302 | |||
303 | dst->decrypt_init = src->decrypt_init; | ||
304 | dst->decrypt = src->decrypt; | ||
305 | |||
306 | dst->derive_init = src->derive_init; | ||
307 | dst->derive = src->derive; | ||
308 | |||
309 | dst->ctrl = src->ctrl; | ||
310 | dst->ctrl_str = src->ctrl_str; | ||
311 | } | 284 | } |
312 | 285 | ||
313 | void | 286 | void |