Bouncy Castle解析证书错误:java.lang.ClassCastException

ruoya503 2010-06-09 03:51:37
最近在做cer证书解析的工作,使用bouncycastle库函数进行解析。

程序如下:
public void getCert(byte[] buf){
ByteArrayInputStream bIn;
ASN1InputStream aIn;
bIn = new ByteArrayInputStream(buf);
aIn = new ASN1InputStream(bIn);
try {
seq = (ASN1Sequence )aIn.readObject();
System.out.println("it is ASN1Sequence");
X509CertificateStructure cert = new X509CertificateStructure(seq);

System.out.println("证书版本:\t"+cert.getVersion());
System.out.println("序列号:\t\t"+cert.getSerialNumber().getValue().toString(16));
System.out.println("算法标识:\t"+cert.getSignatureAlgorithm().getObjectId().getId());
System.out.println("签发者:\t\t"+cert.getIssuer());
System.out.println("开始时间:\t"+cert.getStartDate().getTime());
System.out.println("结束时间:\t"+cert.getEndDate().getTime());
System.out.println("主体名:\t\t"+cert.getSubject());
System.out.print("签名值:\t");

DERBitString signature=cert.getSignature();
String strSign=new String(Hex.encode(signature.getBytes()));
System.out.println(strSign);
System.out.println("主体公钥:\t");
SubjectPublicKeyInfo pukinfo=cert.getSubjectPublicKeyInfo();
System.out.println("\t标识符:\t"+pukinfo.getAlgorithmId().getObjectId().getId());
byte[] byPuk=pukinfo.getPublicKeyData().getBytes();
String strPuk=new String(Hex.encode(byPuk));
System.out.println("\t公钥值:\t"+strPuk);


} catch (IOException e) {
e.printStackTrace();
}

}

但是到seq = (ASN1Sequence )= aIn.readObject()的时候就出现了错误,后来发现这里得到的根本不是ASN1Object对象,而是DERUnknownTag对象。
从网上查了很多资料都说是这样的代码,可是为什么会出现这个错误呢?有么有做过或者懂得,先谢过了。。。
...全文
535 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
证书还弄过。
--
readObject()方法需要自己看看获取的是什么对象了。
ruoya503 2010-06-10
  • 打赏
  • 举报
回复
有没有人知道啊。。。自己顶下
ruoya503 2010-06-10
  • 打赏
  • 举报
回复
找到原因啦。。。原来我的cer证书是经过pem证书转换来的,格式上有pem证书的前后缀,且中间的数据经过base64编码啦。。。
ruoya503 2010-06-10
  • 打赏
  • 举报
回复
自己顶下,在线等。。。谢谢
ruoya503 2010-06-10
  • 打赏
  • 举报
回复
是啊,关键现在得到不是ASN1Object对象,而是DERUnknownTag对象。
但是我使用此程序解析crt证书,一切正常。
我的cer证书是经过base64加密的,会不会是这个原因?那应该怎么做啊?

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧