#include "../common/color.h" #include "flow_help.h" #include #include #include namespace pupes_message_client_lib { EVP_PKEY *generate_keypair() { std::clog << BLUE "[LOG]" RESET << " Generating keypair...\n"; EVP_PKEY_CTX *ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_ML_DSA_87, NULL); if (!ctx) { std::cerr << "Failed to create key generation context" << std::endl; return nullptr; } if (EVP_PKEY_keygen_init(ctx) <= 0) { std::cerr << "Failed to initialize key generation" << std::endl; EVP_PKEY_CTX_free(ctx); return nullptr; } // Generate the key pair EVP_PKEY *keypair = NULL; if (EVP_PKEY_keygen(ctx, &keypair) <= 0) { std::cerr << "Failed to generate key pair" << std::endl; EVP_PKEY_CTX_free(ctx); return nullptr; } SaveOrGetKeypair(keypair); return keypair; } } // namespace pupes_message_client_lib