gpt4 book ai didi

java - 如何使用X509Extension值?

转载 作者:行者123 更新时间:2023-11-30 06:57:50 26 4
gpt4 key购买 nike

1)

byte[] crldpExt = cert.getExtensionValue(X509Extensions.CRLDistributionPoints.getId());
String skiOid = X509Extensions.AuthorityKeyIdentifier.getId();

CRLDistributionPointsAuthorityKeyIdentifier 在 Bouncy CaSTLe 1.46 中已弃用。根据 GrepCode X509Extension 值应该在这个地方使用。但我没有得到“如何使用”。

2) V3TBSCertificateGenerator.setSubject(x500Name);

根据新文档,它应该可以工作。但它给出了错误,它不适用于参数 (X500Name) 将其更改为 (X509Name)。但 X509Name 已被弃用。

3)

X509Principal principal = PrincipalUtil.getSubjectX509Principal(x509cert);
Vector <?> values = principal.getValues(X509Name.CN);
if (cn != null)
certificate.setCn(cn.get(0).toString());

由于 X509Name 已被弃用。这就是为什么我将其更改为以下内容:

X500Name x500name = new JcaX509CertificateHolder(x509cert).getSubject();
RDN[] cn = null;
cn = x500name.getRDNs(BCStyle.CN);
if (cn != null)
certificate.setCn(cn.toString());

是否正确。如果我错了,请告诉我。

最佳答案

1) CRLDistributionPointsAuthorityKeyIdentifier 使用 X509Extension在 BouncycaSTLe 1.46 中可用

cert.getExtensionValue(X509Extension.cRLDistributionPoints.getId());
String skiOid = X509Extension.authorityKeyIdentifier.getId();

2) 使用V3TBSCertificateGenerator.setSubject(x500Name); 它在 1.46 中可用且未弃用。请参阅V3TBSCertificateGenerator 。确保您正确导入了 x500Name org.bouncycaSTLe.asn1.x500.X500Name

3)或者您可以使用X500Name.getInstance()

X500Name x500name = X500Name.getInstance(x509cert.getSubjectX500Principal().getEncoded());
RDN cn = x500name.getRDNs(BCStyle.CN)[0];
String cnAsString = IETFUtils.valueToString(cn.getFirst().getValue());

关于java - 如何使用X509Extension值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41478963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com