summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/ec/ec_pmeth.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/lib/libcrypto/ec/ec_pmeth.c b/src/lib/libcrypto/ec/ec_pmeth.c
index 6d74a7f8a4..e1a068d62d 100644
--- a/src/lib/libcrypto/ec/ec_pmeth.c
+++ b/src/lib/libcrypto/ec/ec_pmeth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_pmeth.c,v 1.24 2025/01/05 16:07:08 tb Exp $ */ 1/* $OpenBSD: ec_pmeth.c,v 1.25 2025/02/18 06:31:10 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 */
@@ -221,10 +221,8 @@ pkey_ec_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)
221 } 221 }
222 222
223 eckey = dctx->co_key ? dctx->co_key : ctx->pkey->pkey.ec; 223 eckey = dctx->co_key ? dctx->co_key : ctx->pkey->pkey.ec;
224 if (!key) { 224 if (key == NULL) {
225 const EC_GROUP *group; 225 *keylen = BN_num_bytes(eckey->group->p);
226 group = EC_KEY_get0_group(eckey);
227 *keylen = (EC_GROUP_get_degree(group) + 7) / 8;
228 return 1; 226 return 1;
229 } 227 }
230 pubkey = EC_KEY_get0_public_key(ctx->peerkey->pkey.ec); 228 pubkey = EC_KEY_get0_public_key(ctx->peerkey->pkey.ec);