0
的x509证书我有一个x509证书在java中的主体类型和我想要得到的Policy Identifier
其中有在Certificate Policies
领域存在的价值,如何获得的策略标识符和基本约束的在Java
另外,我想在Basic Constraints
场Subject Type
的值,如所描绘的:在下面的图片描述如下图:
我的代码:
public static void main(String[] args) throws Exception {
CertificateFactory cf = CertificateFactory.getInstance("X509");
InputStream in = new FileInputStream(new File("E:\\myCert.crt"));
X509Certificate cert = (X509Certificate) cf.generateCertificate(in);
int length = cert.getCertificateExtensionOIDs().size();
String oid;
for(int i = 0; i < length; i++){
oid = cert.getCertificateExtensionOIDs().iterator().next();
byte[] UID = cert.getExtensionValue(oid);
DERObject derObject = toDERObject(UID);
if(derObject instanceof DEROctetString){
DEROctetString derOctetString = (DEROctetString) derObject;
derObject = toDERObject(derOctetString.getOctets());
}
// here I think, I should use derObject to retrieve cert info but I don't know how!?
}
public static DERObject toDERObject(byte[] data) throws IOException {
ByteArrayInputStream inStream = new ByteArrayInputStream(data);
ASN1InputStream DIS = new ASN1InputStream(inStream);
return DIS.readObject();
}
谢谢@Krzysiek,但'CertificatePolicies certificatePolicies =新CertificatePolicies(PolicyInformation.getInstance(seq.getObjectAt(certificatePolicyPos)))行; '有这个错误:'无法解析构造函数CertiicatePolicies',另外,下一行:'certificatePolicies.getPolicyInformation()'有这个错误:无法解析方法getPolicyInformation() –
@ H.Aqjn您使用的BouncyCastle的版本是?我已经编译了1.54的代码: – Krzysiek
我正在使用'org.bouncycastle:bcprov-jdk16:1.46' –