Я должен анализировать ASN1 закодированные байтовые массивы на объект Java. Моя компания предоставила мне документацию с очень подробными структурами. Однако в их примере данных синтаксического анализа (без кода, только отображение из битов значений):Анализ данных ASN1
- Преобразование последние 7 байтов из HEX в двоичный
- Присвоение значений на основе конкретных битов в этих 7 байт
нет оплата за теги и длины. В этом примере также пропущены байты обработки. Я не уверен, как я могу разобрать данные, используя эту библиотеку Bouncy Castle ASN1.
Это данные:
И это отображение:
22 0....... some field = 0
.01000.. some field = 8
......1. some field = 1
.......0 some field = 0
ли в ASN1 кодированные данные должны быть в формате Tag-Length-Value или может это использовать какую-то специфическую грамматику?
Сейчас это мой код:
ASN1InputStream asn1InputStream = new ASN1InputStream(
new ByteArrayInputStream(
ByteArrayUtil.hexStringToByteArray(
"16" + "07" +
"22" + "00" + "00" + "19" + "BF" + "12" + "E0")));
ASN1Primitive deria5String;
while ((deria5String = asn1InputStream.readObject()) != null) {
//process
}
Синтаксический эти последние 7 байт дает мне объект типа DERIA5String.
Edit 1: Вот определение ASN1 структур я должен получать чтения InputStream:
И это пример чтения InputStream, что у меня есть в документации:
Вы могли бы добавить определение грамматики Samle ASN1 для данных образца? –