Разобрать кодировку ASN.1 с использованием Java
Как я могу прочитать файл ASN.1, используя Java, если файл имеет следующий синтаксис:
Tagged[6]IMPLICIT
Sequence
Tagged[0]IMPLICIT
OCTET STRING[3](UGW)
Tagged[1]IMPLICIT
OCTET STRING[5](nair1)
Tagged[3]IMPLICIT
OCTET STRING[13](6430408182034)
Tagged[5]IMPLICIT
OCTET STRING[19](201211113336+0300)
Tagged[6]IMPLIIT
OCTET STRING[5](nair1)
0 ответов
ASN.1 ваше определение выглядит ошибочным. Я бы предложил исправить это, как показано ниже:
My-Schema DEFINITIONS IMPLICIT TAGS ::=
BEGIN
MySequence ::= SEQUENCE
{
str1 OCTET STRING (SIZE(1..50)),
str2 OCTET STRING (SIZE(1..50)),
str3 OCTET STRING (SIZE(1..50)),
str4 OCTET STRING (SIZE(1..50)),
str5 OCTET STRING (SIZE(1..50))
}
END
Это может быть легко закодировано, используя bountycastle ASN.1 API
import org.bouncycastle.asn1.*;
ASN1EncodableVector v = new ASN1EncodableVector();
v.add(new DEROctetString("str1".getBytes()));
v.add(new DEROctetString("str2".getBytes()));
v.add(new DEROctetString("str3".getBytes()));
v.add(new DEROctetString("str4".getBytes()));
byte[] encoded = new DERSequence(v).getEncoded();