我有一个使用 Bouncy CaSTLe API 用 java 编写的 asn1 解析器。它运行良好,并且在两年内解析了数百万个文件,运行良好。
现在,对于一个特定的文件,我有一个异常(exception),但我无法准确理解它的生成位置和原因。也许这只是一个损坏的流,但我希望能够进行低级分析并了解异常的含义。
有人有这些类(class)的经验吗?
代码
ASN1InputStream stream =new ASN1InputStream(new ByteArrayInputStream(
(byte[]) asn1));
stream.readObject();
堆栈跟踪
java.lang.IllegalArgumentException: BOOLEAN value should have 1 byte in it at org.bouncycastle.asn1.ASN1Boolean.fromOctetString(Unknown Source) at org.bouncycastle.asn1.ASN1InputStream.createPrimitiveDERObject(Unknown Source) at org.bouncycastle.asn1.ASN1StreamParser.readObject(Unknown Source) at org.bouncycastle.asn1.ASN1StreamParser.readVector(Unknown Source) at org.bouncycastle.asn1.ASN1StreamParser.readTaggedObject(Unknown Source) at org.bouncycastle.asn1.ASN1InputStream.buildObject(Unknown Source) at org.bouncycastle.asn1.ASN1InputStream.readObject(Unknown Source) at 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/