В данном подразделе описано использование алгоритмов подписи по ГОСТ Р 34.10 в CMS.
Идентификаторы алгоритма подписи указаны в поле signatureAlgorithm структуры Signerlnfo (см. 7.3), вложенной в структуру SignedData, а также в поле signatureAlgorithm структуры Signerlnfo атрибутов удостоверяющей подписи.
Значения подписи указаны в поле signature структуры Signerlnfo, вложенной в структуру SignedData, а также в поле подписи Signerlnfo атрибутов удостоверяющей подписи.
Идентификаторы объектов АСН.1, параметры, битовое представление в точности совпадает с представлением подписи в сертификате, описанном в [2].
Сертификат, используемый для проверки подписи сообщений, должен содержать расширение KeyUsage, а данное расширение, в свою очередь, - флаг digitalSignature.
7.7.1 Специфика использования ГОСТ Р 34.10 с ключом 256 бит
Алгоритм подписи по ГОСТ Р 34.10 с ключом 256 бит используют для формирования ЭП в форме двух 256-битных чисел r и s по алгоритму ГОСТ Р 34.11 с длиной хэш-кода 256 бит. Ее представление в виде строки байтов состоит из 64 байтов: при этом первые 32 байта содержат число s в представлении big-endian (старший байт записывается первым), а вторые 32 байта содержат число r в представлении big-endian.
GostR3410-2012-256-Signature ::= OCTET STRING (SIZE (64))
7.7.2 Специфика использования ГОСТ Р 34.10 с ключом 512 бит
Алгоритм подписи по ГОСТ Р 34.10 с ключом 512 бит используют для формирования ЭП в форме двух 512-битных чисел r и s по алгоритму ГОСТ Р 34.11 с длиной хэш-кода 512 бит. Ее представление в виде строки байтов состоит из 128 байтов: при этом первые 64 байта содержат число s в представлении big-endian (старший байт записывается первым), а вторые 64 байта содержат число r в представлении big-endian.
GostR3410-2012-512-Signature ::= OCTET STRING (SIZE (128))