【发布时间】:2017-04-27 09:55:51
【问题描述】:
我有一个使用 Bouncy Castle API 用 java 编写的 asn1 解析器。它运行良好,并且在解析数百万个文件时运行良好 2 年。
现在对于一个特定的文件,我有一个例外,但我无法准确理解它是在哪里以及为什么生成的。也许这只是一个损坏的流,但我希望能够进行低级别分析并了解异常的含义。
有人对这些课程有经验吗?
代码
ASN1InputStream stream =new ASN1InputStream(new ByteArrayInputStream(
(byte[]) asn1));
stream.readObject();
堆栈跟踪
java.lang.IllegalArgumentException: BOOLEAN 值应该有 1 个字节 在 org.bouncycastle.asn1.ASN1Boolean.fromOctetString(未知来源) 在 org.bouncycastle.asn1.ASN1InputStream.createPrimitiveDERObject(未知来源) 在 org.bouncycastle.asn1.ASN1StreamParser.readObject(未知来源) 在 org.bouncycastle.asn1.ASN1StreamParser.readVector(未知来源) 在 org.bouncycastle.asn1.ASN1StreamParser.readTaggedObject(未知来源) 在 org.bouncycastle.asn1.ASN1InputStream.buildObject(未知来源) 在 org.bouncycastle.asn1.ASN1InputStream.readObject(未知来源) 在 com.xx.yyy.parser.Asn1Parser.parseHorizontal(Asn1Parser.java:384)
【问题讨论】:
-
可以分享一下 asn1 文件吗?它似乎没有正确编码。
-
你可以从地址下载:s000.tinyupload.com/?file_id=95619810813110768147是一个大文件,有很多记录,问题在记录2387如果我没有在记录划分中出错
标签: java parsing bouncycastle asn.1