首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >X509Certificate : X509CertificateHolder to Bouncycastle?

X509Certificate : X509CertificateHolder to Bouncycastle?
EN

Stack Overflow用户
提问于 2011-06-16 18:24:50
回答 3查看 18.2K关注 0票数 46

在r146之前的版本中,可以直接创建X509Certificate对象。现在,该应用程序接口已被弃用,新的应用程序接口仅提供X509CertificateHolder对象。

我找不到一种将X509CertificateHolder转换为X509Certificate的方法。

如何做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-22 20:04:55

我会回答我自己的问题,但不会删除它,以防其他人遇到同样的问题:

代码语言:javascript
复制
return new JcaX509CertificateConverter().setProvider( "BC" )
  .getCertificate( certificateHolder );

对于属性证书:

代码语言:javascript
复制
return new X509V2AttributeCertificate( attributeCertificateHolder.getEncoded() );

不是很好,因为它是编码和解码,但它工作。

票数 89
EN

Stack Overflow用户

发布于 2017-06-29 22:48:18

另一个选项是这个:)

代码语言:javascript
复制
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
InputStream in = new ByteArrayInputStream(certificateHolder.getEncoded());
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(in);
票数 3
EN

Stack Overflow用户

发布于 2017-06-30 18:03:34

这是一种将X509CertificateHolder发送到X509CertificatetoString的可能性。(代码的第一句话无关紧要)

代码语言:javascript
复制
X509CertificateHolder selfSignedCertificate = CertificateUtils.selfSignCertificate(certificationRequest, keyPair.getPrivate());
byte[] content = selfSignedCertificate.getEncoded();
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) certificateFactory.generateCertificate(new ByteArrayInputStream(content));
logger.debug("cert: {}", cert.toString());

.

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

https://stackoverflow.com/questions/6370368

复制
相关文章

相似问题

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