c – 如何使用OpenSSL生成RSA私钥?

我想知道如何在我的C源文件中使用OpenSSL库生成RSA私钥.我知道如何使用terminal命令生成它.

实际上我的server.c文件将生成一个私钥并发送到client.c
如果可能,请帮我一些源代码,否则任何帮助将不胜感激.

我正在研究Linux机器.

最佳答案
#include <openssl/rsa.h>
#include <openssl/pem.h>

const int kBits = 1024;
const int kExp = 3;

int keylen;
char *pem_key;

RSA *rsa = RSA_generate_key(kBits, kExp, 0, 0);

/* To get the C-string PEM form: */
BIO *bio = BIO_new(BIO_s_mem());
PEM_write_bio_RSAPrivateKey(bio, rsa, NULL, NULL, 0, NULL, NULL);

keylen = BIO_pending(bio);
pem_key = calloc(keylen+1, 1); /* Null-terminate */
BIO_read(bio, pem_key, keylen);

printf("%s", pem_key);

BIO_free_all(bio);
RSA_free(rsa);
free(pem_key);

转载注明原文:c – 如何使用OpenSSL生成RSA私钥? - 代码日志