File 3713-crypto-Fix-bug-in-privkey_to_pubkey-dss-EngineKey-fo.patch of Package erlang
From 56b289bc7ae9aa993fa80639be2392b818e3f931 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Mon, 23 Oct 2023 20:54:56 +0200
Subject: [PATCH 3/3] crypto: Fix bug in privkey_to_pubkey(dss, EngineKey) for
OpenSSL 3
---
lib/crypto/c_src/dss.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/crypto/c_src/dss.c b/lib/crypto/c_src/dss.c
index 2e19453e50..0756e9076d 100644
--- a/lib/crypto/c_src/dss.c
+++ b/lib/crypto/c_src/dss.c
@@ -109,7 +109,7 @@ err:
int dss_privkey_to_pubkey(ErlNifEnv* env, EVP_PKEY *pkey, ERL_NIF_TERM *ret)
// HAS_3_0_API
{
- ERL_NIF_TERM result[5];
+ ERL_NIF_TERM result[4];
BIGNUM *p = NULL, *q = NULL, *g = NULL, *pub = NULL;
if (
@@ -119,8 +119,8 @@ int dss_privkey_to_pubkey(ErlNifEnv* env, EVP_PKEY *pkey, ERL_NIF_TERM *ret)
|| !EVP_PKEY_get_bn_param(pkey, "pub", &pub)
|| ((result[0] = bin_from_bn(env, p)) == atom_error)
|| ((result[1] = bin_from_bn(env, q)) == atom_error)
- || ((result[1] = bin_from_bn(env, g)) == atom_error)
- || ((result[1] = bin_from_bn(env, pub)) == atom_error)
+ || ((result[2] = bin_from_bn(env, g)) == atom_error)
+ || ((result[3] = bin_from_bn(env, pub)) == atom_error)
)
goto err;
--
2.35.3