Как декодировать байты ASN1 для извлечения информации?
Я пытаюсь декодировать ASN1, используя кодирование PER, в качестве входной строки я привожу строку Hexa: " 04 39 04 9E B7 DB 60 50 10 0D 0A 90 D8 24 B0 0A 76 AB 9A", и я хочу извлечь из этой входной информации тот:
UL-CCCH-Message
message: cellUpdate (0)
cellUpdate
u-RNTI
srnc-Identity: 0e40 [bit length 12, 4 LSB pad bits, 0000 1110 0100 .... decimal value 228]
s-RNTI: 127ad0 [bit length 20, 4 LSB pad bits, 0001 0010 0111 1010 1101 .... decimal value 75693]
startList: 4 items
Item 0
STARTSingle
cn-DomainIdentity: ps-domain (1)
start-Value: b6c0a0 [bit length 20, 4 LSB pad bits, 1011 0110 1100 0000 1010 .... decimal value 748554]
Кто-нибудь есть идея, как это сделать с Java?
2 ответа
Используйте существующую библиотеку, а не пишите свою. Рассмотрим http://harmony.apache.org/subcomponents/classlibrary/asn1_framework.html
Вы должны иметь спецификацию ASN.1 для передачи компилятору ASN.1. Компилятор ASN.1 сгенерирует кодер / декодер для преобразования двоичных данных в декодированный объект Java. Вы можете найти большой список компиляторов ASN.1/Java по адресу http://www.itu.int/en/ITU-T/asn1/Pages/Tools.aspx (некоторые бесплатные, некоторые коммерческие).