首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决"DerValue.get OID,而不是OID"?

如何解决"DerValue.get OID,而不是OID"?
EN

Stack Overflow用户
提问于 2017-08-23 02:47:28
回答 1查看 1.3K关注 0票数 0

我希望创建一个具有证书策略扩展的证书,并使用以下代码。

代码语言:javascript
复制
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));

但是抛出了一个异常:

代码语言:javascript
复制
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)

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-23 07:28:35

sun.security.util.DerValue (非x509)基本上是ASN.1中定义和编码的十几种类型中任何一种的包装器/持有者;DerValue(String)构造函数只创建(包含)ASN.1类型的PrintableStringUTF8String (不是OID)。

有一个不同的类sun.security.util.ObjectIdentifier,它专门表示OID,它有一个(String)构造函数,它将文本格式解析为OID对象:

代码语言:javascript
复制
 import sun.security.util.ObjectIdentifier;
 ...
 ObjectIdentifier oid = new ObjectIdentifier ("2.5.29.32.1");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45829854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档