[英]openssl create rsa key pair in C and export it
我想在C / C ++中创建一个RSA密钥对,并将其导出到字符串以使用它。
我设法创建了钥匙
rsa = RSA_generate_key(bits, exp, NULL, NULL);
if(RSA_check_key(rsa)!=1){
std::cout << "Error while checking key" << std::endl << std::flush;
}
pkey = EVP_PKEY_new();
EVP_PKEY_assign_RSA(pkey, rsa);
从这一点开始,我可以使用PEM_write_PUBKEY()和PEM_write_PrivateKey()将私钥和公钥写入文件。 但是我要做的是将私钥和公钥从pkey直接转换为变量,最好是PEM格式。 我已经环顾四周,但是找不到正确的功能。 有什么提示吗?
如果您确实需要PEM表示形式,则需要使用PEM_write_bio_RSA_PUBKEY()
和PEM_write_bio_RSAPrivateKey()
(以及它们的已read
副本); 给他们内存BIO,使其写入内存缓冲区。
您可以通过调用例如创建内存BIO
BIO * b = BIO_new(BIO_s_mem());
并通过调用获取内存缓冲区
void * buf;
BIO_get_mem_ptr(b, &buf);
您还可以通过调用例如在现有内存周围创建内存BIO
BIO * b = BIO_new_mem_buf(buf, 9001)
但是生成的BIO
将为只读。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.