【问题标题】:asn1 error with bouncy castle api充气城堡 api 的 asn1 错误
【发布时间】: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.parseHorizo​​ntal(Asn1Parser.java:384)

【问题讨论】:

标签: java parsing bouncycastle asn.1


【解决方案1】:

您可以知道异常意味着什么,只需从其网站下载 bouncycastle 源。 然后按照堆栈跟踪中显示的文件进行操作,在本例中为 ASN1Boolean.java。 此异常意味着 ASN1 包含一个标签 BOOLEAN,其字段长度为 != 1。

我无法下载您的文件,因为我已阻止此地址。 无论如何,尝试使用其他工具对其进行解码,以确保它是 ASN.1 编码错误。

【讨论】:

  • 您对翻译 ASN1 的工具有什么建议吗?
  • 我改了文件的地址..如果你想现在可以下载wetransfer.com/downloads/…
  • 也许你可以使用lapo.it/asn1js。但首先你必须得到受影响的记录。
猜你喜欢
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 2017-08-21
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 2014-09-19
相关资源
最近更新 更多