java - 充气城堡 api 出现 asn1 错误

标签 java parsing bouncycastle asn.1

我有一个使用 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/

相关文章:

java - 如何从 Arraylist 中删除偶数索引直到列表变空?

java - 键盘输入处理程序不起作用

python - 同时解析,python

JavaScript:动态字段名称

parsing - 如何解析任意长度的文件?

grails - 在Grails 2.5.0中找不到BouncyCaSTLeProvider类

java - 在Java中使用Jsch和Sshj的RSA SSH2私钥问题

java - 如何从同一个 it.next() 获取多个值

java - 无法使用 Selenium 获取 google 新闻页面中的新闻文章链接

java - 椭圆曲线公钥(Java - bouncycaSTLe): How to get 32 byte X and 32 byte Y value from ECPublicKey. toString()