2017-04-27 3 views
1

Ich habe einen Asn1 Parser in Java mit Bouncy Castle API geschrieben. Es funktioniert gut und es funktionierte gut für 2 Jahre Parsing Millionen von Dateien.asn1 Fehler mit Hüpfburg api

Jetzt für eine bestimmte Datei habe ich eine Ausnahme, aber ich kann nicht genau verstehen, wo und warum es generiert wird. Vielleicht ist das nur ein korrupter Stream, aber ich würde gerne in der Lage sein, eine Low-Level-Analyse durchzuführen und zu verstehen, worum es bei der Exception geht.

Jemand hat Erfahrung mit diesen Klassen?

-Code

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

Stapelüberwachung

java.lang.IllegalArgumentException: BOOLEAN Wert sollte bei org.bouncycastle.asn1.ASN1Boolean.fromOctetString in es 1 Byte haben (Unknown Source) at org.bouncycastle.asn1.ASN1InputStream.createPrimitiveDERObject (Unbekannte Quelle) bei org.bouncycastle.asn1.ASN1StreamParser.readObject (Unbekannte Quelle) bei org.bouncycastle.asn1.ASN1StreamP arser.readVector (Unknown Source) bei org.bouncycastle.asn1.ASN1StreamParser.readTaggedObject (Unknown Source) bei org.bouncycastle.asn1.ASN1InputStream.buildObject (Unknown Source) bei org.bouncycastle.asn1.ASN1InputStream.readObject (Unbekannt Source) bei com.xx.yyy.parser.Asn1Parser.parseHorizontal (Asn1Parser.java:384)

+1

können Sie die Datei asn1 freigeben? Es scheint, dass es nicht korrekt codiert ist. – Egl

+0

Sie können es von der Adresse herunterladen: http://s000.tinyupload.com/?file_id=95619810813110768147 Ist eine große Datei mit vielen Datensätzen das Problem ist in Datensatz 2387 Wenn ich keine Fehler in der Datensatz-Division gemacht habe –

Antwort

1

können Sie wissen, was die Ausnahme bedeutet nur bouncycastle Quelle von Netz herunterzuladen. Und dann folgen Sie den Dateien in der Stack-Trace, in diesem Fall ASN1Boolean.java. Diese Ausnahme bedeutet, dass der ASN1 ein Tag BOOLEAN mit einem Feld mit der Länge! = 1 eingefügt hat.

Ich kann Ihre Datei nicht herunterladen, da diese Adresse blockiert ist. Wie auch immer, versuchen Sie es mit einem anderen Tool zu entschlüsseln, um sicherzustellen, dass es sich um einen ASN.1-Kodierungsfehler handelt.

+0

Haben Sie einige Beratung für Tools zur Übersetzung von ASN1? –

+0

Ich ändere die Adresse der Datei ..wenn Sie möchten, können Sie jetzt herunterladen https://wetransfer.com/downloads/884f3e410ad80e29f5e01a82fc0c0e9f20170429144140/6f28a7 –

+0

Vielleicht können Sie https://lapo.it/asn1js/ verwenden. Aber zuerst müssen Sie den betroffenen Datensatz bekommen. – Egl

Verwandte Themen