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' –