X500Principal杰出名称顺序
我正在使用Bouncycastle lib使用X509v3CertificateBuilder类从PKCS10请求生成证书。
它返回构建X509CertificateHolder对象,该对象包含生成的证书。 如果我在持有者上调用getIssuer,它会以正确的顺序返回发行者专有名称(如果我在发行者证书上调用getSubjectX500Principal(),则返回相同的名称),如果我使用java CertificateFactory解析持有者的编码版本,则getIssuerX500Principal ()方法生成的证书以相反的顺序返回DN,有什么不对?
这是我正在尝试做的示例代码:
X509CertificateHolder holder = certBuilder.build(sigGen); holder.getIssuer(); //Returns the DN in the correct order (same as in issuer cert) CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate) certFactory.generateCertificate(new ByteArrayInputStream(holder.getEncoded())); cert.getIssuerX500Principal().getName(); //Returns issuer DN in reverse order
由于我需要比较专有名称,我通过使用LdapName类解析DN并比较解析的rdns来解决:
boolean DNmatches(X500Principal p1, X500Principal p2) { List rdn1 = new LdapName(p1.getName()).getRdns(); List rdn2 = new LdapName(p2.getName()).getRdns(); if(rdn1.size() != rdn2.size()) return false; return rdn1.containsAll(rdn2); }
- java.lang.IllegalArgumentException:string curve25519 not a OID bouncycastle 1.52
- 使用BouncyCastle从文件中读取椭圆曲线私钥
- ColdFusion 10中的BouncyCastle库
- 使用Bouncy Castle的C#RSA解密
- 为什么我的密钥标识符不匹配?
- 为什么在用充气城堡解密后附加这些方形符号?
- PBEWITHSHA256AND128BITAES-CBC-BC在RedHat 6.4上创建java.security.NoSuchAlgorithmException
- 使用“RSA / ECB / PKCS7Padding”与Bouncy Castle
- ECDSA算法教程对字符串进行签名