summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto')
-rw-r--r--src/lib/libcrypto/evp/pmeth_gn.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/lib/libcrypto/evp/pmeth_gn.c b/src/lib/libcrypto/evp/pmeth_gn.c
index b8b51ced3d..1c355e594a 100644
--- a/src/lib/libcrypto/evp/pmeth_gn.c
+++ b/src/lib/libcrypto/evp/pmeth_gn.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pmeth_gn.c,v 1.18 2024/04/12 09:41:39 tb Exp $ */ 1/* $OpenBSD: pmeth_gn.c,v 1.19 2024/04/17 08:24:11 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 */
@@ -87,7 +87,7 @@ EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
87{ 87{
88 int ret; 88 int ret;
89 89
90 if (!ctx || !ctx->pmeth || !ctx->pmeth->paramgen) { 90 if (ctx == NULL || ctx->pmeth == NULL || ctx->pmeth->paramgen == NULL) {
91 EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); 91 EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
92 return -2; 92 return -2;
93 } 93 }
@@ -97,17 +97,19 @@ EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
97 return -1; 97 return -1;
98 } 98 }
99 99
100 if (!ppkey) 100 if (ppkey == NULL)
101 return -1; 101 return -1;
102 102
103 if (!*ppkey) 103 if (*ppkey == NULL)
104 *ppkey = EVP_PKEY_new(); 104 *ppkey = EVP_PKEY_new();
105 if (*ppkey == NULL)
106 return -1;
105 107
106 ret = ctx->pmeth->paramgen(ctx, *ppkey); 108 if ((ret = ctx->pmeth->paramgen(ctx, *ppkey)) <= 0) {
107 if (ret <= 0) {
108 EVP_PKEY_free(*ppkey); 109 EVP_PKEY_free(*ppkey);
109 *ppkey = NULL; 110 *ppkey = NULL;
110 } 111 }
112
111 return ret; 113 return ret;
112} 114}
113LCRYPTO_ALIAS(EVP_PKEY_paramgen); 115LCRYPTO_ALIAS(EVP_PKEY_paramgen);