首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取X509证书的公钥长度

获取X509证书的公钥长度
EN

Stack Overflow用户
提问于 2020-09-24 18:48:55
回答 1查看 188关注 0票数 0

在给定X509对象中的证书的情况下,我想计算出它的公钥的长度,类似于this CLI command

代码语言:javascript
复制
$ openssl x509 -in certificate.crt -text -noout | grep "Public-Key"
RSA Public-Key: (2048 bit)

我似乎找不到一种从C API中提取该信息的方法。

我找到了this old question,但它似乎依赖于访问EVP_PKEY的内部结构,这是我不能做的,因为我可以得到一个不完整的类型错误:

代码语言:javascript
复制
server.c:233:27: error: dereferencing pointer to incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
         switch (public_key->type) {
                           ^~
EN

回答 1

Stack Overflow用户

发布于 2020-09-26 04:45:40

OpenSSL最新版本的公共接口不提供EVP_PKEY structure成员,不能直接访问。

但是,通过EVP_PKEY_get*函数,OpenSSL提供了对其中一些参数的访问。

因此,如果您知道要查询的X509证书包含RSA,那么您可以首先通过调用EVP_PKEY_get0_RSA获取对reference的引用,然后通过调用RSA_bits获取以位为单位的模大小

代码应该看起来像这样:

代码语言:javascript
复制
EVP_PKEY *pub_key = ...;
RSA *rsa = EVP_PKEY_get0_RSA(pub_key);

printf("EVP_PKEY_size(pub_key): %d\n", RSA_bits(rsa));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64044881

复制
相关文章

相似问题

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