目前我将我的私钥保存在一个文件 private.key 中,我使用以下函数加载它:
RSA *r = PEM_read_RSAPrivateKey("private.key", NULL, NULL, NULL);
这很好用,但我对基于文件的格式不满意;我想将我的 key 以纯二进制形式(即,没有 base64 或类似格式)保存在 char*
变量中,并从中加载/保存 key 。这样我就有了更多的自由:我将能够将 key 直接存储到应用程序 const char key[] { 0x01, 0x02, ... };
中,通过网络套接字发送它等
不幸的是,我还没有找到一种方法来做到这一点。据我所知,保存和加载 key 的唯一方法是直接将其读取/保存到文件中。
最佳答案
使用 d2i_RSAPrivateKey
直接从包含二进制 DER 格式的缓冲区加载:
const unsigned char *p = key;
RSA *r = d2i_RSAPrivateKey(NULL, &p, keylen);
关于c++ - 如何使用 OpenSSL C 库将 RSA key 从二进制数据加载到 RSA 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2477570/