Subject: Re: [GOST] Формат подписи CMS в pygost

From: Гневашев Дмитрий <[email-masked]>
Date: Wed, 6 Dec 2017 14:37:04 +0300

06.12.2017 12:57, Sergey Matveev пишет:
>
> Да, в DER значения по-умолчанию не должны кодироваться.
>
> Если не указать что это значение по-умолчанию, то тогда оно будет
> кодироваться, что будет не валидным DER. Скорее всего, вам нужно делать
> сертификаты другой версии, которая будет закодирована:
>
>      4.1.2.1.  Version
>
>         This field describes the version of the encoded certificate.  When
>         extensions are used, as expected in this profile, version MUST be 3
>         (value is 2).  If no extensions are present, but a UniqueIdentifier
>         is present, the version SHOULD be 2 (value is 1); however, the
>         version MAY be 3.  If only basic fields are present, the version
>         SHOULD be 1 (the value is omitted from the certificate as the default
>         value); however, the version MAY be 2 or 3.
>
> и это наверняка третья, так как будут использованы расширения. Кстати,
> заметьте, тут даже явно написано что если версия 1, то значение
> опускается.
>
pyderasn так и делает, однако например, вот тут:
http://www.cryptopro.ru/certsrv/certrqxt.asp
находится тестовый УЦ КриптоПро, который выдаёт тестовые сертификаты. 
Этот УЦ возвращает ошибку формата запроса, если в нём отсутствует 
параметр version. Видимо, это ошибка УЦ, который работает на ПО от 
КриптоПро. УЦ, в котором я пытался всё это время получить сертификат, 
тоже не принимает запрос без version. Соответственно, если насильно 
прописать version в запрос, то всё нормально.

Гневашев Дмитрий