【发布时间】:2020-06-08 23:40:40
【问题描述】:
我使用硬编码的 ec-kyes 来测试我的应用程序。 有ecdsa的例子:
const char pem_ecdsa_prv_key[] = {
"-----BEGIN EC PRIVATE KEY-----\n"
"MHcCAQEEIAGOaT3/9PJxSIFKPbvEhj61jY3CGPsgA46IVZlvIlnGoAoGCCqGSM49\n"
"AwEHoUQDQgAE6Dw87+AYjRQzNsb3RmANmNENCZArERfCKZ5M9+2S/yomA6fmFdeb\n"
"XNXeV066Nk4jnuwF1ZKqCBoMBjsnm0jlCw==\n"
"-----END EC PRIVATE KEY-----\n"
};
const char pem_ecdsa_pub_key[] = {
"-----BEGIN PUBLIC KEY-----\n"
"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Dw87+AYjRQzNsb3RmANmNENCZAr\n"
"ERfCKZ5M9+2S/yomA6fmFdebXNXeV066Nk4jnuwF1ZKqCBoMBjsnm0jlCw==\n"
"-----END PUBLIC KEY-----\n"
};
它是通过 ssh-keygen 实用程序生成的。 我需要将此 pem 字符串转换为 openssl EC_KEY 格式以将其与签名/验证 openssl 函数一起使用。 我是这样转换的(省略了错误检查):
EC_KEY *ecdsa = NULL;
BIO *bio= NULL;
/* read pem string to openssl bio format */
bio = BIO_new_mem_buf(pem_ecdsa_prv_key,sizeof(pem_ecdsa_prv_key));
/* convert bio to ec_key */
ecdsa = EC_KEY_new();
PEM_read_bio_ECPrivateKey(bio, &ecdsa, NULL, NULL);
现在我为pem_ecdsa_prv_key 和pem_ecdsa_pub_key 进行此转换。
我应该只对私钥数组执行此操作,因为它也包含公钥吗?
【问题讨论】:
标签: openssl public-key ecdsa