如何在C中使用openssl从私钥中提取公钥

时间:2018-09-18 23:42:45

标签: c openssl

我在命令行中知道给定私钥的pem文件,您可以从中提取公钥。

想知道如何使用openssl的C库实现类似的功能?

1 个答案:

答案 0 :(得分:0)

首先,读取密钥:

EVP_PKEY *key;
FILE *fpkey;
OpenSSL_add_all_algorithms();
key = EVP_PKEY_new();
fpkey = fopen ("key.pem", "r");
PEM_read_PrivateKey(fpkey, &key, NULL, NULL);
fclose(fpkey);

现在您拥有EVP_PKEY结构,您可以保存公钥:

FILE* fppubkey = fopen("pubkey.pem", "wb");
PEM_write_PUBKEY(fppubkey, key);
fclose(fppubkey);

确保添加错误检查。