From 4bb9f9e9c2e81cb61253acc224c14b895384c12a Mon Sep 17 00:00:00 2001 From: evgeny Date: Sun, 9 Aug 2026 13:59:38 +0300 Subject: [PATCH] =?UTF-8?q?crypto:=20EVP=5FPKEY=5Fgenerate=20=E2=86=92=20E?= =?UTF-8?q?VP=5FPKEY=5Fkeygen=20+=20OPENSSL=5FAPI=5FCOMPAT=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20BSD/LibreSSL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/chat_channel.c | 5 +++-- tests/test_media_delivery_full.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/chat/chat_channel.c b/src/chat/chat_channel.c index ef680e5a..ece80447 100644 --- a/src/chat/chat_channel.c +++ b/src/chat/chat_channel.c @@ -20,6 +20,7 @@ #include "../transport_layer/etcp.h" #include "../transport_layer/etcp_connections.h" +#define OPENSSL_API_COMPAT 0x10100000L #include #include #include @@ -222,13 +223,13 @@ void chat_core_create_channel_auto(const char* name) { uint8_t x25519_pub[32] = {0}, x25519_priv[32] = {0}; { EVP_PKEY* pkey = NULL; EVP_PKEY_CTX* ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_X25519, NULL); - if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_generate(ctx, &pkey); EVP_PKEY_CTX_free(ctx); } + if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_keygen(ctx, &pkey); EVP_PKEY_CTX_free(ctx); } if (pkey) { size_t pkLen = 32, skLen = 32; EVP_PKEY_get_raw_public_key(pkey, x25519_pub, &pkLen); EVP_PKEY_get_raw_private_key(pkey, x25519_priv, &skLen); EVP_PKEY_free(pkey); } } uint8_t ed25519_pub[32] = {0}, ed25519_priv[32] = {0}; EVP_PKEY* ed_pkey = NULL; { EVP_PKEY_CTX* ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_ED25519, NULL); - if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_generate(ctx, &ed_pkey); EVP_PKEY_CTX_free(ctx); } + if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_keygen(ctx, &ed_pkey); EVP_PKEY_CTX_free(ctx); } if (ed_pkey) { size_t pkLen = 32, skLen = 32; EVP_PKEY_get_raw_public_key(ed_pkey, ed25519_pub, &pkLen); EVP_PKEY_get_raw_private_key(ed_pkey, ed25519_priv, &skLen); } } uint64_t chId = 0; RAND_bytes((uint8_t*)&chId, sizeof(chId)); diff --git a/tests/test_media_delivery_full.c b/tests/test_media_delivery_full.c index 06176694..7c2cc75c 100644 --- a/tests/test_media_delivery_full.c +++ b/tests/test_media_delivery_full.c @@ -24,6 +24,7 @@ #include "../lib/mem.h" #include +#define OPENSSL_API_COMPAT 0x10100000L #include #include #include @@ -117,10 +118,10 @@ static void setup_chat_group(void) { TEST("generate channel keys"); { EVP_PKEY* xpkey = NULL, *epkey = NULL; EVP_PKEY_CTX* ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_X25519, NULL); - if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_generate(ctx, &xpkey); EVP_PKEY_CTX_free(ctx); } + if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_keygen(ctx, &xpkey); EVP_PKEY_CTX_free(ctx); } if (xpkey) { size_t l = 32; EVP_PKEY_get_raw_public_key(xpkey, x25519_pub, &l); EVP_PKEY_free(xpkey); } ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_ED25519, NULL); - if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_generate(ctx, &epkey); EVP_PKEY_CTX_free(ctx); } + if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_keygen(ctx, &epkey); EVP_PKEY_CTX_free(ctx); } if (epkey) { size_t l = 32; EVP_PKEY_get_raw_public_key(epkey, ed_pub, &l); /* sign channel */ EVP_MD_CTX* mctx = EVP_MD_CTX_new();