我有一个用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)
最佳答案
您可以知道该异常意味着仅从其网站下载bouncycastle源。
然后遵循堆栈跟踪中显示的文件,在本例中为ASN1Boolean.java。
此异常表示ASN1包含一个标签BOOLEAN,其字段的长度为!= 1。
由于该地址被屏蔽,我无法下载您的文件。
无论如何,请尝试使用其他工具对其进行解码,以确保它是ASN.1编码错误。
关于java - 充气城堡api出现asn1错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43654454/