Сгенерируйте пары ключей RSA, используя openssl 3.0 в С++.C++

Программы на C++. Форум разработчиков
Anonymous
Сгенерируйте пары ключей RSA, используя openssl 3.0 в С++.

Сообщение Anonymous »

Может ли кто-нибудь поделиться простым примером генерации пар ключей с использованием библиотеки openssl 3.0 C++? Официальный сайт бесполезен, многие функции устарели, но все еще указаны там, а сгенерированный gpt код не удался в EVP_PKEY_copy_parameters. Это код, который я получил от gpt, и он не работает.

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 
#include 

// Custom deleter for EVP_PKEY
struct EVP_PKEY_Deleter {
void operator()(EVP_PKEY *pkey) const { EVP_PKEY_free(pkey); }
};

// Type alias for unique_ptr with EVP_PKEY and custom deleter
using Key = std::unique_ptr;

std::pair generate_rsa_keys() {
EVP_PKEY_CTX *ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, nullptr);
if (!ctx) {
throw std::runtime_error("Failed to create context");
}

EVP_PKEY *pkey_raw = EVP_RSA_gen(2048);
if (!pkey_raw) {
EVP_PKEY_CTX_free(ctx);
throw std::runtime_error("Key generation failed");
}

EVP_PKEY *public_key_raw = EVP_PKEY_new();
if (!public_key_raw) {
EVP_PKEY_free(pkey_raw);
EVP_PKEY_CTX_free(ctx);
throw std::runtime_error("Failed to create public key");
}

if (EVP_PKEY_copy_parameters(public_key_raw, pkey_raw) 

Подробнее здесь: [url]https://stackoverflow.com/questions/79144068/generate-rsa-key-pairs-using-openssl-3-0-in-c[/url]

Вернуться в «C++»