我有一个用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.parseHorizo​​ntal(Asn1Parser.java:384)

最佳答案

您可以知道该异常意味着仅从其网站下载bouncycastle源。
然后遵循堆栈跟踪中显示的文件,在本例中为ASN1Boolean.java。
此异常表示ASN1包含一个标签BOOLEAN,其字段的长度为!= 1。

由于该地址被屏蔽,我无法下载您的文件。
无论如何,请尝试使用其他工具对其进行解码,以确保它是ASN.1编码错误。

关于java - 充气城堡api出现asn1错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43654454/

10-10 07:28