LINUX.ORG.RU

Неправильный порядок в openssl asn1parse


0

0

Добрейшей ночи, друзья.

Ситуация следующая: делаю я себе ASN.1 структуру.
Делаю с помощью утилиты из openssl. Называется она asn1parse.
Формат ASN.1 структуры берется из конфига, который выглядит вот так:

asn1=SEQUENCE:header

[header]
f1=SET:keys
f2=SEQUENCE:aux

[keys]
field1=SEQUENCE:K1
field2=SEQUENCE:sign

[K1]
algID=FORMAT:HEX,OCT:80060700
alias=UTF8String:gostSign
f3=SEQUENCE:Q
f4=SEQUENCE:params
f5=SEQUENCE:curve_params
f6=SEQUENCE:P
r=INTEGER:0x4000

[sign]
rx=INTEGER:0x64DB
s=INTEGER:0x11F6

[Q]
x=INTEGER:0x8000
y=INTEGER:0x01

[params]
f1=SEQUENCE:field_params
[field_params]
p=INTEGER:0x2BAA

[curve_params]
a=INTEGER:0x6026
b=INTEGER:0x75C7


x=INTEGER:0x14AA
y=INTEGER:0x0234

[aux]
f1=NULL

И проблема в следующем: если посмотрите в секцию [keys], то увидите там 2 последовательности - K1 и sign, содержимое которых описывается ниже. Так вот, при генерации ASN.1 структуры эти 2 штуки почему-то переставляются местами, то есть сначала идет sign, а потом K1, что противоречит конфигу.

И, собственно, вопрос - почему так происходит? Почему они переставляются?

P.S. Если что, то сгенерить ASN.1 из конфига можно так: openssl asn1parse -genconf <конфиг> -out <выходной файл>

Посмотреть, что получилось можно так: openssl asn1parse -inform DER -i -in <ASN.1 файл>



Последнее исправление: dzeban (всего исправлений: 1)

Потому что SET. Если была бы SEQUENCE, он не имел бы права переставить, а так выбирает любой порядок.

rymis ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.