---
title: "\"Р 1323565.1.033-2020. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование российских алгоритмов электронной подписи в протоколах и форматах сообщений на основе XML\""
number: "Р 1323565.1.033-2020"
issuer: "Федеральное агентство по техническому регулированию и метрологии"
status: действует
canonical: "https://bukva.ai/docs/r-1323565-1-033-2020"
---

## "Р 1323565.1.033-2020. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование российских алгоритмов электронной подписи в протоколах и форматах сообщений на основе XML"

# "Р 1323565.1.033-2020. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование российских алгоритмов электронной подписи в протоколах и форматах сообщений на основе XML"

(утв. и введены в действие Приказом Росстандарта от 17.11.2020 N 1112-ст)

> [!IMPORTANT]
> Документ [введен](#p100009) в действие с 01.04.2021.


<div align="right">

<a id="p100001"></a>Утверждены и введены в действие<br>
Приказом Федерального<br>
агентства по техническому<br>
регулированию и метрологии<br>
от 17 ноября 2020 г. N 1112-ст

</div>


<div align="center">

<a id="p100002"></a>**РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ**

<a id="p100003"></a>**ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ**

<a id="p100004"></a>**КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ**

<a id="p100005"></a>**ИСПОЛЬЗОВАНИЕ РОССИЙСКИХ АЛГОРИТМОВ ЭЛЕКТРОННОЙ ПОДПИСИ**<br>
**В ПРОТОКОЛАХ И ФОРМАТАХ СООБЩЕНИЙ НА ОСНОВЕ XML**

<a id="p100006"></a>**Information technology. Cryptographic data security.**<br>
**Using Russian algorithms of digital signature algorithms**<br>
**with XML-based protocols and messages**

<a id="p100007"></a>**Р 1323565.1.033-2020**

</div>


<div align="right">

<a id="p100008"></a>ОКС 35.040

<a id="p100009"></a>Дата введения

</div>

1 апреля 2021 года


### <a id="p100010"></a>Предисловие


<a id="p100011"></a>1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью "КРИПТО-ПРО" (ООО "КРИПТО-ПРО")
<a id="p100012"></a>2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 "Криптографическая защита информации"
<a id="p100013"></a>3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 17 ноября 2020 г. N 1112-ст
<a id="p100014"></a>4 ВВЕДЕНЫ ВПЕРВЫЕ

<a id="p100015"></a>Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)


### <a id="p100016"></a>Введение


<a id="p100017"></a>В настоящих рекомендациях определяются способы использования российских государственных криптографических алгоритмов подписи и хэширования для создания электронной подписи XML-документов, определенной в [[1]](#p100376), а также способы передачи в XML-документах значения кода аутентификации сообщения на основе хэш-функции HMAC, описанного в [Р 50.1.113](https://bukva.ai/docs/r-50-1-113-2016). Введены также новые универсальные идентификаторы ресурсов (URI) и XML-элементы.
<a id="p100018"></a>Примечание - Основная часть настоящих рекомендаций дополнена [приложениями А](#p100293) - [Б](#p100296).


### <a id="p100019"></a>1 Область применения


<a id="p100020"></a>В настоящих рекомендациях описываются идентификаторы алгоритмов [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), [ГОСТ Р 34.10-2001](https://bukva.ai/docs/standart-gost-r-34-10-2001), [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) и [ГОСТ Р 34.11-94](https://bukva.ai/docs/standart-154), используемые при создании электронной подписи XML-документов, а также идентификаторы алгоритмов вычисления кода аутентификации сообщения на основе хэш-функции HMAC, определенного в [Р 50.1.113](https://bukva.ai/docs/r-50-1-113-2016). Помимо этого, в данных рекомендациях определены способы передачи информации о ключевом материале в XML-документе, а также идентификаторы пространств имен, префиксы и определения XML-схемы подписываемого XML-документа.
<a id="p100021"></a>XML-документы, содержащие электронную подпись, созданную с использованием российских государственных криптографических алгоритмов подписи и хэширования, могут быть переданы в рамках взаимодействия по протоколам, где используются сообщения формата XML: SOAP, WS-Security и другие.


### <a id="p100022"></a>2 Нормативные ссылки


<a id="p100023"></a>В настоящих рекомендациях использованы нормативные ссылки на следующие стандарты и рекомендации по стандартизации:
<a id="p100024"></a>[ГОСТ Р 34.10-2001](https://bukva.ai/docs/standart-gost-r-34-10-2001) <*> Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи

<a id="p100025"></a>

---

<a id="p100026"></a><*> Заменен на [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) с 01.01.2013.

<a id="p100027"></a>[ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
<a id="p100028"></a>[ГОСТ Р 34.11-94](https://bukva.ai/docs/standart-154) <**> Информационная технология. Криптографическая защита информации. Функция хэширования

<a id="p100029"></a>

---

<a id="p100030"></a><**> Заменен на [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) с 01.01.2013.

<a id="p100031"></a>[ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) Информационная технология. Криптографическая защита информации. Функция хэширования
<a id="p100032"></a>[Р 50.1.113-2016](https://bukva.ai/docs/r-50-1-113-2016) Информационная технология. Криптографическая защита информации. Криптографические алгоритмы, сопутствующие применению алгоритмов электронной цифровой подписи и функции хэширования
<a id="p100033"></a>[Р 1323565.1.023-2018](https://bukva.ai/docs/r-1323565-1-023-2018) "Информационная технология. Криптографическая защита информации. Использование алгоритмов [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) в сертификате, списке аннулированных сертификатов (CRL) и запросе на сертификат PKCS#10 инфраструктуры открытых ключей X.509"
<a id="p100034"></a>*Примечание* - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных стандартов и рекомендаций по стандартизации в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный стандарт (рекомендации по стандартизации), на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого стандарта с учетом всех внесенных в данную версию изменений. Если заменен ссылочный стандарт (рекомендации по стандартизации), на который дана датированная ссылка, то рекомендуется использовать версию этого стандарта (рекомендаций по стандартизации) с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный стандарт (рекомендации по стандартизации), на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный стандарт (рекомендации по стандартизации) отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.


### <a id="p100035"></a>3 Термины, определения и сокращения



#### <a id="p100036"></a>3.1 Термины и определения


<a id="p100037"></a>В настоящих рекомендациях применены следующие термины с соответствующими определениями.
<a id="p100038"></a>3.1.1 XML-документ: Электронный документ, сформированный при помощи расширяемого языка разметки XML.

##### <a id="p100039"></a>3.1.2 XML-схема: Описание структуры XML-документа.

<a id="p100040"></a>3.1.3 XML-элемент: Часть XML-документа или XML-схемы, ограниченная тегами.
<a id="p100041"></a>3.1.4 определение XML-схемы: Часть XML-схемы, описывающая отдельный элемент (имя элемента и его тип).
<a id="p100042"></a>3.1.5 пространство имен XML: Пространство имен, используемое для описания элементов в XML-схеме и служащее для обеспечения их уникальности в XML-документе.
<a id="p100043"></a>3.1.6 XML-префикс: Префикс, указываемый перед именем XML-элемента и/или его типа с целью исключения пересечения одноименных элементов из различных пространств имен XML.
<a id="p100044"></a>3.1.7 XML-атрибут: Часть XML-элемента, состоящая из имени атрибута и значения атрибута, сформированных в соответствии с определением XML-схемы данного XML-элемента.
<a id="p100045"></a>*Примечание* - В настоящих рекомендациях для краткости установлено, что термины "XML-элемент" и "элемент", "XML-атрибут" и "атрибут", а также "XML-префикс" и "префикс" являются синонимами.

<a id="p100046"></a>3.1.8 сообщение: Строка символов произвольной конечной длины.
<a id="p100047"></a>3.1.9 формат сообщения: Совокупность правил формирования и интерпретации сообщения.
<a id="p100048"></a>3.1.10

| <a id="p100049"></a><a id="p100050"></a>код аутентификации сообщения на основе хэш-функции (hash-based message authentication code; HMAC): Механизм обеспечения аутентичности информации на основе симметричного ключа, построенный с использованием хэш-функции.<br>[Р 50.1.113-2016, [статья 3.1.1](https://bukva.ai/docs/r-50-1-113-2016#p100033)] |
| --- |

<a id="p100051"></a>3.1.11

| <a id="p100052"></a><a id="p100053"></a>электронная цифровая подпись (signature): Строка бит, полученная в результате процесса формирования подписи.<br>[ГОСТ Р 34.10-2012, [статья 3.1.15](https://bukva.ai/docs/gost-r-34-10-2012#p100081)] |
| --- |

<a id="p100054"></a>*Примечание* - В настоящих рекомендациях в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины "электронная подпись", "цифровая подпись" и "электронная цифровая подпись" являются синонимами.

<a id="p100055"></a>3.1.12

| <a id="p100056"></a><a id="p100057"></a>ключ проверки подписи: Элемент данных, математически связанный с ключом подписи и используемый проверяющей стороной в процессе проверки цифровой подписи.<br>[ГОСТ Р 34.10-2012, [статья 3.1.3](https://bukva.ai/docs/gost-r-34-10-2012#p100041)] |
| --- |

<a id="p100058"></a>3.1.13

| <a id="p100059"></a><a id="p100060"></a>ключ подписи: Элемент секретных данных, специфичный для субъекта и используемый только данным субъектом в процессе формирования цифровой подписи.<br>[ГОСТ Р 34.10-2012, [статья 3.1.2](https://bukva.ai/docs/gost-r-34-10-2012#p100038)] |
| --- |

<a id="p100061"></a>3.1.14

| <a id="p100062"></a><a id="p100063"></a><a id="p100064"></a><a id="p100065"></a><a id="p100066"></a>хэш-функция: Функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам:<br>1) по данному значению функции сложно вычислить исходные данные, отображаемые в это значение;<br>2) для заданных исходных данных сложно вычислить другие исходные данные, отображаемые в то же значение функции;<br>3) сложно вычислить какую-либо пару исходных данных, отображаемых в одно и то же значение.<br>[ГОСТ Р 34.11-2012, [статья 3.1.6](https://bukva.ai/docs/gost-r-34-11-2012#p100053)] |
| --- |

<a id="p100067"></a>*Примечание* - В настоящих рекомендациях в целях сохранения терминологической преемственности с действующими отечественными нормативными документами и опубликованными научно-техническими изданиями установлено, что термины "хэш-функция", "криптографическая хэш-функция", "функция хэширования" и "криптографическая функция хэширования" являются синонимами.

<a id="p100068"></a>3.1.15
<a id="p100069"></a>хэш-код: Строка бит, являющаяся выходным результатом хэш-функции.
<a id="p100070"></a>[ГОСТ Р 34.11-2012, [статья 3.1.15](https://bukva.ai/docs/gost-r-34-11-2012#p100050)]

| <a id="p100071"></a>3.2 Сокращения |
| --- |


<a id="p100072"></a>В настоящих рекомендациях используют следующие обозначения:

| <a id="p100073"></a>OID | <a id="p100074"></a>- | <a id="p100075"></a>строка или последовательность десятичных цифр, однозначно идентифицирующая объект; |
| --- | --- | --- |
| <a id="p100076"></a>URI | <a id="p100077"></a>- | <a id="p100078"></a>унифицированный (единообразный) идентификатор ресурса; |
| <a id="p100079"></a>URN | <a id="p100080"></a>- | <a id="p100081"></a>единообразное название ресурса; |
| <a id="p100082"></a>XML | <a id="p100083"></a>- | <a id="p100084"></a>расширяемый язык разметки. |



### <a id="p100085"></a>4 Используемые структуры


<a id="p100086"></a>Пространства имен XML, их префиксы и идентификаторы, соответствующие используемым в рамках данных рекомендаций XML-схемам, введены в [разделе 5](#p100096).
<a id="p100087"></a>В [разделе 6](#p100121) настоящих рекомендаций описывается элемент ds:Signature, содержащий значение подписи XML-документа и информацию об алгоритмах и их параметрах, необходимых для формирования данного значения. Также настоящие рекомендации устанавливают, что элемент ds:Signature может содержать информацию об используемом алгоритме вычисления кода аутентификации сообщения на основе хэш-функции (HMAC) и значение HMAC <*>. Элемент ds:Signature описывается определениями, соответствующими трем XML-схемам: DS-схеме, DSIG11-схеме и CPXMLSEC-схеме.

<a id="p100088"></a>

---

<a id="p100089"></a><*> В настоящих рекомендациях в целях оптимизации и исключения дублирования элементов описываемых структур при работе с HMAC название элемента ds:Signature не отражает тип хранящихся в нем данных: алгоритм вычисления HMAC и значение HMAC указываются в элементах ds:SignatureMethod и ds:SignatureValue соответственно.

<a id="p100090"></a>Определения CPXMLSEC-схемы вводятся в настоящих рекомендациях впервые и являются расширением DS-схемы с целью обеспечения возможности использования национальных стандартов [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) и [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012). Для описания CPXMLSEC-схемы используются элементы из XS-схемы, описанной в [[2]](#p100379) и [[3]](#p100382). Определения из DS-схемы и DSIG11-схемы описаны в соответствии с [[1]](#p100376).
<a id="p100091"></a>Примечание - В настоящих рекомендациях некоторые комментарии в определениях DS-схемы и DSIG11-схемы были опущены в связи с упоминанием в них элементов, не используемых при формировании электронной подписи XML-документов с использованием российских криптографических алгоритмов подписи, хэширования и вычисления значения HMAC. Поскольку комментарии в определении XML-схемы не являются семантически значимыми, определения DS-схемы и DSIG11-схемы, описанные в настоящих рекомендациях, считаются идентичными определениям, описанным в [[1]](#p100376).

<a id="p100092"></a>В [разделе 7](#p100215) настоящих рекомендаций устанавливаются требования к содержимому элементов, описываемых в [разделе 6](#p100121), и их представлению:
1) <a id="p100093"></a>В [7.1](#p100217) устанавливаются требования к содержимому элементов и его представлению для создания и проверки электронной подписи XML-документа с использованием российских государственных криптографических алгоритмов подписи и хэширования.
2) <a id="p100094"></a>В [7.2](#p100255) устанавливаются требования к содержимому элементов и его представлению для вычисления значения HMAC XML-документа с использованием алгоритмов, определенных в [Р 50.1.113](https://bukva.ai/docs/r-50-1-113-2016).
3) <a id="p100095"></a>В [7.3](#p100267) устанавливаются требования к содержимому элементов и его представлению для передачи ключевой информации в подписываемом XML-документе.


### <a id="p100096"></a>5 Пространства имен XML и XML-префиксы


<a id="p100097"></a>В настоящих рекомендациях используются XML-элементы из четырех различных XML-схем, каждой из которых соответствует одно пространство имен XML. При создании подписи XML-документа или вычислении значения HMAC в соответствии с настоящими рекомендациями должен использоваться следующий идентификатор основного пространства имен XML (точка в конце предложения не является частью идентификатора): urn:ietf:params:xml:ns:cpxmlsec. Остальные пространства имен являются внешними, и их идентификаторы указываются дополнительно в заголовке XML-схемы.
<a id="p100098"></a>*Примечание* - Пространство имен XML однозначно соответствует одной XML-схеме, таким образом, употребление в тексте названия XML-схемы идентифицирует также соответствующее пространство имен. Названия XML-схем представлены в таблице 1.

<div align="right">

<a id="p100099"></a>Таблица 1

</div>


<div align="center">

<a id="p100100"></a>XML-схемы, идентификаторы пространств имен XML и префиксы

</div>



| <a id="p100101"></a>Название XML-схемы | <a id="p100102"></a>Идентификатор пространства имен XML | <a id="p100103"></a>Префикс |
| --- | --- | --- |
| <a id="p100104"></a>DS-схема | <a id="p100105"></a>http://www.w3.org/2000/09/xmldsig# | <a id="p100106"></a>ds |
| <a id="p100107"></a>DSIG11-схема | <a id="p100108"></a>http://www.w3.org/2009/xmldsig11# | <a id="p100109"></a>dsig11 |
| <a id="p100110"></a>XS-схема | <a id="p100111"></a>http://www.w3.org/2001/XMLSchema | <a id="p100112"></a>xs |
| <a id="p100113"></a>CPXMLSEC-схема | <a id="p100114"></a>urn:ietf:params:xml:ns:cpxmlsec | <a id="p100115"></a>cpxmlsec |


<a id="p100116"></a>*Примечание* - В настоящих рекомендациях XS-схема является вспомогательной и применяется для описания определений из других XML-схем. Поэтому определения элементов XS-схемы в данных рекомендациях не приводятся.

<a id="p100117"></a>Чтобы исключить пересечения одноименных элементов из различных пространств имен XML, в настоящих рекомендациях XML-элементы из различных XML-схем помечены с помощью префиксов, определенных в [таблице 1](#p100100). Каждый из предложенных в [таблице 1](#p100100) префиксов для своего пространства имен выбран произвольно и может быть заменен иным во всех элементах без изменения семантической значимости XML-документа.
<a id="p100118"></a>Указание пространств имен XML и префиксов в XML-документе не должно иметь разрывов строк и пробелов.
<a id="p100119"></a>Пример заголовка CPXMLSEC-схемы для использования с определениями остальных XML-схем, приведенными в [разделе 6](#p100121) настоящих рекомендаций:

| <a id="p100120"></a><xs:schema<br>xmlns:cpxmlsec="urn:ietf:params:xml:ns:cpxmlsec"<br>xmlns:xs="http://www.w3.org/2001/XMLSchema"<br>xmlns:dsig11="http://www.w3.org/2009/xmldsig11#" targetNamespace="urn:ietf:params:xml:ns:cpxmlsec"<br>elementFormDefault="qualified"<br>version="0.4"> |
| --- |



### <a id="p100121"></a>6 Определение XML-схемы для элемента Signature XML-документа


<a id="p100122"></a>Элемент ds:Signature является одним из корневых элементов XML-документа и содержит следующую информацию:
- <a id="p100123"></a>при формировании подписи XML-документа: значение подписи и информацию об алгоритмах и их параметрах, необходимых для формирования электронной подписи XML-документа;
- <a id="p100124"></a>при вычислении значения HMAC XML-документа: информацию об используемом алгоритме вычисления HMAC и значение HMAC.
<a id="p100125"></a>Элемент ds:Signature содержит следующие дочерние элементы.
- <a id="p100126"></a>Элемент ds:SignedInfo (см. [6.1](#p100133)). Данный элемент содержит информацию об используемых алгоритмах и других параметрах, необходимых для формирования подписи XML-документа или значения HMAC.
- <a id="p100127"></a>Элемент ds:SignatureValue (см. [6.2](#p100165)). Данный элемент содержит значение электронной подписи XML-документа или значение HMAC.
- <a id="p100128"></a>Элемент ds:KeyInfo (см. [6.3](#p100172)). Данный элемент содержит информацию о ключе проверки подписи и его значение или информацию о симметричном ключе, используемом при вычислении значения HMAC.
- <a id="p100129"></a>Элемент ds:Object. Данный элемент может содержать информацию, для которой формируется значение подписи или вычисляется значение HMAC.
<a id="p100130"></a>Элемент ds:Signature описывается следующим определением XML-схемы.

| <a id="p100131"></a><xs:element name="Signature" type="ds:SignatureType"/><br><xs:complexType name="SignatureType"><br><xs:sequence><br><xs:element ref="ds:SignedInfo"/><br><xs:element ref="ds:SignatureValue"/><br><xs:element ref="ds:KeyInfo" minOccurs="0"/><br><xs:element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/><br></xs:sequence><br><xs:attribute name="Id" type="ID" use="optional"/><br></xs:complexType> |
| --- |

<a id="p100132"></a>Полное описание всех дочерних элементов элемента ds:Signature представлено в [[1]](#p100376).


#### <a id="p100133"></a>6.1 Элемент SignedInfo


<a id="p100134"></a>Элемент ds:SignedInfo является дочерним элементом элемента ds:Signature и содержит в себе информацию об используемых алгоритмах и других параметрах, необходимых для формирования подписи XML-документа или значения HMAC. Элемент ds:SignedInfo содержит следующие дочерние элементы.
- <a id="p100135"></a>Элемент ds:SignatureMethod (см. [6.1.1](#p100141)). Данный элемент содержит информацию об используемом алгоритме подписи или алгоритме HMAC.
- <a id="p100136"></a>Элемент ds:Reference (см. [6.1.2](#p100147)). Данный элемент используется для указания на данные, с которыми выполняются преобразования.
- <a id="p100137"></a>Элемент ds:CanonicalizationMethod. Данный элемент содержит информацию об используемом алгоритме приведения к каноническому виду данных, находящихся в элементе ds:SignedInfo.
<a id="p100138"></a>Элемент ds:SignedInfo описывается следующим определением XML-схемы.

| <a id="p100139"></a><xs:element name="SignedInfo" type="ds:SignedInfoType"/><br><xs:complexType name="SignedInfoType"><br><xs:sequence><br><xs:element ref="ds:CanonicalizationMethod"/><br><xs:element ref="ds:SignatureMethod"/><br><xs:element ref="ds:Reference" maxOccurs="unbounded"/><br></xs:sequence"<br><xs:attribute name="Id" type="ID" use="optional"/><br></xs:complexType> |
| --- |

<a id="p100140"></a>Полное описание элемента ds:SignedInfo представлено в [[1]](#p100376).

##### <a id="p100141"></a>6.1.1 Элемент SignatureMethod

<a id="p100142"></a>Элемент ds:SignatureMethod является дочерним элементом элемента ds:SignedInfo и определяет алгоритм, используемый для создания и проверки подписи XML-документа или алгоритм, используемый для вычисления значения HMAC. Для этого в атрибут Algorithm элемента ds:SignatureMethod помещается идентификатор, соответствующий используемому алгоритму.
<a id="p100143"></a>Идентификаторы российских криптографических алгоритмов хэширования и подписи и правила их включения в элемент ds:SignatureMethod описаны в [7.1.2](#p100239).
<a id="p100144"></a>Идентификаторы российских криптографических алгоритмов вычисления HMAC описаны в [7.2](#p100255).
<a id="p100145"></a>Элемент ds:SignatureMethod описывается следующим определением XML-схемы.

    <xs:element name="SignatureMethod" type="ds:SignatureMethodType"/>

    <xs:complexType name="SignatureMethodType" mixed="true">
      <xs:sequence>
        <xs:element name="HMACOutputLength" minOccurs="0"
                    type="ds:HMACOutputLengthType"/>
        <xs:any namespace="##other" minOccurs="0"maxOccurs="unbounded"/>
        <!-- (0,unbounded) elements from (1,1) external namespace -->
      </xs:sequence>
      <xs:attribute name="Algorithm" type="anyURI" use="required"/>
    </xs:complexType>

<a id="p100146"></a>Полное описание элемента ds:SignatureMethod представлено в [[1]](#p100376).

##### <a id="p100147"></a>6.1.2 Элемент Reference

<a id="p100148"></a>Элемент ds:Reference является дочерним элементом элемента ds:SignedInfo и может содержать атрибуты Id, URI и Type, описывающие данные, с которыми выполняются операции хэширования и другие преобразования. Элемент ds:Reference содержит следующие дочерние элементы.
- <a id="p100149"></a>Элемент ds:Transforms. Данный элемент содержит список преобразований данных, указанных в атрибутах элемента ds:Reference.
- <a id="p100150"></a>Элемент ds:DigestMethod (см. [6.1.2.1](#p100155)). Данный элемент используется для указания используемого алгоритма хэширования данных, указанных в атрибутах элемента ds:Reference.
- <a id="p100151"></a>Элемент ds:DigestValue (см. [6.1.2.2](#p100161)). Данный элемент содержит значение хэш-кода от данных, указанных в атрибутах элемента ds:Reference.
<a id="p100152"></a>Элемент ds:Reference описывается следующим определением XML-схемы.

| <a id="p100153"></a><xs:element name="Reference" type="ds:ReferenceType"/><br><xs:complexType name="ReferenceType"><br><xs:sequence><br><xs:element ref="ds:Transforms" minOccurs="0"/><br><xs:element ref="ds:DigestMethod"/><br><xs:element ref="ds:DigestValue"/><br></xs:sequence><br><xs:attribute name="Id" type="ID" use="optional"/><br><xs:attribute name="URI" type="anyURI" use="optional"/><br><xs:attribute name="Type" type="anyURI" use="optional"/><br></xs:complexType> |
| --- |

<a id="p100154"></a>Полное описание элемента ds:Reference представлено в [[1]](#p100376).

###### <a id="p100155"></a>6.1.2.1 Элемент DigestMethod

<a id="p100156"></a>Элемент ds:DigestMethod является дочерним элементом элемента ds:Reference и имеет атрибут Algorithm, содержащий идентификатор алгоритма хэширования данных, указанных в атрибутах элемента ds:Reference.
<a id="p100157"></a>Идентификаторы российских криптографических алгоритмов хэширования и правила их включения в элемент ds:DigestMethod описаны в [7.1.1](#p100218).
<a id="p100158"></a>Элемент ds:DigestMethod описывается следующим определением XML-схемы.

| <a id="p100159"></a><xs:element name="DigestMethod" type="ds:DigestMethodType"/><br><xs:complexType name="DigestMethodType" mixed="true"><br><xs:sequence><br><xs:any namespace="##other" processContents="lax"<br>minOccurs="0" maxOccurs="unbounded"/><br></xs:sequence><br><xs:attribute name="Algorithm" type="anyURI" use="required"/><br></xs:complexType> |
| --- |

<a id="p100160"></a>Полное описание элемента ds:DigestMethod представлено в [[1]](#p100376).

###### <a id="p100161"></a>6.1.2.2 Элемент DigestValue

<a id="p100162"></a>Элемент ds:DigestValue является дочерним элементом элемента ds:Reference и должен содержать значение хэш-кода, представленное в соответствии с [7.1.1](#p100218). Значение хэш-кода должно быть вычислено от данных, указанных в атрибутах элемента ds:Reference, описанного в [6.1.2](#p100147).
<a id="p100163"></a>Элемент ds:DigestValue описывается следующим определением XML-схемы.

| <a id="p100164"></a><xs:element name="DigestValue" type="ds:DigestValueType"/><br><xs:simpleType name="DigestValueType"><br><xs:restriction base="base64Binary"/><br></xs:simpleType> |
| --- |



#### <a id="p100165"></a>6.2 Элемент SignatureValue

<a id="p100166"></a>Элемент ds:SignatureValue является дочерним элементом элемента ds:Signature и должен содержать значение электронной подписи XML-документа или значение HMAC.
<a id="p100167"></a>Содержимое элемента ds:SignatureValue при использовании российских криптографических алгоритмов подписи и хэширования описано в [7.1.2](#p100239).
<a id="p100168"></a>Содержимое элемента ds:SignatureValue при использовании российских криптографических алгоритмов вычисления HMAC описано в [7.2](#p100255).
<a id="p100169"></a>Элемент ds:SignatureValue описывается следующим определением XML-схемы.

| <a id="p100170"></a><xs: element name="SignatureValue" type="ds:SignatureValueType"/><br><xs:complexType name="SignatureValueType"><br><xs:simpleContent><br><xs:extension base="base64Binary"><br><xs:attribute name="Id" type="ID" use="optional"/><br></xs:extension><br></xs:simpleContent><br></xs:complexType> |
| --- |

<a id="p100171"></a>Полное описание элемента ds:SignatureValue представлено в [[1]](#p100376).


#### <a id="p100172"></a>6.3 Элемент KeyInfo


<a id="p100173"></a>Элемент ds:KeyInfo является дочерним элементом элемента ds:Signature и позволяет передать в XML-документе информацию о ключе проверки подписи и его значение или информацию о симметричном ключе, используемом при вычислении значения HMAC.
<a id="p100174"></a>В случае если в XML-документе требуется передать ключ проверки подписи, необходимо использовать один из следующих дочерних элементов элемента ds:KeyInfo.
1) <a id="p100175"></a>Элемент ds:KeyValue (см. [7.3.1](#p100269)). Данный элемент позволяет передать значение ключа проверки подписи и его параметры.
2) <a id="p100176"></a>Элемент ds:RetrievalMethod (см. [6.3.2](#p100201)). Данный элемент позволяет передать ссылку на расположение ключа проверки подписи, если ключ находится вне подписываемого XML-документа.
3) <a id="p100177"></a>Элемент ds:X509Data (см. [6.3.3](#p100207)). Данный элемент позволяет передать X.509-сертификат (см. Р 1323565.1.023-2018, [подраздел 4.2](https://bukva.ai/docs/r-1323565-1-023-2018#p100081)), содержащий ключ проверки подписи.
4) <a id="p100178"></a>Элемент dsig11:DEREncodedKeyValue (см. [6.3.4](#p100211)). Данный элемент позволяет передать значение ключа проверки подписи и его параметры.
<a id="p100179"></a>Примечание - Элементы ds:KeyValue и dsig11:DEREncodedKeyValue позволяют передать одну и ту же информацию, но с использованием различных подходов к ее представлению: использование элемента ds:KeyValue позволяет передавать значение ключа проверки подписи и его параметры в отдельных дочерних элементах. Использование элемента dsig11:DEREncodedKeyValue позволяет передавать значение ключа проверки подписи и его параметры в составе структуры SubjectPublicKeyInfo, описанной в [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018).

<a id="p100180"></a>В случае если в XML-документе требуется передать информацию о симметричном ключе, используемом при вычислении значения HMAC, необходимо использовать элемент ds:RetrievalMethod, являющийся дочерним элементом элемента ds:KeyInfo. Описание элемента ds:RetrievalMethod представлено в [6.3.2](#p100201).
<a id="p100181"></a>*Примечание* - Настоящие рекомендации устанавливают возможность передачи сведений о расположении симметричного ключа, используемого при вычислении значения HMAC, в элементе ds:RetrievalMethod. При этом процедуры выработки указанного ключа и его распределения выходят за область действия данных рекомендаций.

<a id="p100182"></a>Элемент ds:KeyInfo описывается следующим определением XML-схемы.

| <a id="p100183"></a><xs:element name="KeyInfo" type="ds:KeyInfoType"/><br><xs:complexType name="KeyInfoType" mixed="true"><br><xs:choice maxOccurs="unbounded"><br><xs:element ref="ds:KeyName"/><br><xs:element ref="ds:KeyValue"/><br><xs:element ref="ds:RetrievalMethod"/><br><xs:element ref="ds:X509Data"/><br><xs:element ref="ds:PGPData"/><br><xs:element ref="ds:SPKIData"/><br><xs:element ref="ds:MgmtData"/><br><!-- <xs:element ref="dsig11:DEREncodedKeyValue"/> --><br><!-- DEREncodedKeyValue (XMLDsig 1.1) will use the any element --><br><xs:any processContents="lax" namespace="##other"/><br><!-- (1,1) elements from (0,unbounded) namespaces --><br></xs:choice><br><xs:attribute name="Id" type="ID" use="optional"/><br></xs:complexType> |
| --- |

<a id="p100184"></a>Полное описание элемента ds:KeyInfo представлено в [[1]](#p100376).

##### <a id="p100185"></a>6.3.1 Элемент KeyValue

<a id="p100186"></a>Элемент ds:KeyValue является дочерним элементом элемента ds:KeyInfo и позволяет передать ключ проверки подписи в подписываемом XML-документе.
<a id="p100187"></a>Настоящие рекомендации устанавливают следующие дополнительные дочерние элементы элемента ds:KeyValue, описанные в [6.3.1.1](#p100194):
- <a id="p100188"></a>элемент cpxmlsec:GOSTR34102012-256-KeyValue;
- <a id="p100189"></a>элемент cpxmlsec:GOSTR34102012-512-KeyValue;
- <a id="p100190"></a>элемент cpxmlsec:GOSTR34102001KeyValue.
<a id="p100191"></a>Элемент ds:KeyValue описывается следующим определением XML-схемы.

| <a id="p100192"></a><xs:element name="KeyValue" type = "ds:KeyValueType"/><br><xs:complexType name="KeyValueType" mixed="true"><br><xs:choice><br><xs:element ref="ds:DSAKeyValue"/><br><xs:element ref="ds:RSAKeyValue"/><br><!--<xs:element ref="cpxmlsec:GOSTR34102012-256-KeyValue "/><br><xs:element ref="cpxmlsec:GOSTR34102012-512-KeyValue"/><br><xs:element ref="cpxmlsec:GOSTR34102001KeyValue"/>--><br><!--cpxmlsec:GOSTR34102012-256-KeyValue,<br>cpxmlsec:GOSTR34102012-512-KeyValue,<br>cpxmlsec:GOSTR34102001KeyValue will use the any element --><br><xs:any namespace="##other" processContents="lax"/><br></xs:choice><br></xs:complexType> |
| --- |

<a id="p100193"></a>Полное описание элемента ds:KeyValue представлено в [[1]](#p100376).

###### <a id="p100194"></a>6.3.1.1 Элементы GOSTR34102012-256-KeyValue, GOSTR34102012-512-KeyValue и GOSTR34102001 KeyValue

<a id="p100195"></a>Элементы cpxmlsec:GOSTR34102012-256-KeyValue, cpxmlsec:GOSTR34102012-512-KeyValue и cpxmlsec:GOSTR34102001KeyValue являются дочерними элементами элемента ds:KeyValue, имеют тип cpxmlsec:GOSTKeyValueType и каждый из них состоит из двух дочерних элементов:
- <a id="p100196"></a>элемент cpxmlsec:NamedCurve, содержащий идентификатор эллиптической кривой;
- <a id="p100197"></a>элемент cpxmlsec:PublicKey, содержащий значение ключа проверки подписи.
<a id="p100198"></a>Данные элементы принадлежат пространству имен с префиксом cpxmlsec, идентификатор которого и правила включения в CPXMLSEC-схему описаны в [разделе 5](#p100096). Элементы cpxmlsec:NamedCurve и cpxmlsec:PublicKey имеют типы dsig11:NamedCurveType и dsig11:ECPointType соответственно, определения которых принадлежат к DSIG11-схеме и описаны в [[1]](#p100376).
<a id="p100199"></a>Требования к содержимому элементов cpxmlsec:GOSTR34102012-256-KeyValue, cpxmlsec:GOSTR34102012-512-KeyValue, cpxmlsec:GOSTR34102001KeyValue и их дочерних элементов описаны в [7.3.2](#p100274) - [7.3.4](#p100286).
<a id="p100200"></a>Элементы cpxmlsec:GOSTR34102012-256-KeyValue, cpxmlsec:GOSTR34102012-512-KeyValue и cpxmlsec:GOSTR34102001KeyValue описываются следующим определением CPXMLSEC-схемы.

     <xs:element name="GOSTR34102012-256-KeyValue"
                 type="cpxmlsec:GOSTKeyValueType"/>

     <xs:element name="GOSTR34102012-512-KeyValue"
                 type="cpxmlsec:GOSTKeyValueType"/>

     <xs:element name="GOSTR34102001KeyValue"
                 type="cpxmlsec:GOSTKeyValueType"/>

     <xs:complexType name="GOSTKeyValueType">
       <xs:sequence>
         <xs:element name="NamedCurve"
                     type="dsig11:NamedCurveType"/>
         <xs:element name="PublicKey"
                     type="dsig11:ECPointType"/>
       </xs:sequence>
     </xs:complexType>


##### <a id="p100201"></a>6.3.2 Элемент RetrievalMethod

<a id="p100202"></a>Элемент ds:RetrievalMethod является дочерним элементом элемента ds:KeyInfo и позволяет дать ссылку на ключевую информацию, которая располагается в месте, отличном от подписываемого XML-документа. Для этого используются его атрибуты URI и Туре.
<a id="p100203"></a>Элемент ds:RetrievalMethod имеет дочерний элемент ds:Transforms, используемый для преобразования данных, на которые указывают атрибуты элемента ds:RetrievalMethod.
<a id="p100204"></a>Элемент ds:RetrievalMethod описывается следующим определением XML-схемы.

| <a id="p100205"></a><xs:element name="RetrievalMethod" type="ds:RetrievalMethodType"/><br><xs:complexType name="RetrievalMethodType"><br><xs:sequence><br><xs:element ref="ds:Transforms" minOccurs="0"/><br></xs:sequence><br><xs:attribute name="URI" type="anyURI"/><br><xs:attribute name="Type" type="anyURI" use="optional"/><br></xs:complexType> |
| --- |

<a id="p100206"></a>Полное описание элементов ds:RetrievalMethod и ds:Transforms представлено в [[1]](#p100376).

##### <a id="p100207"></a>6.3.3 Элемент X509Data

<a id="p100208"></a>Элемент ds:X509Data является дочерним элементом элемента ds:KeyInfo и позволяет передать сведения о X.509-сертификате, при помощи которого было сформировано значение электронной подписи XML-документа, либо сам сертификат с ключом проверки подписи.
<a id="p100209"></a>Элемент ds:X509Data описывается следующим определением XML-схемы.

    <xs:element name="X509Data" type="ds:X509DataType"/>

    <xs:complexType name="X509DataType">
      <xs:sequence maxOccurs="unbounded">
        <xs:choice>
           <xs:element name="X509IssuerSerial"
                       type="ds:X509IssuerSerialType"/>
           <xs:element name="X509SKI" type="base64Binary"/>
           <xs:element name="X509SubjectName" type="string"/>
           <xs:element name="X509Certificate" type="base64Binary"/>
           <xs:element name="X509CRL" type="base64Binary"/>
           <!-- < xs:element ref="dsig11:X509Digest"/> -->
           <!-- The X509Digest element (XMLDSig 1.1) will use the
           any element -->
           <xs:any namespace="##other" processContents="lax"/>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>

<a id="p100210"></a>Полное описание элемента ds:X509Data представлено в [[1]](#p100376).

##### <a id="p100211"></a>6.3.4 Элемент DEREncodedKeyValue

<a id="p100212"></a>Элемент dsig11:DEREncodedKeyValue является расширением определения XML-схемы элемента ds:KeyInfo, описанного в [6.3](#p100172), и позволяет передать ключ проверки подписи. Требования к содержимому элемента dsig11:DEREncodedKeyValue описаны в [7.3.1](#p100269).
<a id="p100213"></a>Элемент dsig11:DEREncodedKeyValue описывается следующим определением XML-схемы.

    <!-- targetNamespace="http://www.w3.org/2009/xmldsig11#" -->

    <xs:element name="DEREncodedKeyValue"
                type="dsig11:DEREncodedKeyValueType"/>
    <xs:complexType name="DEREncodedKeyValueType">
      <xs:simpleContent>
        <xs:extension base="base64Binary">
           <xs:attribute name="Id" type="ID" use="optional"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>

<a id="p100214"></a>Полное описание элемента dsig11:DEREncodedKeyValue представлено в [[1]](#p100376).


### <a id="p100215"></a>7 Использование российских криптографических алгоритмов


<a id="p100216"></a>В данном разделе настоящих рекомендаций устанавливаются требования к содержимому элементов, описываемых в [разделе 6](#p100121), и его представлению при использовании российских государственных криптографических алгоритмов подписи, хэширования и вычисления HMAC.


#### <a id="p100217"></a>7.1 Использование российских криптографических алгоритмов при создании подписи XML-документов



##### <a id="p100218"></a>7.1.1 Использование алгоритма хэширования в элементе DigestMethod

<a id="p100219"></a>7.1.1.1 Использование алгоритма хэширования [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) с длиной хэш-кода 256 бит в элементе DigestMethod
<a id="p100220"></a>Для алгоритма хэширования, определенного в [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012), с длиной хэш-кода 256 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256.
<a id="p100221"></a>*Примечание* - В настоящих рекомендациях для всех идентификаторов российских криптографических алгоритмов перенос строки внутри значения идентификатора и точка в его конце не учитываются.

<a id="p100222"></a>Пример элемента ds:DigestMethod для алгоритма хэширования, определенного в [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012), с длиной хэш-кода 256 бит:

| <a id="p100223"></a><ds:DigestMethod Algorithm=<br>"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256" /> |
| --- |

<a id="p100224"></a>Значение 256-битного хэш-кода, представленного в виде последовательности из 32 байт в порядке little-endian и в кодировке base64, описанной в [[4]](#p100385), должно быть помещено в содержимое элемента ds:DigestValue, описанного в [6.1.2.2](#p100161).
<a id="p100225"></a>7.1.1.2 Использование алгоритма хэширования [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) с длиной хэш-кода 512 бит в элементе DigestMethod
<a id="p100226"></a>Для алгоритма хэширования, определенного в [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012), с длиной хэш-кода 512 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512.
<a id="p100227"></a>Пример элемента ds:DigestMethod для алгоритма хэширования, определенного в [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012), с длиной хэш-кода 512 бит:

| <a id="p100228"></a><ds:DigestMethod Algorithm=<br>"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512" /> |
| --- |

<a id="p100229"></a>Значение 512-битного хэш-кода, представленного в виде последовательности из 64 байт в порядке little-endian и в кодировке base64, должно быть помещено в содержимое элемента ds:DigestValue.

###### <a id="p100230"></a>7.1.1.3 Использование алгоритма хэширования ГОСТ Р 34.11-94, [раздел 6](https://bukva.ai/docs/standart-154#p100092), в элементе DigestMethod

<a id="p100231"></a>Для обеспечения возможности использования и долговременного (архивного) хранения XML-документов, подписанных при помощи алгоритма, определенного в ГОСТ Р 34.11-94, [раздел 6](https://bukva.ai/docs/standart-154#p100092), а также проверки электронной подписи в элемент ds:DigestMethod необходимо помещать следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411.
<a id="p100232"></a>Элемент ds:DigestMethod может содержать дочерний элемент cpxmlsec:NamedParameters, определяющий параметры для алгоритма хэширования.
<a id="p100233"></a>Элемент cpxmlsec:NamedParameters имеет атрибут URI, содержащий параметры алгоритма хэширования. Параметры, задаваемые идентификаторами OID, рекомендуется кодировать в соответствии с [[5]](#p100388). Допускается использование идентификаторов OID-параметров, определенных в [[6](#p100391), подраздел 8.2].
<a id="p100234"></a>Если элемент cpxmlsec: NamedParameters отсутствует, приложение должно использовать параметры, соответствующие идентификатору набора параметров id-GostR3411-94-CryptoProParamSet, определенному в [[6]](#p100391).
<a id="p100235"></a>Элемент cpxmlsec:NamedParameters описывается следующим определением XML-схемы.

    <xs:element name="NamedParameters"
                type="cpxmlsec:NamedParametersType"/>

<a id="p100236"></a>Пример элемента ds:DigestMethod для алгоритма хэширования, определенного в ГОСТ Р 34.11-94, [раздел 6](https://bukva.ai/docs/standart-154#p100092):

| <a id="p100237"></a><ds:DigestMethod Algorithm=<br>"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"><br><!-- id-GostR3411-94-CryptoProParamSet --><br><cpxmlsec:NamedParameters URI="urn:oid:1.2.643.2.2.30.1" /><br></ds:DigestMethod> |
| --- |

<a id="p100238"></a>Значение 256-битного хэш-кода, представленного в виде последовательности из 32 байт в порядке little-endian и в кодировке base64, должно быть помещено в содержимое элемента ds:DigestValue.

##### <a id="p100239"></a>7.1.2 Использование алгоритма подписи в элементе SignatureMethod


###### <a id="p100240"></a>7.1.2.1 Использование алгоритма подписи [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) с длиной ключа 256 бит в элементе SignatureMethod

<a id="p100241"></a>Для алгоритма подписи, определенного в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с ключом подписи 256 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256.
<a id="p100242"></a>Пример элемента ds:SignatureMethod с указанием алгоритма подписи, определенного в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с ключом подписи 256 бит:

| <a id="p100243"></a><ds:SignatureMethod Algorithm=<br>"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" /> |
| --- |

<a id="p100244"></a>Значение подписи, сформированное в соответствии с алгоритмом, определенным в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с ключом подписи 256 бит должно быть представлено в соответствии с [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018) в кодировке base64 и помещено в элемент ds:SignatureValue.

###### <a id="p100245"></a>7.1.2.2 Использование алгоритма подписи [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) с длиной ключа 512 бит в элементе SignatureMethod

<a id="p100246"></a>Для алгоритма подписи, определенного в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с ключом подписи 512 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512.
<a id="p100247"></a>Пример элемента ds:SignatureMethod с указанием алгоритма, определенного в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с ключом подписи 512 бит:

| <a id="p100248"></a><ds:SignatureMethod Algorithm=<br>"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512" /> |
| --- |

<a id="p100249"></a>Значение подписи, сформированное в соответствии с алгоритмом, определенным в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с ключом подписи 512 бит должно быть представлено в соответствии с [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018) в кодировке base64 и помещено в элемент ds:SignatureValue.
<a id="p100250"></a>7.1.2.3 Использование алгоритма подписи ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), в элементе SignatureMethod
<a id="p100251"></a>Для обеспечения возможности использования и долговременного (архивного) хранения XML-документов, подписанных при помощи алгоритма, определенного в ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), а также проверки электронной подписи в элемент ds:SignatureMethod необходимо помещать следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411.
<a id="p100252"></a>Пример элемента ds:SignatureMethod с указанием алгоритма, определенного в ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152):

| <a id="p100253"></a><ds:SignatureMethod Algorithm=<br>"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411" /> |
| --- |

<a id="p100254"></a>Значение подписи, сформированное в соответствии с алгоритмом, определенным в ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), с ключом подписи 256 бит должно быть представлено в соответствии с [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018) в кодировке base64 и помещено в элемент ds:SignatureValue.


#### <a id="p100255"></a>7.2 Использование российских криптографических алгоритмов при вычислении значения HMAC в XML-документе


<a id="p100256"></a>Алгоритм хэширования, определенный в [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012), может быть использован в качестве алгоритма вычисления HMAC в соответствии с [[1](#p100376), пункт 6.3.1] и Р 50.1.113-2016, [пункт 4.1.1](https://bukva.ai/docs/r-50-1-113-2016#p100058).
<a id="p100257"></a>7.2.1 Использование алгоритма хэширования [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) с длиной хэш-кода 256 бит в элементе SignatureMethod
<a id="p100258"></a>Для алгоритма хэширования, определенного в [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012), с длиной хэш-кода 256 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-256.
<a id="p100259"></a>Пример элемента ds:SignatureMethod с заданным алгоритмом хэширования, определенным в [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) с длиной хэш-кода 256 бит:

| <a id="p100260"></a><ds:SignatureMethod Algorithm><br>"urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-256"/> |
| --- |

<a id="p100261"></a>Результат работы алгоритма HMAC_GOSTR3411_2012_256, определенного в Р 50.1.113-2016, [пункт 4.1.1](https://bukva.ai/docs/r-50-1-113-2016#p100058), должен быть представлен в виде последовательности из 32 байт в порядке little-endian в кодировке base64 и помещен в элемент ds:SignatureValue, описанный в [6.2](#p100165).
<a id="p100262"></a>7.2.2 Использование алгоритма хэширования [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) с длиной хэш-кода 512 бит в элементе SignatureMethod
<a id="p100263"></a>Для алгоритма хэширования, определенного в [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012), с длиной хэш-кода 512 бит должен использоваться следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-512.
<a id="p100264"></a>Пример элемента ds:SignatureMethod с заданным алгоритмом хэширования [ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) с длиной хэш-кода 512 бит:

| <a id="p100265"></a><ds:SignatureMethod Algorithm=<br>"urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr34112012-512"/> |
| --- |

<a id="p100266"></a>Результат работы алгоритма HMAC_GOSTR3411_2012_512, определенного в Р 50.1.113-2016, [пункт 4.1.2](https://bukva.ai/docs/r-50-1-113-2016#p100069), должен быть представлен в виде последовательности из 64 байт в порядке little-endian в кодировке base64 и помещен в элемент ds:SignatureValue.


#### <a id="p100267"></a>7.3 Передача информации о ключевом материале


<a id="p100268"></a>Для передачи информации о ключевом материале алгоритмов, определенных в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) и в ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), могут быть использованы любые подходящие способы, определенные в [[1]](#p100376). Настоящие рекомендации дополнительно определяют способ передачи ключей проверки подписи алгоритма [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) в элементе dsig11:DEREncodedKeyValue, описанном в [6.3.4](#p100211), и в дочерних элементах элемента ds:KeyValue, описанного в [6.3.1](#p100185).

##### <a id="p100269"></a>7.3.1 Передача ключа проверки подписи в элементе DEREncodedKeyValue

<a id="p100270"></a>Настоящие рекомендации устанавливают возможность передачи ключа проверки подписи, соответствующего алгоритму [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с длиной 256 бит или 512 бит в элементе dsig11:DEREncodedKeyValue, описанном в [6.3.4](#p100211). Настоящие рекомендации также устанавливают возможность передачи ключа проверки подписи, соответствующего алгоритму, определенному в ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), в элементе dsig11:DEREncodedKeyValue, описанном в [6.3.4](#p100211).
<a id="p100271"></a>Для создания электронной подписи, соответствующей алгоритму [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), и проверки электронной подписи, соответствующей алгоритму, определенному в ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), ключ проверки подписи и его параметры, передаваемые в элементе dsig11:DEREncodedKeyValue, должны быть помещены в структуру SubjectPublicKeyInfo (см. [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018)) и закодированы в соответствии с [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018).
<a id="p100272"></a>*Пример* элемента dsig11:DEREncodedKeyValue:

| <a id="p100273"></a><dsig11:DEREncodedKeyValue><br><!-- значение ключа проверки подписи --><br></dsig11:DEREncodedKeyValue> |
| --- |

<a id="p100274"></a>7.3.2 Передача ключа проверки подписи алгоритма [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) с длиной ключа 256 бит в элементе GOSTR34102012-256-KeyValue
<a id="p100275"></a>Настоящие рекомендации устанавливают возможность передачи информации о местонахождении ключа проверки подписи, соответствующего алгоритму [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с длиной 256 бит. Для передачи информации о местонахождении ключа в атрибут Type элементов ds:Reference или ds:RetrievalMethod, описанных в [6.1.2](#p100147) и [6.3.2](#p100201) соответственно, помещается следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:types:gostr34102012-256-keyvalue.
<a id="p100276"></a>Для передачи ключа проверки подписи в подписываемом XML-документе необходимо представить ключ в формате, описанном для поля subjectPublicKey структуры SubjectPublicKeyInfo (см. [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018)), но без представления в OCTET STRING и кодирования в DER. Данное представление должно быть закодировано в base64 и помещено в дочерний элемент cpxmlsec:PublicKey элемента cpxmlsec:GOSTR34102012-256-KeyValue аналогично элементу ds:RSAKeyValue, описанному в [[1]](#p100376). Определение XML-схемы для элементов cpxmlsec:GOSTR34102012-256-KeyValue и cpxmlsec:PublicKey описано в [6.3.1.1](#p100194).
<a id="p100277"></a>Для передачи идентификатора эллиптической кривой (параметров ключа проверки подписи) в подписываемом XML-документе используется атрибут URI элемента cpxmlsec:NamedCurve, описанного в [6.3.1.1](#p100194). Параметры, задаваемые идентификаторами OID, рекомендуется кодировать в соответствии с [[5]](#p100388). Настоящие рекомендации допускают использование идентификаторов OID параметров, определенных в [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018).
<a id="p100278"></a>*Пример* элемента cpxmlsec:GOSTR34102012-256-KeyValue:

| <a id="p100279"></a><cpxmlsec:GOSTR34102012-256-KeyValue><br><!-- id-GostR3410-2001-CryptoPro-A-ParamSet --><br><cpxmlsec:NamedCurve URI="urn:oid:1.2.643.2.2.35.1" /><br><cpxmlsec:PublicKey><br><!-- значение ключа проверки подписи --><br></cpxmlsec:PublicKey><br></cpxmlsec:GOSTR34102012-256-KeyValue> |
| --- |

<a id="p100280"></a>7.3.3 Передача ключа проверки подписи алгоритма [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) с длиной ключа 512 бит в элементе GOSTR34102012-512-KeyValue
<a id="p100281"></a>Настоящие рекомендации устанавливают возможность передачи информации о местонахождении ключа проверки подписи, соответствующего алгоритму [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с длиной 512 бит. Для передачи информации о местонахождении ключа в атрибут Type элементов ds:Reference или ds:RetrievalMethod, описанных в [6.1.2](#p100147) и [6.3.2](#p100201) соответственно, помещается следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:types:gostr34102012-512-keyvalue.
<a id="p100282"></a>Для передачи ключа проверки подписи в подписываемом XML-документе необходимо представить ключ в формате, описанном для поля subjectPublicKey структуры SubjectPublicKeyInfo (см. [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018)), но без представления в OCTET STRING и кодирования в DER. Данное представление должно быть закодировано в base64 и помещено в дочерний элемент cpxmlsec:PublicKey элемента cpxmlsec:GOSTR34102012-512-KeyValue аналогично элементу ds:RSAKeyValue, описанному в [[1]](#p100376). Определение XML-схемы для элементов cpxmlsec:GOSTR34102012-512-KeyValue и cpxmlsec:PublicKey описано в [6.3.1.1](#p100194).
<a id="p100283"></a>Для передачи идентификатора эллиптической кривой (параметров ключа проверки подписи) в подписываемом XML-документе используется атрибут URI элемента cpxmlsec:NamedCurve, описанного в [6.3.1.1](#p100194). Параметры, задаваемые идентификаторами OID, рекомендуется кодировать в соответствии с [[5]](#p100388). Настоящие рекомендации допускают использование идентификаторов OID параметров, определенных в [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018).
<a id="p100284"></a>*Пример* элемента cpxmlsec:GOSTR34102012-512-KeyValue:

| <a id="p100285"></a><cpxmlsec:GOSTR34102012-512-KeyValue><br><!-- id-tc26-gost-3410-12-512-paramSetA --><br><cpxmlsec:NamedCurve URI="urn:oid:1.2.643.7.1.2.1.2.1" /><br><cpxmlsec:PublicKey><br><!-- значение ключа проверки подписи --><br></cpxmlsec:PublicKey><br></cpxmlsec:GOSTR34102012-512-KeyValue> |
| --- |

<a id="p100286"></a>7.3.4 Передача ключа проверки подписи алгоритма ГОСТ Р 34.10-2001, [подраздел 6.2](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100170), в элементе GOSTR34102001KeyValue
<a id="p100287"></a>Для обеспечения возможности использования и долговременного (архивного) хранения XML-документов, подписанных при помощи алгоритма, определенного в ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), а также проверки электронной подписи в атрибут URI элементов ds:RetrievalMethod или ds:Reference для передачи информации о местонахождении ключа проверки подписи необходимо помещать следующий идентификатор: urn:ietf:params:xml:ns:cpxmlsec:types:gostr34102001-keyvalue.
<a id="p100288"></a>Для передачи ключа проверки подписи, соответствующего алгоритму ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), необходимо представить ключ в формате, описанном для поля subjectPublicKey структуры SubjectPublicKeyInfo для GostR3410-2012-256-PublicKey (см. [Р 1323565.1.023](https://bukva.ai/docs/r-1323565-1-023-2018)), но без представления в OCTET STRING и кодирования в DER. Данное представление должно быть закодировано в base64 и помещено в дочерний элемент cpxmlsec:PublicKey элемента cpxmlsec:GOSTR34102001KeyValue аналогично элементу ds:RSAKeyValue, описанному в [[1]](#p100376). Определение XML-схемы для элементов cpxmlsec:GOSTR34102001KeyValue и cpxmlsec:PublicKey описано в [6.3.1.1](#p100194).
<a id="p100289"></a>Для передачи идентификатора эллиптической кривой (параметров ключа проверки подписи) в подписываемом XML-документе используется атрибут URI элемента cpxmlsec:NamedCurve, описанного в [6.3.1.1](#p100194). Параметры, задаваемые идентификаторами OID, рекомендуется кодировать в соответствии с [[5]](#p100388). Настоящие рекомендации допускают использование идентификаторов OID параметров, определенных в [[6](#p100391), подраздел 8.4].
<a id="p100290"></a>*Пример* элемента cpxmlsec:GOSTR34102001KeyValue:

| <a id="p100291"></a><cpxmlsec:GOSTR34102001KeyValue><br><!-- id-GostR3410-2001-CryptoPro-A-ParamSet --><br><cpxmlsec:NamedCurve URI="urn:old:1.2.643.2.2.35.1"/><br><cpxmlsec:PublicKey><br><!-- значение ключа проверки подписи --><br></cpxmlsec:PublicKey><br></cpxmlsec:GOSTR34102001KeyValue> |
| --- |






<div align="right">

<a id="p100292"></a>Приложение А

</div>

(справочное)

<div align="center">

<a id="p100293"></a>**ПОЛНАЯ XML-СХЕМА**

</div>


<a id="p100294"></a>В данном приложении приводится полная CPXMLSEC-схема, содержащая названия элементов и атрибутов, используемые пространства имен XML и типы данных, устанавливаемые настоящими рекомендациями.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Declare helper entities to avoid overrunning right margin of text
while importing
schemata.-->
<!DOCTYPE schema [
   <!ENTITY xmldsiguri
     "http://www.w3.org/TR/2008/REC-xmldsig-core-20080610">
]>

<xs:schema
   xmlns:cpxmlsec="urn:ietf:params:xml:ns:cpxmlsec"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:dsig11="http://www.w3.org/2009/xmldsig11#"
   targetNamespace="urn:ietf:params:xml:ns:cpxmlsec"
   element FormDefault="qualified"
   version="0.4">

   <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"/>

   <xs:import namespace="http://www.w3.org/2009/xmldsig11#"/>

   <xs:element name="NamedParameters"
              type="cpxmlsec:NamedParametersType"/>

   <xs:complexType name="NamedParametersType">
      <xs:attribute name="URI" type="xs:anyURI" use="required"/>
   </xs:complexType>

   <xs:complexType name="GOSTKeyValueType">
      <xs:sequence>
        <xs:element name="NamedCurve"
                    type="dsig11:NamedCurveType"/>
        <xs:element name="PublicKey" type="dsig11:ECPointType"/>
      </xs:sequence>
   </xs:complexType>

   <xs:element name="GOSTR34102012-256-KeyValue"
               type="cpxmlsec:GOSTKeyValueType" />
   <xs:element name="GOSTR34102012-512-KeyValue"
               type="cpxmlsec:GOSTKeyValueType" />
   <xs:element name="GOSTR34102001KeyValue"
               type="cpxmlsec:GOSTKeyValueType" />

</xs:schema>





<div align="right">

<a id="p100295"></a>Приложение Б

</div>

(справочное)

<div align="center">

<a id="p100296"></a>**ПРИМЕРЫ**

</div>


<a id="p100297"></a>В данном приложении содержатся основные примеры использования российских алгоритмов электронной подписи при создании электронной подписи XML-документов.
<a id="p100298"></a>*Примечание* - В настоящих рекомендациях все приведенные подписанные XML-документы имеют структуру, представленную родительскими и дочерними элементами. Для удобства чтения XML-документа каждый из элементов, кроме первого, имеет отступ. Число отступов увеличивается на один для каждого вложенного (дочернего) элемента. В данных рекомендациях один отступ принято считать равным трем пробелам. Значения подписи, содержащиеся в примерах, получены с учетом этой особенности и могут измениться, если число пробелов в одном отступе уменьшить или увеличить.


### <a id="p100299"></a>Б.1 Подпись XML-документа с использованием алгоритма, определенного в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с длиной хэш-кода 256 бит в элементе DigestMethod


<a id="p100300"></a>Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в Р 1323565.1.023-2018, [приложение А](https://bukva.ai/docs/r-1323565-1-023-2018#p100277).
<a id="p100301"></a>Координата x ключа проверки подписи сертификата равна:

<a id="p100302"></a>0x971566CEDA436EE7678F7E07E84EBB7217406C0B4747AA8FD2AB1453C3D0DFBA

<a id="p100303"></a>Координата y равна:

<a id="p100304"></a>0xAD58736965949F8E59830F8DE20FC6C0D177F6AB599874F1E2E24FF71F9CE643

<a id="p100305"></a>Соответствующий ключ подписи d равен:

<a id="p100306"></a>0xBFCF1D623E5CDD3032A7C6EABB4A923C46E43D640FFEAAF2C3ED39A8FA399924

<a id="p100307"></a>Число k равно:

<a id="p100308"></a>0x5782C53F110C596F9155D35EBD25A06A89C50391850A8FEFE33B0E270318857C

<a id="p100309"></a>Число $\overline{h}$ равно:

<a id="p100310"></a>0x054D1DABB161D63424F8DABB2800708B00F78DA7582699E8F2F0A521C7CE8144

<a id="p100311"></a>Подписанный XML-документ выглядит следующим образом:


| <a id="p100312"></a><?xml version="1.0" encoding="utf-8"?><br><root><br><DataToSign Id="ToSign">Data</DataToSign><br><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><br><SignedInfo><br><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-<br>xml-c14n-20010315" /><br><SignatureMethod Algorithm="urn:ietf:params:xml:ns:<br>cpxmlsec:algorithms:gostr34102012-gostr34112012-256" /><br><Reference URI="#ToSign"><br><Transforms><br><Transform Algorithm="http:// www.w3.org/TR/2001/REC-xml-<br>c14n-20010315" /><br></Transforms><br><DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:<br>gostr34112012-256" /><br><DigestValue>9QLsxPPo7LlX6IXqwzjcNDmbFuCCGivQ1s61hcPuITM=</DigestValue><br></Reference><br></SignedInfo><br><SignatureValue>jcQJhWtWbTCV7bjFky5vGXXUFigc74FXRi79lZnFHK7pMjpeiN2H +<br>3xyQ4O//nzs1Ln/oqwzvu9zpaH3Q0BPaw==</SignatureValue><br><KevInfo><br><KeyValue><br><GOSTR34102012-256-KeyValue<br>xmlns="urn:ietf:params:xml:ns:cpxmlsec"><br><NamedCurve URI="urn:oid:1.2.643.2.2.36.0" /><br><PublicKey>ut/Qw1MUq9KPqkdHC2xAF3K7TugHfo9n525D2s5mFZdD5pwf90/i4vF0m<br>Fmr9nfRwMYP4o0Pg1mOn5RlaXNYrQ==</PublicKey><br></GOSTR34102012-256-KeyValue><br></KeyValue><br></KeyInfo><br></Signature><br></root> |
| --- |

<a id="p100313"></a>Подписанный XML-документ в кодировке base64 выглядит следующим образом:

| <a id="p100314"></a>77u/PD94bWwgdmVyc21vbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48cm9vdD4NCiAgIDxEYXRhVG9TaWdu<br>IElkPSJUb1NpZ24iPkRhdGE8L0RhdGFUb1NpZ24+DQogICA8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3<br>LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICAgIDxTaWduZWRJbmZvPg0KICAgICAgICAgPENhbm9u<br>aWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwt<br>YzE0bi0yMDAxMDMxNSIgLz4NCiAgICAgICAgIDxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJ1cm46aWV0<br>ZjpwYXJhbXM6eG1sOm5zOmNweG1sc2VjOmFsZ29yaXRobXM6Z29zdHIzNDEwMjAxMi1nb3N0cjM0MTEyMDEy<br>LTI1NiIgLz4NCiAgICAgICAgIDxSZWZlcmVuY2UgVVJJPSIjVG9TaWduIj4NCiAgICAgICAgICAgIDxUcmFu<br>c2Zvcm1zPg0KICAgICAgICAgICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3Jn<br>L1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1IiAvPg0KICAgICAgICAgICAgPC9UcmFuc2Zvcm1zPg0K<br>ICAgICAgICAgICAgPERpZ2VzdE1ldGhvZCBBbGdvcml0aG09InVybjppZXRmOnBhcmFtczp4bWw6bnM6Y3B4<br>bWxzZWM6YWxnb3JpdGhtczpnb3N0cjM0MTEyMDEyLTI1NiIgLz4NCiAgICAgICAgICAgIDxEaWdlc3RWYWx1<br>ZT45UUxzeFBQbzdMbFg2SVhxd3pqY05EbWJGdUNDR2l2UTFzNjFoY1B1SVRNPTwvRGlnZXN0VmFsdWU+DQog<br>ICAgICAgICA8L1JlZmVyZW5jZT4NCiAgICAgIDwvU2lnbmVkSW5mbz4NCiAgICAgIDxTaWduYXR1cmVWYWx1<br>ZT5qY1FKaFd0V2JUQ1Y3YmpGa3k1dkdYWFVGaWdjNzRGWFJpNzlsWm5GSEs3cE1qcGVpTjJIKzN4eVE0Ty8v<br>bnpzMUxuL29xd3p2dTl6cGFIM1EwQlBhdz09PC9TaWduYXR1cmVWYWx1ZT4NCiAgICAgIDxLZXlJbmZvPg0K<br>ICAgICAgICAgPEtleVZhbHVlPg0KICAgICAgICAgICAgPEdPU1RSMzQxMDIwMTItMjU2LUtleVZhbHVlIHht<br>bG5zPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmNweG1sc2VjIj4NCiAgICAgICAgICAgICAgIDxOYW1lZEN1<br>cnZlIFVSST0idXJuOm9pZDoxLjIuNjQzLjIuMi4zNi4wIiAvPg0KICAgICAgICAgICAgICAgPFB1YmxpY0tl<br>eT51dC9RdzFNVXE5S1Bxa2RIQzJ4QUYzSzdUdWdIZm85bjUyNUQyczVtRlpkRDVwd2Y5MC9pNHZGMG1GbXI5<br>bmZSd01ZUDRvMFBnMW1PbjVSbGFYTllyUT09PC9QdWJsaWNLZXk+DQogICAgICAgICAgICA8L0dPU1RSMzQx<br>MDIwMTItMjU2LUtleVZhbHVlPg0KICAgICAgICAgPC9LZXlWYWx1ZT4NCiAgICAgIDwvS2V5SW5mbz4NCiAg<br>IDwvU2lnbmF0dXJlPg0KPC9yb290Pg== |
| --- |



### <a id="p100315"></a>Б.2 Подпись XML-документа с использованием алгоритма, определенного в [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012), с длиной хэш-кода 512 бит в элементе DigestMethod


<a id="p100316"></a>Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в Р 1323565.1.023-2018, [приложение А](https://bukva.ai/docs/r-1323565-1-023-2018#p100277).
<a id="p100317"></a>Координата x ключа проверки подписи сертификата равна:

| <a id="p100318"></a>0x07134627CE7FC6770953ABAA4714B38AF8DE764B8870A502C2F4CC2D05541459A18DA3B9D4EBC09BC<br>06CB2EA1856A03747561CF04C34382111539230A550F1913 |
| --- |

<a id="p100319"></a>Координата y равна:

| <a id="p100320"></a>0x7E08A434CB2FA300F8974E3FF69A4BCDF36B6308ElD7A56144693A35E11CBDl4D502916E680E35FE1E<br>6ABBA85BD4DAE7065308B16B1CCABFE3D91CE0655B0FFD |
| --- |

<a id="p100321"></a>Соответствующий ключ подписи d равен:

| <a id="p100322"></a>0x3FC01CDCD4EC5F972EB482774C41E66DB7F380528DFE9E67992BA05AEE462435757530E641077CE587<br>B976C8EEB48C48FD33FD175F0C7DE6A44E014E6BCB074B |
| --- |

<a id="p100323"></a>Число k равно:

| <a id="p100324"></a>0x72ABB44536656BF1618CE10BF7EADD40582304A51EE4E2A25A0A32CB0E773ABB23B7D8FDD8FA5EEE91<br>B4AE452F2272C86E1E2221215D405F51B5D5015616E1F6 |
| --- |

<a id="p100325"></a>Число $\overline{h}$ равно:

| <a id="p100326"></a>0x33DEF8422879AA68482339BC65E5DCA9A5D77E80C5C0371DB13D3B88F4CCA8A89ED3CE85849231DD61<br>B35E4B47A3722317663859A2BE088C1BB6EEC87410DAF2 |
| --- |

<a id="p100327"></a>Подписанный XML-документ выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <DataToSign Id="ToSign">Data</DataToSign>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
     <SignedInfo>
       <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
       <SignatureMethod
       Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:
       gostr34102012-gostr34112012-512" />
       <Reference URI="#ToSign">
         <Transforms>
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
         </Transforms>
         <DigestMethod
         Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512" />
         <DigestValue>wiOFD9D7zKHNlo58t/9tUtCJA5ZO9vmDhMlt3HIkyXZvQxIp5PE+txwsIAV
         fUIOULvGTFxAZlwuHTB+qD5s54g==</DigestValue>
       </Reference>
     </SignedInfo>
     <SignatureValue>dn+oWg6n3wJ20kBmO1GvURc4SuZ3h3nKXYWy4uHdmeS2nlTlNWFKca4fTBlc+
     fpnCS8IEVNFX25Ndh4UXJLLNl2/L0wtancFiA+xRYzFgzUGW+pWIfyfvBdsSspbweZyJUWajqN3lDR
     ZDchycEApNlqDpTtes8BpNrXSh+Cpg+c=</SignatureValue>
     <KeyInfo>
       <KeyValue>
         <GOSTR34102012-512-KeyValue
            xmlns="urn:ietf:params:xml:ns:cpxmlsec">
            <NamedCurve URI="urn:oid:1.2.643.7.1.2.1.2.2" />
            <PublicKey>ExkPVQojORURgkPDBM9hdXQDaoWhLssGvAm8Tp072hiaRUFV0MJMLyxQCo
             e4ZOeNrzhLcaSrUwl3xn/OJ0YTB/0PW2XgHNnjv8oca7EIUwbn2tRbqLtqHv41DmhukQ
             LVFL0c4TU6aURhpdfhCGNr881LmvY/Tpf4AKMvyzSkCH4=</PublicKey>
         </GOSTR34102012-512-KeyValue>
       </KeyValue>
     </KeyInfo>
  </Signature>
</root>
<a id="p100328"></a>Подписанный XML-документ в кодировке base64 выглядит следующим образом:

| <a id="p100329"></a>77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48cm9vdD4NCiAgIDxEYXRhVG9TaWdu<br>IElkPSJUb1NpZ24iPkRhdGE8L0RhdGFUb1NpZ24+DQogICA8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3<br>LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICAgIDxTaWduZWRJbmZvPg0KICAgICAgICAgPENhbm9u<br>aWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwt<br>YzE0bi0yMDAxMDMxNSIgLz4NCiAgICAgICAgIDxTaWduYXRlcmVNZXRob2QgQWxnb3JpdGhtPSJlcm46aWV0<br>ZjpwYXJhbXM6eGlsOm5zOmNweGlsc2VjOmFsZ29yaXRobXM6Z29zdHIzNDEwMjAxMi1nb3N0cjM0MTEyMDEy<br>LTUxMiIgLz4NCiAgICAgICAgIDxSZWZlcmVuY2UgVVJJPSIjVG9TaWduIj4NCiAgICAgICAgICAgIDxUcmFu<br>c2ZvcmlzPg0KICAgICAgICAgICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3Jn<br>LlRSLzIwMDEvUkVDLXhtbCljMTRuLTIwMDEwMzElIiAvPg0KICAgICAgICAgICAgPC9UcmFuc2ZvcmlzPg0K<br>ICAgICAgICAgICAgPERpZ2VzdElldGhvZCBBbGdvcml0aG09InVybjppZXRmOnBhcmFtczp4bWw6bnM6Y3B4<br>bWxzZWM6YWxnb3JpdGhtczpnb3N0cjM0MTEyMDEyLTUxMiIgLz4NCiAgICAgICAgICAgIDxEaWdlc3RWYWxl<br>ZT53aU9GRDlEN3pLSE5sbzU4dC85dFV0Q0pBNVpPOXZtRGhNbHQzSElreVhadlF4SXA1UEUrdHh3c0lBVmZV<br>SU9VTHZHVEZ4QVpsd3VIVEIrcUQ1czU0Zz09PC9EaWdlc3RWYWxlZT4NCiAgICAgICAgIDwvUmVmZXJlbmNl<br>Pg0KICAgICAgPC9TaWduZWRJbmZvPg0KICAgICAgPFNpZ25hdHVyZVZhbHVlPmRuK29XZzZuM3dKMjBrQmlP<br>MUd2VVJjNFNlWjNoM25LWFlXeTRlSGRtZVMybmxUbE5XRktjYTRmVEJsYytmcG5DUzhJRVZORlgyNU5kaDRV<br>WEpMTE5sMi9MMHd0YW5jRmlBK3hSWXpGZ3pVRlcrcFdJZnlmdkJkc1NzcGJ3ZVp5SlVXYWpxTjNsRFJaRGNo<br>eWNFQXBObHFEcFR0ZXM4QnBOclhTaCtDcGcrYz08L1NpZ25hdHVyZVZhbHVlPg0KICAgICAgPEtleUluZm8+<br>DQogICAgICAgICA8S2V5VmFsdWU+DQogICAgICAgICAgICA8R09TVFIzNDEwMjAxMi0lMTItS2V5VmFsdWUg<br>eG1sbnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6Y3B4bWxzZWMiPg0KICAgICAgICAgICAgICAgPE5hbWVk<br>Q3VydmUgVVJJPSJlcm46b2lkOjEuMi42NDMuNy4xLjIuMS4yLjIiIC8+DQogICAgICAgICAgICAgICA8UHVi<br>bGljS2V5PkV4alBWUW9qT1JVUmdrUERCTTloZFhRRGFvV2hMc3NHdkFtOFRwMDcyaGlhUlVGVjBNSklMeXhR<br>Q29lNFpPZU5yemhMY2FTclV3bDN4bi9PSjBZVEIvMFBXMlhnSE5uanY4b2NhN0VJVXdibjJ0UmJxTHRxSHY0<br>MURtaHVrUUxWRkwwYzRUVTZhVVJocGRmaENHTnI4ODFMbXZZLlRwZjRBS0l2eXpTa0NIND08LlBlYmxpY0tl<br>eT4NCiAgICAgICAgICAgIDwvR09TVFIzNDEwMjAxMi01MTItS2V5VmFsdWU+DQogICAgICAgICA8L0tleVZh<br>bHVlPg0KICAgICAgPC9LZXlJbmZvPg0KICAgPC9TaWduYXRlcmU+DQo8L3Jvb3Q+ |
| --- |



### <a id="p100330"></a>Б.3 Подпись XML-документа с использованием алгоритма, определенного в ГОСТ Р 34.10-2001, [подраздел 6.1](https://bukva.ai/docs/standart-gost-r-34-10-2001#p100152), в элементе SignatureMethod


<a id="p100331"></a>Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в [[7](#p100394), подраздел 4.2].
<a id="p100332"></a>Координата x ключа проверки подписи сертификата равна:

<a id="p100333"></a>0x577E324FE70F2B6DF45C437A0305E5FD2C89318C13CD0875401A026075689584

<a id="p100334"></a>Координата y равна:

<a id="p100335"></a>0x601AEACABC660FDFB0CBC7567EBBA6EA8DE40FAE857C9AD0038895B916CCEB8F

<a id="p100336"></a>Соответствующий ключ подписи d равен:

<a id="p100337"></a>0x0B293BE050D0082BDAE785631A6BAB68F35B42786D6DDA56AFAF169891040F77

<a id="p100338"></a>Число k равно:

<a id="p100339"></a>0x5782C53F110C596F9155D35EBD25A06A89C50391850A8FEFE33B0E270318857C

<a id="p100340"></a>Число $\overline{h}$ равно:

<a id="p100341"></a>0xEF3E03620C2B0E87E43F503A839AB7868071EA28CA38AABD915D56A5F74400F4

<a id="p100342"></a>Подписанный XML-документ выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<root>
  <DataToSign Id="ToSign">Data</DataToSign>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
     <SignedInfo>
       <CanonicalizationMethod
        Algorithm="http://www.w3.org/TR/2001/REC-xml-cl4n-20010315"/>
       <SignatureMethod
       Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"/>
     <Reference URI ="#ToSign">
        <Transforms>
           <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-cl4n-20010315"/>
        </Transforms>
        <DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"/>
        <DigestValue>FVQbzF2djfNNJO3JG0OLfSODlZkibTcUmF2DS4nnuPY=</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>n2UHtdu25fPzJNYyojbNTq52VlD3UBVQqI5xNhdYopDpMjpeiN2H+3xyQ4O//
     nzslLn/oqwzvu9zpaH3Q0BPaw==</SignatureValue>
    <KeyInfo>
      <KeyValue>
        <GOSTR34102001KeyValue xmlns="urn:ietf:params:xml:ns:cpxmlsec">
          <NamedCurve URI="urn:oid:1.2.643.2.2.36.0" />
          <PublicKey>hJVodWACGkBlCM0TjDGJLP3lBQN6Q1z0bSsP508yfleP68wWuZWIA9CafIW
           uD+SN6qa7flbHy7DfD2a8yuoaYA==</PublicKey>
        </GOSTR34102001KeyValue>
      </KeyValue>
    </KeyInfo>
  </Signature>
</root>
<a id="p100343"></a>Подписанный XML-документ в кодировке base64 выглядит следующим образом:

| <a id="p100344"></a>77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48cm9vdD4NCiAgIDxEYXRhVG9TaWdu<br>IElkPSJUb1NpZ24iPkRhdGE8L0RhdGFUb1NpZ24+DQogICA8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3<br>LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICAgIDxTaWduZWRJbmZvPg0KICAgICAgICAgPENhbm9u<br>aWNhbG16YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwt<br>YzE0bi0yMDAxMDMxNSIgLz4NCiAgICAgICAgIDxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJ1cm46aWV0<br>ZjpwYXJhbXM6eG1sOm5zOmNweG1sc2VjOmFsZ29yaXRobXM6Z29zdHIzNDEwMjAwMS1nb3N0cjM0MTEiIC8+<br>DQogICAgICAgICA8UmVmZXJlbmNlIFVSST0iI1RvU2lnbiI+DQogICAgICAgICAgICA8VHJhbnNmb3Jtcz4N<br>CiAgICAgICAgICAgICAgIDxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAx<br>LlJFQyl4bWwtYzE0bi0yMDAxMDMxNSIgLz4NCiAgICAgICAgICAgIDwvVHJhbnNmb3Jtcz4NCiAgICAgICAg<br>ICAgIDxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmNweG1sc2VjOmFs<br>Z29yaXRobXM6Z29zdHIzNDExIiAvPg0KICAgICAgICAgICAgPERpZ2VzdFZhbHVlPkZWUWJ6RjJkamZOTkpP<br>M0pHME9MZlNPRGxaa2liVGNVbUYyRFM0bm51UFk9PC9EaWdlc3RWYWx1ZT4NCiAgICAgICAgIDwvUmVmZXJl<br>bmNlPg0KICAgICAgPC9TaWduZWRJbmZvPg0KICAgICAgPFNpZ25hdHVyZVZhbHVlPm4yVUh0ZHUyNWZQekpO<br>WXlvamJOVHE1MlYxRDNVQlZRcUk1eE5oZFlvcERwTWpwZWlOMkgrM3h5UTRPLy9uenMxTG4vb3F3enZ1OXpw<br>YUgzUTBCUGF3PT08L1NpZ25hdHVyZVZhbHVlPg0KICAgICAgPEtleUluZm8+DQogICAgICAgICA8S2V5VmFs<br>dWU+DQogICAgICAgICAgICA8R09TVFIzNDEwMjAwMUtleVZhbHVlIHhtbG5zPSJ1cm46aWV0ZjpwYXJhbXM6<br>eG1sOm5zOmNweG1sc2VjIj4NCiAgICAgICAgICAgICAgIDxOYW1lZEN1cnZlIFVSST0idXJuOm9pZDoxLjIu<br>NjQzLjIuMi4zNi4wIiAvPg0KICAgICAgICAgICAgICAgPFB1YmxpY0tleT5oSlZvZFdBQ0drQjFDTTBUakRH<br>SkxQM2xCUU42UTF6MGJTc1A1MDh5ZmxlUDY4d1d1WldJQTlDYWZJV3VEK1NONnFhN2ZsYkh5N0RmRDJhOHl1<br>b2FZQT09PC9QdWJsaWNLZXk+DQogICAgICAgICAgICA8L0dPU1RSMzQxMDIwMDFLZXlWYWx1ZT4NCiAgICAg<br>ICAgIDwvS2V5VmFsdWU+DQogICAgICA8L0tleUluZm8+DQogICA8L1NpZ25hdHVyZT4NCjwvcm9vdD4= |
| --- |



### <a id="p100345"></a>Б.4 Подпись XML-документа с передачей X.509-сертификата в элементе KeyInfo


<a id="p100346"></a>Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в Р 1323565.1.023-2018, [приложение А](https://bukva.ai/docs/r-1323565-1-023-2018#p100277).
<a id="p100347"></a>Координата x ключа проверки подписи сертификата равна:

<a id="p100348"></a>0x971566CEDA436EE7678F7E07E84EBB7217406C0B4747AA8FD2AB1453C3D0DFBA

<a id="p100349"></a>Координата y равна:

<a id="p100350"></a>0xAD58736965949F8E59830F8DE20FC6C0D177F6AB599874F1E2E24FF71F9CE643

<a id="p100351"></a>Соответствующий ключ подписи d равен:

<a id="p100352"></a>0xBFCF1D623E5CDD3032A7C6EABB4A923C46E43D640FFEAAF2C3ED39A8FA399924

<a id="p100353"></a>Число k равно:

<a id="p100354"></a>0x5782C53F110C596F9155D35EBD25A06A89C50391850A8FEFE33B0E270318857C

<a id="p100355"></a>Число $\overline{h}$ равно:

<a id="p100356"></a>0x054D1DABB161D63424F8DABB2800708B00F78DA7582699E8F2F0A521C7CE8144

<a id="p100357"></a>Подписанный XML-документ выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <DataToSign Id="ToSign">Data</DataToSign>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
     <SignedInfo>
       <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
       <SignatureMethod
       Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" />
       <Reference URI="#ToSign">
         <Transforms>
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
         </Transforms>
         <DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256" />
         <DigestValue>9QLsxPPo7LlX6IXqwzjcNDmbFuCCGivQ1s61hcPuITM=</DigestValue>
       </Reference>
     </SignedInfo>
     <SignatureValue>jcQJhWtWbTCV7bjFky5vGXXUFigc74FXRi79lZnFHK7pMjpeiN2H+3xyQ4O//
      nzslLn/oqwzvu9zpaH3Q0BPaw==</SignatureValue>
     <KeyInfo>
       <X509Data>
         <X509Certificate>MIICYjCCAg+gAwIBAgIBATAKBggqhQMHAQEDAjBWMSkwJwYJKoZIhvcN
          AQkBFhpHb3N0UjM0MTAtMjAxMkBleGFtcGxlLmNvbTEpMCcGAlUEAxMgR29zdFIzNDEwLT
          IwMTIgKDI1NiBiaXQpIGV4YW1wbGUwHhcNMTMxMTA1MTQwMjM3WhcNMzAxMTAxMTQwMjM3
          WjBWMSkwJwYJKoZIhvcNAQkBFhpHb3N0UjM0MTAtMjAxMkBleGFtcGxlLmNvbTEpMCcGA1
          UEAxMgR29zdFIzNDEwLTIwMTIgKDIlNiBiaXQpIGV4YWlwbGUwZjAfBggqhQMHAQEBATAT
          BgcqhQMCAiQABggqhQMHAQECAgNDAARAut/Qw1MUq9KPqkdHC2xAF3K7TugHfo9n525D2s
          5mFZdD5pwf90/i4vF0mFmr9nfRwMYP4o0PglmOn5RlaXNYraOBwDCBvTAdBgNVHQ4EFgQU
          1fIeN1HaPbw+XWUzbkJ+kHJUT0AwCwYDVR0PBAQDAgHGMA8GA1UdEwQIMAYBAf8CAQEwfg
          YDVR0BBHcwdYAU1fIeN1HaPbw+XWUzbkJ+kHJUT0ChWqRYMFYxKTAnBgkqhkiG9w0BCQE
          WGkdvc3RSMzQxMC0yMDEyQGV4YWlwbGUuY29tMSkwJwYDVQQDEyBHb3N0UjM0MTAtMjAx
          MiAoMjU2IGJpdCkgZXhhbXBsZYIBATAKBggqhQMHAQEDAgNBAF5bm4BbARR6hJLEoWJkO
          sYV3Hd7kXQQjz3CdqQfmHrz6TI6Xojdh/t8ckODv/587NS5/6KsM77vc6Wh90NAT2s=</
          X509Certificate>
       </X509Data>
     </KeyInfo>
  </Signature>
</root>
<a id="p100358"></a>Подписанный XML-документ в кодировке base64 выглядит следующим образом:

| <a id="p100359"></a>77u/PD94bWwgdmVyc21vbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48cm9vdD4NCiAgIDxEYXRhVG9TaWdu<br>IElkPSJUb1NpZ24iPkRhdGE8L0RhdGFUb1NpZ24+DQogICA8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3<br>LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICAgIDxTaWduZWRJbmZvPg0KICAgICAgICAgPENhbm9<br>uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWw<br>tYzE0bi0yMDAxMDMxNSIgLz4NCiAgICAgICAgIDxTaWduYXRlcmVNZXRob2QgQWxnb3JpdGhtPSJ1cm46aWV<br>0ZjpwYXJhbXM6eGlsOm5zOmNweGlsc2VjOmFsZ29yaXRobXM6Z29zdHIzNDEwMjAxMilnb3N0cjM0MTEyMDE<br>yLTI1NiIgLz4NCiAgICAgICAgIDxSZWZlcmVuY2UgVVJJPSIjVG9TaWduIj4NCiAgICAgICAgICAgIDxUcmF<br>uc2Zvcm1zPg0KICAgICAgICAgICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3J<br>nL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1IiAvPg0KICAgICAgICAgICAgPC9UcmFuc2Zvcm1zPg0<br>KICAgICAgICAgICAgPERpZ2VzdEl1dGhvZCBBbGdvcml0aG09InVybjppZXRmOnBhcmFtczp4bWw6bnM6Y3B<br>4bWxzZWM6YWxnb3JpdGhtczpnb3N0cjM0MTEyMDEyLTI1NiIgLz4NCiAgICAgICAgICAgIDxEaWdlc3RWYWx<br>1ZT45UUxzeFBQbzdMbFg2SVhxd3pqY05EbWJGdUNDR2l2UTFzNjFoY1B1SVRNPTwvRGlnZXN0VmFsdWU+DQo<br>gICAgICAgICA8LlJlZmVyZW5jZT4NCiAgICAgIDwvU2lnbmVkSW5mbz4NCiAgICAgIDxTaWduYXR1cmVWYWx<br>1ZT5qY1FKaFd0V2JUQ1Y3YmpGa3k1dkdYWFVGaWdjNzRGWFJpNzlsWm5GSEs3cE1qcGVpTjJIKzN4eVE0Ty8<br>vbnpzMUxuL29xd3p2dTl6cGFIM1EwQlBhdz09PC9TaWduYXRlcmVWYWxlZT4NCiAgICAgIDxLZXlJbmZvPg0<br>KICAgICAgICAgPFg1MDlEYXRhPg0KICAgICAgICAgICAgPFg1MDlDZXJ0aWZpY2F0ZT5NSUlDWWpDQ0FnK2d<br>Bd0lCQWdJQkFUQUtCZ2dxaFFNSEFRRURBakJXTVNrd0p3WUpLb1pJaHZjTkFRa0JGaHBIYjNOMFVqTTBNVEF<br>0TWpBeE1rQmxlR0Z0Y0d4bExtTnZiVEVwTUNjR0ExVUVBeE1nUjI5emRGSXpOREV3TFRJd0lUSWdLREkxTml<br>CaWFYUXBJR1Y0WVcxd2JHVXdIaGNOTVRNeE1UQTFNVFF3TWpNM1doY05NekF4TVRBeE1UUXdNak0zV2pCV01<br>Ta3dKdl1KS29aSWh2Y05BUWtCRmhwSGIzTjBVak0wTVRBdE1qQXhNa0JsZUdGdGNHeGxMbU52YIRFcElDY0d<br>BMVVFQXhNZ1IyOXpkRkl6TkRFd0xUSXdNVElnS0RJMU5pQmlhWFFwSUdWNFlXMXdiR1V3WmpBZkJnZ3FoUUl<br>IQVFFQkFUQVRCZ2NxaFFNQ0FpUUFCZ2dxaFFNSEFRRUNBZ05EQUFSQXV0LlF3MUlVcTlLUHFrZEhDMnhBRjN<br>LN1R1Z0hmbzluNTI1RDJzNWlGWmRENXB3ZjkwL2k0dkYwbUZtcjluZlJ3TVlQNG8wUGcxbU9uNVJsYVhOWXJ<br>hT0J3RENCdlRBZEJnTlZIUTRFRmdRVTFmSWVOMUhhUGJ3K1hXVXpia0ora0hKVVQwQXdDd1lEVlIwUEJBUUR<br>BZ0hHTUE4R0ExVWRFdlFJTUFZQkFmOENBUUV3ZmdZRFZSMEJCSGN3ZFlBVTFmSWVOMUhhUGJ3KlhXVXpia0<br>ora0hKVVQwQ2hXcVJZTUZZeEtUQW5CZ2txaGtpRzl3MEJDUUVXR2tkdmMzUlNNelF4TUMweU1ERXlRR1Y0WV<br>cxd2JHVXVZMjl0TVNrd0p3WURWUVFERXlCSGIzTjBVak0wTVRBdE1qQXhNaUFvTWpVMklHSnBkQ2tnWlhoaG<br>JYQnNaWUlCQVRBS0JnZ3FoUUlIQVFFREFnTkJBRjVibTRCYkFSUjZoSkxFbldKa09zWVYzSGQ3alhRUWp6M0<br>NkcVFmbUhyejZUSTZYb2pkaC90OGNrT0R2LzU4N05TNS82S3NNNzd2YzZXaDkwTkFUMnM9PC9YNTA5Q2VydG<br>lmaWNhdGU+DQogICAgICAgICA8LlglMDlEYXRhPg0KICAgICAgPC9LZXlJbmZvPg0KICAgPC9TaWduYXRlcm<br>U+DQo8L3Jvb3Q+ |
| --- |



### <a id="p100360"></a>Б.5 Подпись XML-документа с ключом проверки подписи [ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) 256 бит в элементе DEREncodedKeyValue


<a id="p100361"></a>Для создания подписи XML-документа, представленного в данном примере, был использован сертификат, полностью идентичный сертификату в Р 1323565.1.023-2018, [приложение А](https://bukva.ai/docs/r-1323565-1-023-2018#p100277).
<a id="p100362"></a>Координата x ключа проверки подписи сертификата равна:

<a id="p100363"></a>0x971566CEDA436EE7678F7E07E84EBB7217406C0B4747AA8FD2AB1453C3D0DFBA

<a id="p100364"></a>Координата y равна:

<a id="p100365"></a>0xAD58736965949F8E59830F8DE20FC6C0D177F6AB599874F1E2E24FF71F9CE643

<a id="p100366"></a>Соответствующий ключ подписи d равен:

<a id="p100367"></a>0xBFCF1D623E5CDD3032A7C6EABB4A923C46E43D640FFEAAF2C3ED39A8FA399924

<a id="p100368"></a>Число k равно:

<a id="p100369"></a>0x5782C53F110C596F9155D35EBD25A06A89C50391850A8FEFE33B0E270318857C

<a id="p100370"></a>Число $\overline{h}$ равно:

<a id="p100371"></a>0x054D1DABB161D63424F8DABB2800708B00F78DA7582699E8F2F0A521C7CE8144

<a id="p100372"></a>Подписанный XML-документ выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <DataToSign Id="ToSign">Data</DataToSign>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
     <SignedInfo>
       <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
       <SignatureMethod
       Algorithm="urn:letf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" />
       <Reference URI="#ToSign">
         <Transforms>
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
         </Transforms>
         <DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256" />
         <DigestValue>9QLsxPPo7LlX6IXqwzjcNDmbFuCCGivQls61hcPuITM=</DigestValue>
       </Reference>
     </SignedInfo>
     <SignatureValue>jcQJhWtWbTCV7bjFky5vGXXUFigc74FXRi79lZnFHK7pMjpeiN2H+3xyQ4O//
      nzslLn/oqwzvu9zpaH3Q0BPaw==</SignatureValue>
     <KeyInfo>
       <DEREncodedKeyValue xmlns="http://www.w3.org/2009/xmldsigll#">JMGYwHwYIKoUDB
        wEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIDQwAEQLrf0MNTFKvSj6pHRwtsQBdyu07oB36PZ+d
        uQ9rOZhWXQ+acH/dP4uLxdJhZq/Z30cDGD+KND4NZjp+UZWlzWK0=
       </DEREncodedKeyValue>
     </KeyInfo>
  </Signature>
</root>
<a id="p100373"></a>Подписанный XML-документ в кодировке base64 выглядит следующим образом:

| <a id="p100374"></a>77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48cm9vdD4NCiAgIDxEYXRhVG9TaWdu<br>IElkPSJUb1NpZ24iPkRhdGE8L0RhdGFUb1NpZ24+DQogICA8U2lnbmF0dXJlIHhtbG5zPSJodHRwOi8vd3d3<br>LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICAgIDxTaWduZWRJbmZvPg0KICAgICAgICAgPENhbm9u<br>aWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwt<br>YzE0bi0yMDAxMDMxNSIgLz4NCiAgICAgICAgIDxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJ1cm46aWV0<br>ZjpwYXJhbXM6eG1sOm5zOmNweG1sc2VjOmFsZ29yaXRobXM6Z29zdHIzNDEwMjAxMi1nb3N0cjM0MTEyMDEy<br>LTI1NiIgLz4NCiAgICAgICAgIDxSZWZlcmVuY2UgVVJJPSIjVG9TaWduIj4NCiAgICAgICAgICAgIDxUcmFu<br>c2ZvcmlzPg0KICAgICAgICAgICAgICAgPFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3Jn<br>L1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1IiAvPg0KICAgICAgICAgICAgPC9UcmFuc2Zvcm1zPg0K<br>ICAgICAgICAgICAgPERpZ2VzdE1ldGhvZCBBbGdvcml0aG09InVybjppZXRmOnBhcmFtczp4bWw6bnM6Y3B4<br>bWxzZWM6YWxnb3JpdGhtczpnb3N0cjM0MTEyMDEyLTI1NiIgLz4NCiAgICAgICAgICAgIDxEaWdlc3RWYWx1<br>ZT45UUxzeFBQbzdMbFg2SVhxd3pqY05EbWJGdUNDR2l2UTFzNjFoYlBlSVRNPTwvRGlnZXN0VmFsdWU+DQog<br>ICAgICAgICA8LlJlZmVyZW5jZT4NCiAgICAgIDwvU2lnbmVkSW5mbz4NCiAgICAgIDxTaWduYXR1cmVWYWx1<br>ZT5qYlFKaFd0V2JUQlY3YmpGa3kldkdYWFVGaWdjNzRGWFJpNzlsWm5GSEs3cElqcGVpTjJIKzN4eVE0Ty8v<br>bnpzMUxuL29xd3p2dTl6cGFIMlEwQlBhdz09PC9TaWduYXRlcmVWYWxlZT4NCiAgICAgIDxLZXlJbmZvPg0K<br>ICAgICAgICAgPERFUkVuY29kZWRLZXlWYWxlZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwOS94bWxk<br>c2lnMTEjIj5NR1l3SHdZSUtvVURCd0VCQVFFd0V3WUhLblVEQWdJa0FBWUlLblVEQndFQkFnSURRd0FFUUxy<br>ZjBNTlRGS3ZTajZwSFJ3dHNRQmR5dTA3b0IzNlBaK2RlUTlyTlpoVlhRK2FjSC9kUDRlTHhkSmhacS9aMzBj<br>REdEK0tORDROWmpwKlVaV2x6V0swPTwvREVSRW5jb2RlZEtleVZhbHVlPg0KICAgICAgPC9LZXlJbmZvPg0K<br>ICAgPC9TaWduYXRlcmU+DQo8L3Jvb3Q+ |
| --- |







## <a id="p100375"></a>БИБЛИОГРАФИЯ


| <a id="p100376"></a>[1] | <a id="p100377"></a>W3C XMLDSIG | <a id="p100378"></a>Eastlake, D., Reagle, J., and D. Solo, XML Signature Syntax and Processing Version 1.1, W3C Recommendation, 2013 |
| --- | --- | --- |
| <a id="p100379"></a>[2] | <a id="p100380"></a>W3C XMLSCHEMA-1 | <a id="p100381"></a>Thompson, H., Beech, D. Maloney, M. and N. Mendelsohn, XML Schema Part 1: Structures Second Edition, W3C Recommendation, 2004 |
| <a id="p100382"></a>[3] | <a id="p100383"></a>W3C XMLSCHEMA-2 | <a id="p100384"></a>Biron, Paul and A. Malhotra, XML Schema Part 2: Datatypes Second Edition, W3C Recommendation, 2004 |
| <a id="p100385"></a>[4] | <a id="p100386"></a>IETF RFC 4648 | <a id="p100387"></a>Josefsson, S., The Base16, Base32, and Base64 Data Encodings, IETF RFC 4648, 2008 |
| <a id="p100388"></a>[5] | <a id="p100389"></a>IETF RFC 3061 | <a id="p100390"></a>Mealling, M., A URN Namespace of Object Identifiers, IETF RFC 3061, 2001 |
| <a id="p100391"></a>[6] | <a id="p100392"></a>IETF RFC 4357 | <a id="p100393"></a>Popov, V., Kurepkin, I., and S. Leontiev, Additional Cryptographic Algorithms for Use with GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms, IETF RFC 4357, 2006 |
| <a id="p100394"></a>[7] | <a id="p100395"></a>IETF RFC 4491 | <a id="p100396"></a>Leontiev, S. Shefanovski, D., Using the GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms with the Internet X.509 Public Key Infrastructure. Certificate and CRL Profile, IETF RFC 4491, 2006 |







<table>
<colgroup><col width="76%"><col width="24%"></colgroup>
<tr><td><a id="p100397"></a>УДК 681.3.06:006.354</td><td><a id="p100398"></a>ОКС 35.040</td></tr>
<tr><td colspan="2"><a id="p100399"></a>Ключевые слова: криптография, синтаксис, сообщения, электронная подпись</td></tr>
</table>




<a id="p100400"></a>

---
