如何使用 X509Extension 值?
How to use X509Extension value?
1)
byte[] crldpExt = cert.getExtensionValue(X509Extensions.CRLDistributionPoints.getId());
String skiOid = X509Extensions.AuthorityKeyIdentifier.getId();
CRLDistributionPoints
和 AuthorityKeyIdentifier
在 Bouncy Castle 1.46 中已弃用。根据 GrepCode X509Extension
值应该在这个地方使用。但我没有得到 "How to use"。
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) CRLDistributionPoints
和 AuthorityKeyIdentifier
使用 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());
1)
byte[] crldpExt = cert.getExtensionValue(X509Extensions.CRLDistributionPoints.getId());
String skiOid = X509Extensions.AuthorityKeyIdentifier.getId();
CRLDistributionPoints
和 AuthorityKeyIdentifier
在 Bouncy Castle 1.46 中已弃用。根据 GrepCode X509Extension
值应该在这个地方使用。但我没有得到 "How to use"。
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) CRLDistributionPoints
和 AuthorityKeyIdentifier
使用 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());