如何在Java的Bouncy Castle中使用V2Form?
我正在开发一个配置文件证书软件,需要使用V2Form作为BasicCertificateID如何在Java的Bouncy Castle中使用V2Form?,java,security,certificate,bouncycastle,Java,Security,Certificate,Bouncycastle,我正在开发一个配置文件证书软件,需要使用V2Form作为BasicCertificateID issuerGenName = new GeneralNames(new GeneralName(new X500Name(issuerName))); ASN1Integer issuerSerialNumber = new ASN1Integer(Integer.parseInt(mainWindow.getIssuerSerialNumber
issuerGenName = new GeneralNames(new GeneralName(new X500Name(issuerName)));
ASN1Integer issuerSerialNumber = new ASN1Integer(Integer.parseInt(mainWindow.getIssuerSerialNumber()));
//IssuerSerial baseCertificateID = new IssuerSerial(issuerGenName, issuerSerialNumber);
ASN1EncodableVector vec = new ASN1EncodableVector();
ASN1EncodableVector vecS = new ASN1EncodableVector();
vecS.add(issuerGenName);
vecS.add(issuerSerialNumber);
ASN1Sequence seq = new DERSequence(vecS);
IssuerSerial baseCertificateID = IssuerSerial.getInstance(seq);
ASN1TaggedObject tagged = new DERTaggedObject(0, baseCertificateID);
//TODO Refazer
vec.add(issuerGenName);
vec.add(tagged);
ASN1Sequence seq2 = new DERSequence(vec);
V2Form teste = new V2Form(seq2);
issuer = new AttCertIssuer(teste);
attIssuer = new AttributeCertificateIssuer(issuer);
但这行不通,我做错了什么?ASN1TaggedObject taged=new-DERTaggedObject(0,baseCertificateID) 应该读
ASN1TaggedObject taged=新的DERTaggedObject(false,0,baseCertificateID) 对象是隐式的,而不是显式标记的 还有一件事,在BC中,您应该始终使用模式V2Form.getInstance(),而不是调用接受序列的构造函数。我们正在慢慢地消除这些问题,主要的问题是它并不真正安全,在某些情况下,您可能会意外地得到类强制转换异常,因为序列构造函数无法处理getInstance()可以处理的所有情况 对于BC来说,V2Form确实需要更多的构造函数,它们应该在接下来的几天内的下一个测试版(149b09)中出现 问候, 大卫