【发布时间】:2016-11-11 05:05:30
【问题描述】:
我想生成一个 ecdsa 密钥对并将其保存到 PEM 文件中。这是我生成密钥的代码。
#include <openssl/ec.h> // for EC_GROUP_new_by_curve_name, EC_GROUP_free, EC_KEY_new, EC_KEY_set_group, EC_KEY_generate_key, EC_KEY_free
#include <openssl/ecdsa.h> // for ECDSA_do_sign, ECDSA_do_verify
#include <openssl/obj_mac.h> // for NID_secp256k1
/*
* Function generate_eckey
* -----------------------
*
* This function generates an EC_Key object that stores the ECDSA key pair.
*
* return: ec key pair
*/
EC_KEY * generate_eckey() {
EC_KEY *eckey=EC_KEY_new();
EC_GROUP *ecgroup= EC_GROUP_new_by_curve_name(NID_secp256k1);
EC_KEY_set_group(eckey, ecgroup);
EC_KEY_generate_key(eckey);
return eckey;
}
int main() {
// generate a eckey used to produce signatures
EC_KEY *eckey = generate_eckey();
return 0;
}
现在我有了这个可用于签署和验证消息的密钥对。我想要做的是将信息保存到文件中,以便下次我可以简单地加载并使用它。
我想知道如何将密钥写入和加载到 PEM 文件? openssl 是否具有这样做的现有功能?我对密钥是否以任何格式编码没有偏好,只要加载后我可以使用它。任何例子都会很棒。
【问题讨论】:
-
这是从 2009 年开始的(并且 OP 有问题),但看起来确实有函数调用可以满足您的需求。探索 OP 所做的一些事情可能会导致解决方案:openssl.6102.n7.nabble.com/…