summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/gost/gostr341001_ameth.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/libcrypto/gost/gostr341001_ameth.c b/src/lib/libcrypto/gost/gostr341001_ameth.c
index 9098797ade..fc3bce412a 100644
--- a/src/lib/libcrypto/gost/gostr341001_ameth.c
+++ b/src/lib/libcrypto/gost/gostr341001_ameth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: gostr341001_ameth.c,v 1.21 2023/12/28 21:49:07 tb Exp $ */ 1/* $OpenBSD: gostr341001_ameth.c,v 1.22 2023/12/28 21:53:09 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
4 * Copyright (c) 2005-2006 Cryptocom LTD 4 * Copyright (c) 2005-2006 Cryptocom LTD
@@ -207,7 +207,9 @@ pub_decode_gost01(EVP_PKEY *pk, X509_PUBKEY *pub)
207 if (X509_PUBKEY_get0_param(&palgobj, &pubkey_buf, &pub_len, &palg, pub) 207 if (X509_PUBKEY_get0_param(&palgobj, &pubkey_buf, &pub_len, &palg, pub)
208 == 0) 208 == 0)
209 return 0; 209 return 0;
210 (void)EVP_PKEY_assign_GOST(pk, NULL); 210 /* Called for the side effect of freeing pk->pkey. */
211 if (!EVP_PKEY_set_type(pk, EVP_PKEY_GOSTR01))
212 return 0;
211 X509_ALGOR_get0(NULL, &ptype, (const void **)&pval, palg); 213 X509_ALGOR_get0(NULL, &ptype, (const void **)&pval, palg);
212 if (ptype != V_ASN1_SEQUENCE) { 214 if (ptype != V_ASN1_SEQUENCE) {
213 GOSTerror(GOST_R_BAD_KEY_PARAMETERS_FORMAT); 215 GOSTerror(GOST_R_BAD_KEY_PARAMETERS_FORMAT);
@@ -420,7 +422,9 @@ priv_decode_gost01(EVP_PKEY *pk, const PKCS8_PRIV_KEY_INFO *p8inf)
420 GOSTerror(GOST_R_BAD_KEY_PARAMETERS_FORMAT); 422 GOSTerror(GOST_R_BAD_KEY_PARAMETERS_FORMAT);
421 return 0; 423 return 0;
422 } 424 }
423 (void)EVP_PKEY_assign_GOST(pk, NULL); 425 /* Called for the side effect of freeing pk->pkey. */
426 if (!EVP_PKEY_set_type(pk, EVP_PKEY_GOSTR01))
427 return 0;
424 X509_ALGOR_get0(NULL, &ptype, (const void **)&pval, palg); 428 X509_ALGOR_get0(NULL, &ptype, (const void **)&pval, palg);
425 if (ptype != V_ASN1_SEQUENCE) { 429 if (ptype != V_ASN1_SEQUENCE) {
426 GOSTerror(GOST_R_BAD_KEY_PARAMETERS_FORMAT); 430 GOSTerror(GOST_R_BAD_KEY_PARAMETERS_FORMAT);