2017-04-27 74 views
1

ASN1错误我用Java编写的与充气城堡API一个ASN1解析器。它运行良好,并且在解析数百万个文件的2年中运行良好。与充气城堡API

现在对于一个特定的文件我有一个例外,但我不能确切位置以及为何产生理解。也许这只是一个腐败的流,但我希望能够做一个低级别的分析,并了解什么是例外。

有人有这些类的经历吗?

代码

ASN1InputStream stream =new ASN1InputStream(new ByteArrayInputStream(
       (byte[]) asn1)); 
stream.readObject(); 

堆栈跟踪

java.lang.IllegalArgumentException异常:布尔值应在org.bouncycastle.asn1.ASN1Boolean.fromOctetString(来源不明) 它 有1个字节at org.bouncycastle.asn1.ASN1InputStream.createPrimitiveDERObject(Unknown Source) at org.bouncycastle.asn1.ASN1StreamParser.readObject(Unknown Source) at org.bouncycastle.asn1.ASN1StreamP (未知源) at org.bouncycastle.asn1.ASN1StreamParser.readTaggedObject(Unknown Source)源) 在com.xx.yyy.parser.Asn1Parser.parseHorizo​​ntal(Asn1Parser.java:384)

+1

可以共享文件ASN1?它似乎没有正确编码。 – Egl

+0

您可以从地址下载:http://s000.tinyupload.com/?file_id=95619810813110768147与许多记录的问题是在创纪录的2387如果我没有犯错的记录师 –

回答

1

你可以知道什么异常意味着刚刚从下载其网站BouncyCastle的来源。 然后按照堆栈跟踪显示的文件,在这种情况下ASN1Boolean.java。 此例外意味着ASN1已经包含一个标签BOOLEAN,其长度为!= 1的字段。

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

+0

你有一些大的文件有关翻译ASN1的工具的建议? –

+0

我更改了文件的地址..如果您想要现在可以下载https://wetransfer.com/downloads/884f3e410ad80e29f5e01a82fc0c0e9f20170429144140/6f28a7 –

+0

也许您可以使用https://lapo.it/asn1js/。但首先你必须得到受影响的记录。 – Egl