我希望创建一个具有证书策略扩展的证书,并使用以下代码。
CertificatePolicyId certificatePolicyId2=new CertificatePolicyId(new DerValue("2.5.29.32.1"));
PolicyInformation policyInformation2=new PolicyInformation(certificatePolicyId2, null);
List<PolicyInformation> policyInformations=new ArrayList<PolicyInformation>();
policyInformations.add(policyInformation2);
certificateExtensions.set(CertificatePoliciesExtension.NAME, new CertificatePoliciesExtension(policyInformations));但是抛出了一个异常:
java.io.IOException: DerValue.getOID, not an OID 19
at sun.security.util.DerValue.getOID(DerValue.java:447)
at sun.security.x509.CertificatePolicyId.<init>(CertificatePolicyId.java:56)如何设置String arg0 of new DerValue(String arg0)?
谢谢!
发布于 2017-08-23 07:28:35
sun.security.util.DerValue (非x509)基本上是ASN.1中定义和编码的十几种类型中任何一种的包装器/持有者;DerValue(String)构造函数只创建(包含)ASN.1类型的PrintableString或UTF8String (不是OID)。
有一个不同的类sun.security.util.ObjectIdentifier,它专门表示OID,它有一个(String)构造函数,它将文本格式解析为OID对象:
import sun.security.util.ObjectIdentifier;
...
ObjectIdentifier oid = new ObjectIdentifier ("2.5.29.32.1");https://stackoverflow.com/questions/45829854
复制相似问题