Как декодировать байты 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 (некоторые бесплатные, некоторые коммерческие).

Другие вопросы по тегам