首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenSSL C API -在DER编码中获取公钥的密钥

OpenSSL C API -在DER编码中获取公钥的密钥
EN

Stack Overflow用户
提问于 2020-11-06 08:07:17
回答 1查看 419关注 0票数 1

在使用DER中的OpenSSL API时,我想确定以C格式编码的公钥的密钥长度。

PEM格式编码的密钥来实现这一点是非常直接的:

代码语言:javascript
复制
FILE *fp = fopen(argv[1], "rb");
RSA *rsa_key = PEM_read_RSA_PUBKEY(fp, NULL, NULL, NULL);
int keylength = RSA_size(rsa_key);

(假设要加载的键已作为参数传递)

不幸的是,没有等效的DER_read_RSA_PUBKEY函数。我一直在尝试使用i2d_RSA_PUBKEY_fpd2i_RSA_PUBKEY_fp,但没有成功的分段错误。

_RSA_PUBKEY和_RSAPublicKey的区别似乎在于前者使用SubjectPublicKeyInfo (证书公钥)结构,后者使用PKCS#1 RSAPublicKey结构。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-06 08:59:26

d2i_*函数族可用于将DER转换为openssl内部数据结构。

因此,您应该能够使用:

代码语言:javascript
复制
FILE *fp = fopen(argv[1], "rb");
RSA *rsa_key = d2i_RSAPublicKey_fp(fp, NULL);
int keylength = RSA_size(rsa_key);

去实现你想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64710875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档