summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1')
-rw-r--r--src/lib/libcrypto/asn1/ameth_lib.c45
1 files changed, 16 insertions, 29 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)
340void 340void
341EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, const EVP_PKEY_ASN1_METHOD *src) 341EVP_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
373void 360void