Показать/Скрыть содержание

    Примеры запросов на создание подписи средствами REST API

    Раздел содержит примеры HTTP-запросов к REST-интерфейсу Сервиса Подписи DSS для создания электронной подписи.

    Пользовательский сертификат

    При выполнении любой операции подписи Сервис должен располагать информацией о сертификате ключа подписи. Это можно сделать двумя способами:

    • передача идентификатора сертификата в запросе на формирование подписи
    • использование сертификата по умолчанию

    Для получения идентификтора сертификата можно воспользоваться методом GetCertificates.

    Если необходимо использовать сертификат по умолчанию, то в качестве идентификатора сертификата в запросе следует передавать значение 0, предварительно назначив один из сертификатов пользователя сертификатом по умолчанию.

    Форматы подписи

    REST-интерфейс Сервиса Подписи DSS позволяет подписывать документы, используя следующие форматы электронной подписи:

    • Необработанная подпись ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012 (Raw)

      • Необработанная подпись документа
      • Необработанная подпись хэш-значения документа
    • Усовершенствованная подпись (CMS Advanced Electronic Signature)

      • CMS (CAdES Basic Electronic Signature, CAdES-BES)
      • CAdES-T (CAdES Timestamp)
      • CAdES XLT1 (CAdES X-Long Type 1)
    • Подпись XML-документов (XML Digital Signature, XMLDSig)

    • Подпись документов Microsoft Office

    • Подпись PDF-документов

    Типовые ошибки

    HTTP-код Ошибка Описание
    400 invalid_signature_params Неверно указаны параметры подписи
    400 invalid_certificate Указан неверный идентификатор сертификата
    400 invalid_pin Указан неверный ПИН-код
    400 content_required Не передан документ для подписания
    500 An error has occurred Внутренняя ошибка сервера
    Примечание

    Одной из причин ошибки HTTP 500 может быть несоответствие формата документа и формата подписи. Например, для подписи формата PDF отправлен текстовый документ.

    Необработанная подпись

    Сервис Подписи DSS позволяет формировать необработанную подпись двумя способами:

    • Необработанная подпись документа
    • Необработанная подпись хэш-значения документа

    Необработанная подпись документа

    Пример запроса

    В примере создаeтся простая подпись по стандарту ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"T2gsIGhlbGxvIHRoZXJlIQ==",
        "Signature":
            {
                "Type":"GOST3410",
                "Parameters":
                    {
                        "Hash":"False"
                    },
                "CertificateId":1,
                "PinCode":""
            }
    }
    

    Пример ответа

    Сервис Подписи вернeт закодированную в Base64 электронную подпись.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "pq3fJ6NP1LWNW6yYgx0zOvdMSJaZBZ58L99IXvpVj/T/l+d0cbXqJHX6u7M7CGFuvyvbg6mA6 ..."
    

    Необработанная подпись хэш-значения

    Пример запроса

    В примере создаeтся простая подпись хэш-значения по стандарту ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU0=",
        "Signature":
            {
                "Type":"GOST3410",
                "Parameters":
                    {
                        "Hash":"True"
                    },
                "CertificateId":1,
                "PinCode":""
            }
    }
    
    Примечание

    При создании подписи хэш-значения в поле Content необходимо передавать хэш-значение подписываемого документа.

    Пример ответа

    Сервис Подписи вернeт закодированную в Base64 электронную подпись.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "pq3fJ6NP1LWNW6yYgx0zOvdMSJaZBZ58L99IXvpVj/T/l+d0cbXqJHX6u7M7CGFuvyvbg6mA6 ..."
    

    Подпись в формате CMS

    Сервис Подписи DSS позволяет создавать следующие виды CMS-подписи:

    • Отделeнная подпись
    • Присоединенная подпись
    • Отделeнная подпись хэш-значения
    • Соподпись документа
    • Соподпись хэш-значения документа
    • Пакетная соподпись документов
    • Пакетная соподпись хэш-значений документов
    • Заверяющая подпись
    • Передача аутентифицированных атрибутов

    Отделeнная подпись

    Пример запроса

    В примере создаeтся откреплeнная CAdES-BES подпись.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"T2gsIGhlbGxvIHRoZXJlIQ==",
        "Signature":
            {
                "Type":"CAdES",
                "Parameters":
                    {
                        "Hash":"False",
                        "CADESType":"BES",
                        "IsDetached":"True"
                    },
                "CertificateId":1,
                "PinCode":""
            }
    }
    

    Пример ответа

    Сервис Подписи вернeт закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjgUAMAsGCSqGSIb3DQ ..."
    

    Присоединeнная подпись

    Пример запроса

    В примере создаeтся присоединeнная CAdES-BES подпись.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"T2gsIGhlbGxvIHRoZXJlIQ==",
        "Signature":
            {
                "Type":"CAdES",
                "Parameters":
                    {
                        "Hash":"False",
                        "CADESType":"BES",
                        "IsDetached":"False"
                    },
                "CertificateId":1,
                "PinCode":""
            }
    }
    

    Пример ответа

    Сервис Подписи вернeт закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQEUAMAsGCSqGSIb3DQ ..."
    

    Отделeнная подпись хэш-значения

    Пример запроса

    В примере создаeтся отделeнная подпись хэш-значения документа в формате CAdES-BES.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"j/MkCnzPzzIVmj42zxIRuu42akUzSVEq1fQTIuk1lPk=",
        "Signature":
            {
                "Type":"CAdES",
                "Parameters":
                    {
                        "Hash":"True",
                        "CADESType":"BES",
                        "IsDetached":"True"
                    },
                "CertificateId":1,
                "PinCode":""
            }
    }
    
    Примечание

    При создании подписи хэш-значения в поле Content необходимо передавать хэш-значение подписываемого документа.

    Пример ответа

    Сервис Подписи вернeт закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Соподпись документа

    Пример запроса

    В примере формируется соподпись документа с использованием второго сертификата ключа проверки электронной подписи.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"MIIIpwYJKoZIhvcNAQcCoIIImDCCkiG9w0BBwGxAJOVQQJ ...",
        "Signature":
            {
            "Type":"CAdES",
            "Parameters":
                {
                    "Hash":"False",
                    "CADESType":"BES",
                    "IsDetached":"True",
                    "OriginalDocument":"T2gsIGhlbGxvIHRoZXJlIQ==",
                    "CmsSignatureType":"Cosign"
                },
                "CertificateId":2,
                "PinCode":""
            }
    }
    
    Примечание

    При создании соподписи в поле Content необходимо передавать подписанное сообщение, в которое следует добавить соподпись.

    В поле OriginalDocument необходимо передавать содержимое исходного документа.

    В запросе должен присутствовать параметр CmsSignatureType, имеющий значение cosign.

    Пример ответа

    Сервис Подписи вернeт закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Соподпись хэш-значения документа

    Пример запроса

    В примере формируется соподпись хэш-значения документа с использованием второго сертификата ключа проверки электронной подписи.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"MIIIpwYJKoZIhvcNAQcCoIIImDCCCJQCAQExDDAKBgYqh ...",
        "Signature":
            {
            "Type":"CAdES",
            "Parameters":
                {
                    "Hash":"True",
                    "CADESType":"BES",
                    "IsDetached":"True",
                    "OriginalDocument":"mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU0=",
                    "CmsSignatureType":"Cosign",
                    "HashAlgorithm":"GR 34.11-2012 256"
                },
                "CertificateId":2,
                "PinCode":""
            }
    }
    
    Примечание

    При создании соподписи в поле Content необходимо передавать подписанное сообщение, в которое следует добавить соподпись.

    В поле OriginalDocument необходимо передавать хэш-значение исходного документа.

    В запросе должен присутствовать параметр CmsSignatureType, имеющий значение cosign.

    В запросе должен присутствовать параметр HashAlgorithm, содержащий идентификатор используемого алгоритма хэширования.

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Пакетная соподпись документа

    Пример запроса

    В примере формируется соподпись документов с использованием второго сертификата ключа проверки электронной подписи.

    Содержимое исходных документов в случае пакетной отделённой соподписи передаётся в структуре Documents в поле OriginalContent. Параметр подписи OriginalDocument не используется.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    
    {
        "Documents" : [
        {
            "Content" : "MIIMngYJKoZIhvcNAQcCoIIMjzCCDIs...",
            "Name":"testdoc",
            "OriginalContent" : "0KLQtdGB0YLQvtCy0YvQtSDQtNCw0L3QvdGL0LUg0LTQu9GPINC/0L7QtNC/0LjRgdC4IDE="
        },
        {
            "Content" : "MIIMngYJKoZIhvcNAQcCoIIMjzCCDIs...",
            "Name":"testdoc1",
            "OriginalContent" : "0KLQtdGB0YLQvtCy0YvQtSDQtNCw0L3QvdGL0LUg0LTQu9GPINC/0L7QtNC/0LjRgdC4IDI="
        }],
        "Signature":
            {
            "Type":"CAdES",
            "Parameters":
                {
                    "Hash":"False",
                    "CADESType":"BES",
                    "IsDetached":"True",
                    "CmsSignatureType":"Cosign"
                },
                "CertificateId":2,
                "PinCode":""
            }
    }
    
    Примечание

    При создании соподписи в поле Content необходимо передавать подписанное сообщение, в которое следует добавить соподпись.

    В поле OriginalContent необходимо передавать содержимое исходного документа.

    В запросе должен присутствовать параметр CmsSignatureType, имеющий значение Cosign.

    Пример ответа

    Сервис Подписи вернeт закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Пакетная соподпись хэш-значения документа

    Пример запроса

    В примере формируется соподпись хэш-значения документов с использованием второго сертификата ключа проверки электронной подписи.

    Хэш-значения документов в случае пакетной отделённой соподписи передаётся в структуре Documents в поле OriginalContent. Параметр подписи OriginalDocument не используется.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Documents" : [
        {
            "Content" : "MIIMngYJKoZIhvcNAQcCoIIMjzCCDIs...",
            "Name":"testdoc",
            "OriginalContent" : "mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU0="
        },
        {
            "Content" : "MIIMngYJKoZIhvcNAQcCoIIMjzCCDIs...",
            "Name":"testdoc1",
            "OriginalContent" : "mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU2="
        }],
        "Signature":
            {
            "Type":"CAdES",
            "Parameters":
                {
                    "Hash":"True",
                    "CADESType":"BES",
                    "IsDetached":"True",
                    "CmsSignatureType":"Cosign"
                },
                "CertificateId":2,
                "PinCode":""
            }
    }
    
    Примечание

    При создании соподписи в поле Content необходимо передавать подписанное сообщение, в которое следует добавить соподпись.

    В поле OriginalContent необходимо передавать хэш-значение исходного документа.

    В запросе должен присутствовать параметр CmsSignatureType, имеющий значение cosign.

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Заверяющая подпись

    Пример запроса

    В примере формируется заверяющая подпись документа.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"MIIIpwYJKoZIhvcNAQcCoIIImDCCCJQCAQExDDAKBgYqhQMCAgkF ...",
        "Signature":
            {
            "Type":"CAdES",
            "Parameters":
                {
                    "Hash":"False",
                    "CADESType":"BES",
                    "IsDetached":"True",
                    "OriginalDocument":"mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU0=",
                    "CmsSignatureType":"Countersign"
                },
                "CertificateId":2,
                "PinCode":""
            }
    }
    
    Примечание

    При создании заверяющей подписи в поле Content необходимо передавать подписанный документ, для которого требуется заверяющая подпись.

    В поле OriginalDocument необходимо передавать исходный документ.

    В запросе должен присутствовать параметр CmsSignatureType, имеющий значение countersign.

    В запросе может присутствовать параметр SignatureIndex, указывающий индекс заверяемой подписи. В случае, если данный параметр отсутствует в запросе, Сервис Подписи будет заверять первую подпись в документе.

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Передача аутентифицированных атрибутов

    В примере передаётся аутентифицированный атрибут.

    Атрибуты передаются в словаре параметров Parameters в ключе AuthenticatedAttributes. Значение ключа - закодированный в Base64 JSON-словарь строка-строка. Ключ словаря - OID атрибута Значение ключа - закодированное в Base64 значение атрибута.

    Ниже приводится пример формирования значения для ключа AuthenticatedAttributes.

    Примечание

    Для примера взят Штамп Времени.

    • Значение атрибута, закодированное в Base64
    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
    
    • Словарь, содержащий набор атрибутов, которые нужно добавить в CMS подпись
    {
    "1.2.840.113549.1.9.16.2.14" : "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"
    }
    
    • Словарь атрибутов закодированный в Base64
    ewoiMS4yLjg0MC4xMTM1NDkuMS45LjE2LjIuMTQiIDogIk1JSVBYZ1lKS29aSWh2Y05BUWNDb0lJUFR6Q0NEMHNDQVFNeERqQU1CZ2dxaFFNSEFRRUNBZ1VBTUdzR0N5cUdTSWIzRFFFSkVBRUVvRndFV2pCWUFnRUJCZ0VwTURBd0RBWUlLb1VEQndFQkFnSUZBQVFnSTRqTzgvUDVHUDZvK2N1TStVcnpRRDlvcHRWMUVzY3g5UWVSSEZxZFY0a0NEUUVVTnFYSkFBQUFBQUFBZ0RJWUR6SXdNakF4TWpJNE1UazFPREV4V3FDQ0NMZ3dnZ2kwTUlJSVlhQURBZ0VDQWhFQkkyMlpBRVdzK1lWT3JRQlJZdzA3YURBS0JnZ3FoUU1IQVFFREFqQ0NBWG94R2pBWUJna3Foa2lHOXcwQkNRRVdDMk5oUUdaamFXbDBMbkoxTVJnd0ZnWUZLb1VEWkFFU0RURXhNRGMzT1Rrd01EYzBNalV4R2pBWUJnZ3FoUU1EZ1FNQkFSSU1NREEzTnpBNE1qTTNOelEzTVFzd0NRWURWUVFHRXdKU1ZURWNNQm9HQTFVRUNBd1ROemNnMExNdUlOQ2MwTDdSZ2RDNjBMTFFzREVaTUJjR0ExVUVCd3dRMExNdUlOQ2MwTDdSZ2RDNjBMTFFzREZGTUVNR0ExVUVDUXc4MFlQUXU5QzQwWWJRc0NEUWxOQyswTHZRczlDKzBZRFJnOUM2MEw3UXN0R0IwTHJRc05HUExDRFF0QzRnTVRVc0lOR0IwWUxSZ0M0Z05DMDFNV1l3WkFZRFZRUUtERjNRcE5DKzBMM1F0Q0FpMEtiUXRkQzkwWUxSZ0NEUXVOQzkwTDNRdnRDeTBMRFJodEM0MExrZzBMZ2cwTGpRdmRHRTBMN1JnTkM4MExEUmh0QzQwTDdRdmRDOTBZdlJoU0RSZ3RDMTBZWFF2ZEMrMEx2UXZ0Q3owTGpRdVNJeE1UQXZCZ05WQkFNTUtOQ2swTDdRdmRDMElDTFFwdEMxMEwzUmd0R0FJTkM0MEwzUXZkQyswTExRc05HRzBMalF1U0l3SGhjTk1qQXdPVEk1TURrd09ETTNXaGNOTWpFd09USTVNRGt3T0RNM1dqQ0NBWE14R0RBV0JnVXFoUU5rQVJJTk1URXdOemM1T1RBd056UXlOVEVhTUJnR0NDcUZBd09CQXdFQkVnd3dNRGMzTURneU16YzNORGN4R2pBWUJna3Foa2lHOXcwQkNRRVdDMk5oUUdaamFXbDBMbkoxTVQ0d1BBWURWUVFKRERYUmc5QzdMaURRbE5DKzBMdlFzOUMrMFlEUmc5QzYwTDdRc3RHQjBMclFzTkdQSU5DMExpQXhOU0RSZ2RHQzBZQXVJRFF0TlRFTE1Ba0cKQTFVRUJoTUNVbFV4SERBYUJnTlZCQWdNRXpjM0lOQ3pMaURRbk5DKzBZSFF1dEN5MExBeEdUQVhCZ05WQkFjTUVOQ3pMaURRbk5DKzBZSFF1dEN5MExBeFpqQmtCZ05WQkFvTVhkQ2swTDdRdmRDMElDTFFwdEMxMEwzUmd0R0FJTkM0MEwzUXZkQyswTExRc05HRzBMalF1U0RRdUNEUXVOQzkwWVRRdnRHQTBMelFzTkdHMExqUXZ0QzkwTDNSaTlHRklOR0MwTFhSaGRDOTBMN1F1OUMrMExQUXVOQzVJakV4TUM4R0ExVUVBd3dvMEtUUXZ0QzkwTFFnSXRDbTBMWFF2ZEdDMFlBZzBMalF2ZEM5MEw3UXN0Q3cwWWJRdU5DNUlqQm1NQjhHQ0NxRkF3Y0JBUUVCTUJNR0J5cUZBd0lDSkFBR0NDcUZBd2NCQVFJQ0EwTUFCRUNndHhzRU0xWGhVWVZ1clZ2Q2RjY1VrUTRkUTJONDl4OW1UMHJua3g5dGh6UmcvV0V4N2kzVTNidmNFSVZMZXIwcW11MWtLMG5lU2hmemJ5bzlQNkJzbzRJRXZEQ0NCTGd3RGdZRFZSMFBBUUgvQkFRREFnUDRNQjBHQTFVZERnUVdCQlJFMEFhUWVkQzFoSTk1YzVockplWk5OOVZHT2pBMEJna3JCZ0VFQVlJM0ZRY0VKekFsQmgwcWhRTUNBaklCQ2U3MVhZYnN3eldGc1pWa2hzdndNb0trUDRHM0NBSUJBUUlCQURBV0JnTlZIU1VCQWY4RUREQUtCZ2dyQmdFRkJRY0RDRENCdHdZSUt3WUJCUVVIQVFFRWdhb3dnYWN3TXdZSUt3WUJCUVVITUFHR0oyaDBkSEE2THk5dlkzTndMbVpqYVdsMExuSjFMMjlqYzNBdGNYVmhiQzl2WTNOd0xuTnlaakEzQmdnckJnRUZCUWN3QW9ZcmFIUjBjRG92TDJOa2NERXVabU5wYVhRdWNuVXZZMlJ3TDJOaExYRjFZV3hmTWw4eU1ERXlMbU5sY2pBM0JnZ3JCZ0VGQlFjd0FvWXJhSFIwY0RvdkwyTmtjREl1Wm1OcGFYUXVjblV2WTJSd0wyTmhMWEYxWVd4Zk1sOHlNREV5TG1ObGNqQWRCZ05WSFNBRUZqQVVNQWdHQmlxRkEyUnhBVEFJQmdZcWhRTmtjUUl3Z2dFVUJnVXFoUU5rY0FTQ0FRa3dnZ0VGRERMUW45Q1EwSnJRbkNBaTBKclJnTkM0MEwvUmd0QyswSi9SZ05DK0lFaFRUU0lnMExMUXRkR0EwWUhRdU5HUElESXVNQXd4MEovUWtOQ2FJQ0xRbXRHQTBMalF2OUdDMEw3UW4KOUdBMEw0ZzBLUFFwaUlnMExMUXRkR0EwWUhRdU5DNUlESXVNQXhOMEtIUXRkR0EwWUxRdU5HRTBMalF1dEN3MFlJZzBZSFF2dEMrMFlMUXN0QzEwWUhSZ3RDeTBMalJqeURpaEpZZzBLSFFwQzh4TWpRdE16UTNOU0RRdnRHQ0lERXdMakE0TGpJd01UZ01UZENoMExYUmdOR0MwTGpSaE5DNDBMclFzTkdDSU5HQjBMN1F2dEdDMExMUXRkR0IwWUxRc3RDNDBZOGc0b1NXSU5DaDBLUXZNVEk0TFRNNE56QWcwTDdSZ2lBeU15NHdOeTR5TURJd01EMEdCU3FGQTJSdkJEUU1NdENoMEpyUWw5Q1lJQ0xRbXRHQTBMalF2OUdDMEw3UW45R0EwTDRnUTFOUUlpRFFzdEMxMFlEUmdkQzQwTGtnTkM0d01JR2xCZ05WSFI4RWdaMHdnWm93UzZCSm9FZUdSV2gwZEhBNkx5OWpaSEF4TG1aamFXbDBMbkoxTDJOa2NDOWtaRE01TVdFME0ySmhNakJrTldRNE1HTmxZVFE0WkdZNFlqWXlaVEEwTURNd01qSTRZbVV5TG1OeWJEQkxvRW1nUjRaRmFIUjBjRG92TDJOa2NESXVabU5wYVhRdWNuVXZZMlJ3TDJSa016a3hZVFF6WW1FeU1HUTFaRGd3WTJWaE5EaGtaamhpTmpKbE1EUXdNekF5TWpoaVpUSXVZM0pzTUlJQlh3WURWUjBqQklJQlZqQ0NBVktBRk4wNUdrTzZJTlhZRE9wSTM0dGk0RUF3SW92aW9ZSUJMS1NDQVNnd2dnRWtNUjR3SEFZSktvWklodmNOQVFrQkZnOWthWFJBYldsdWMzWjVZWG91Y25VeEN6QUpCZ05WQkFZVEFsSlZNUmd3RmdZRFZRUUlEQTgzTnlEUW5OQyswWUhRdXRDeTBMQXhHVEFYQmdOVkJBY01FTkN6TGlEUW5OQyswWUhRdXRDeTBMQXhMakFzQmdOVkJBa01KZEdEMEx2UXVOR0cwTEFnMEtMUXN0QzEwWURSZ2RDNjBMRFJqeXdnMExUUXZ0QzhJRGN4TERBcUJnTlZCQW9NSTlDYzBMalF2ZEM2MEw3UXZOR0IwTExSajlDMzBZd2cwS0RRdnRHQjBZSFF1TkM0TVJnd0ZnWUZLb1VEWkFFU0RURXdORGMzTURJd01qWTNNREV4R2pBWUJnZ3FoUU1EZ1FNQkFSSU1NREEzTnpFd05EYzBNemMxTVN3d0tnWURWUVFERENQUW5OQzQwTDNRdXRDKzBMelJnZEN5MFkvUXQ5R01JTkNnMEw3UmdkR0IwTGpRdUlJS2ZHVGY2QUFBQUEKQUJxVEFLQmdncWhRTUhBUUVEQWdOQkFJWGZMY3lIdGcrVmc1TlQ4b3RTSTduWEE1VGt0VHFYeVZVMXNKVEU4dERsNjdaelllMXdvZWRoV2tZM1lmNDZ2aHZMT1R1em9hN01TY0dpWW82UFE2OHhnZ1lMTUlJR0J3SUJBVENDQVpFd2dnRjZNUm93R0FZSktvWklodmNOQVFrQkZndGpZVUJtWTJscGRDNXlkVEVZTUJZR0JTcUZBMlFCRWcweE1UQTNOems1TURBM05ESTFNUm93R0FZSUtvVURBNEVEQVFFU0REQXdOemN3T0RJek56YzBOekVMTUFrR0ExVUVCaE1DVWxVeEhEQWFCZ05WQkFnTUV6YzNJTkN6TGlEUW5OQyswWUhRdXRDeTBMQXhHVEFYQmdOVkJBY01FTkN6TGlEUW5OQyswWUhRdXRDeTBMQXhSVEJEQmdOVkJBa01QTkdEMEx2UXVOR0cwTEFnMEpUUXZ0QzcwTFBRdnRHQTBZUFF1dEMrMExMUmdkQzYwTERSanl3ZzBMUXVJREUxTENEUmdkR0MwWUF1SURRdE5URm1NR1FHQTFVRUNneGQwS1RRdnRDOTBMUWdJdENtMExYUXZkR0MwWUFnMExqUXZkQzkwTDdRc3RDdzBZYlF1TkM1SU5DNElOQzQwTDNSaE5DKzBZRFF2TkN3MFliUXVOQyswTDNRdmRHTDBZVWcwWUxRdGRHRjBMM1F2dEM3MEw3UXM5QzQwTGtpTVRFd0x3WURWUVFERENqUXBOQyswTDNRdENBaTBLYlF0ZEM5MFlMUmdDRFF1TkM5MEwzUXZ0Q3kwTERSaHRDNDBMa2lBaEVCSTIyWkFFV3MrWVZPclFCUll3MDdhREFNQmdncWhRTUhBUUVDQWdVQW9JSUVEVEFhQmdrcWhraUc5dzBCQ1FNeERRWUxLb1pJaHZjTkFRa1FBUVF3THdZSktvWklodmNOQVFrRU1TSUVJRnFKOHc4RWMzNzh6MzdyRGMwRWsxejJsUXRjU3VuNUFtaWd1UTNPMWdha01JSUIwQVlMS29aSWh2Y05BUWtRQWd3eGdnRy9NSUlCdXpDQ0FiY3dnZ0d6QkJTWldreUloUEFHdGlWL1hZVnlZTWpYSXVRNWFqQ0NBWmt3Z2dHQ3BJSUJmakNDQVhveEdqQVlCZ2txaGtpRzl3MEJDUUVXQzJOaFFHWmphV2wwTG5KMU1SZ3dGZ1lGS29VRFpBRVNEVEV4TURjM09Ua3dNRGMwTWpVeEdqQVlCZ2dxaFFNRGdRTUJBUklNTURBM056QTRNak0zTnpRM01Rc3dDUVlEVlFRR0V3SlNWVEVjTUJvR0ExVUVDQXcKVE56Y2cwTE11SU5DYzBMN1JnZEM2MExMUXNERVpNQmNHQTFVRUJ3d1EwTE11SU5DYzBMN1JnZEM2MExMUXNERkZNRU1HQTFVRUNRdzgwWVBRdTlDNDBZYlFzQ0RRbE5DKzBMdlFzOUMrMFlEUmc5QzYwTDdRc3RHQjBMclFzTkdQTENEUXRDNGdNVFVzSU5HQjBZTFJnQzRnTkMwMU1XWXdaQVlEVlFRS0RGM1FwTkMrMEwzUXRDQWkwS2JRdGRDOTBZTFJnQ0RRdU5DOTBMM1F2dEN5MExEUmh0QzQwTGtnMExnZzBMalF2ZEdFMEw3UmdOQzgwTERSaHRDNDBMN1F2ZEM5MFl2UmhTRFJndEMxMFlYUXZkQyswTHZRdnRDejBMalF1U0l4TVRBdkJnTlZCQU1NS05DazBMN1F2ZEMwSUNMUXB0QzEwTDNSZ3RHQUlOQzQwTDNRdmRDKzBMTFFzTkdHMExqUXVTSUNFUUVqYlprQVJhejVoVTZ0QUZGakRUdG9NSUlCNkFZTEtvWklodmNOQVFrUUFpOHhnZ0hYTUlJQjB6Q0NBYzh3Z2dITE1Bb0dDQ3FGQXdjQkFRSUNCQ0RwWkRna0hIUEFrd3BWVzNoM0NiZW01RmxtVG9FMUkxczZ4Y0drWDJpdGpEQ0NBWmt3Z2dHQ3BJSUJmakNDQVhveEdqQVlCZ2txaGtpRzl3MEJDUUVXQzJOaFFHWmphV2wwTG5KMU1SZ3dGZ1lGS29VRFpBRVNEVEV4TURjM09Ua3dNRGMwTWpVeEdqQVlCZ2dxaFFNRGdRTUJBUklNTURBM056QTRNak0zTnpRM01Rc3dDUVlEVlFRR0V3SlNWVEVjTUJvR0ExVUVDQXdUTnpjZzBMTXVJTkNjMEw3UmdkQzYwTExRc0RFWk1CY0dBMVVFQnd3UTBMTXVJTkNjMEw3UmdkQzYwTExRc0RGRk1FTUdBMVVFQ1F3ODBZUFF1OUM0MFliUXNDRFFsTkMrMEx2UXM5QyswWURSZzlDNjBMN1FzdEdCMExyUXNOR1BMQ0RRdEM0Z01UVXNJTkdCMFlMUmdDNGdOQzAxTVdZd1pBWURWUVFLREYzUXBOQyswTDNRdENBaTBLYlF0ZEM5MFlMUmdDRFF1TkM5MEwzUXZ0Q3kwTERSaHRDNDBMa2cwTGdnMExqUXZkR0UwTDdSZ05DODBMRFJodEM0MEw3UXZkQzkwWXZSaFNEUmd0QzEwWVhRdmRDKzBMdlF2dEN6MExqUXVTSXhNVEF2QmdOVkJBTU1LTkNrMEw3UXZkQzBJQ0xRcHRDMTBMM1JndEdBSU5DNDBMM1F2ZEMrMExMUXNOR0cwTGpRdVNJQ0VRRWoKYlprQVJhejVoVTZ0QUZGakRUdG9NQXdHQ0NxRkF3Y0JBUUVCQlFBRVFGdmZsMmdWdUxJNjIrV3VGTnhxNE02enl3OUxDOHJpUGNyM0FZSm54QWRjYXFNZ1FMR2JONStLVTRNYmk5RjFyZnM4eW00cHhJYitjVW1Ea0VIYStCbz0iCgp9
    

    ** Пример запроса **

    Примечание

    Пример для v2 API DSS (метод /signature). При использовании v1 API DSS ( /documents) передача параметров подписи Parameters полностью аналогична.

    POST /SignServer/rest/api/v2/signature/ HTTP/1.1
    Host: host
    Content-Type: application/json
    Authorization: Bearer eyJ0eXAiOiJKV1QiLC ... YEIhOv0hS0ij0yvf_hpkA
    
    Content-Length: 7315
    
    {
        "BinaryData": [{
            "RefId" : "e9dfe95b-1706-4754-a791-165d79aa968b"
        }],
        "Signature" : 
        { 
            "CertificateId": "0",
            "Type": "CMS",
            "Parameters": {
                "IsDetached " : "false",
                "AuthenticatedAttributes" : "ewoiMS4yLjg0MC4xMTM1NDkuMS45LjE2LjIuMTQiIDogIk1JSVBYZ1lKS29aSWh2Y05BUWNDb0lJUFR6Q0NEMHNDQVFNeERqQU1CZ2dxaFFNSEFRRUNBZ1VBTUdzR0N5cUdTSWIzRFFFSkVBRUVvRndFV2pCWUFnRUJCZ0VwTURBd0RBWUlLb1VEQndFQkFnSUZBQVFnSTRqTzgvUDVHUDZvK2N1TStVcnpRRDlvcHRWMUVzY3g5UWVSSEZxZFY0a0NEUUVVTnFYSkFBQUFBQUFBZ0RJWUR6SXdNakF4TWpJNE1UazFPREV4V3FDQ0NMZ3dnZ2kwTUlJSVlhQURBZ0VDQWhFQkkyMlpBRVdzK1lWT3JRQlJZdzA3YURBS0JnZ3FoUU1IQVFFREFqQ0NBWG94R2pBWUJna3Foa2lHOXcwQkNRRVdDMk5oUUdaamFXbDBMbkoxTVJnd0ZnWUZLb1VEWkFFU0RURXhNRGMzT1Rrd01EYzBNalV4R2pBWUJnZ3FoUU1EZ1FNQkFSSU1NREEzTnpBNE1qTTNOelEzTVFzd0NRWURWUVFHRXdKU1ZURWNNQm9HQTFVRUNBd1ROemNnMExNdUlOQ2MwTDdSZ2RDNjBMTFFzREVaTUJjR0ExVUVCd3dRMExNdUlOQ2MwTDdSZ2RDNjBMTFFzREZGTUVNR0ExVUVDUXc4MFlQUXU5QzQwWWJRc0NEUWxOQyswTHZRczlDKzBZRFJnOUM2MEw3UXN0R0IwTHJRc05HUExDRFF0QzRnTVRVc0lOR0IwWUxSZ0M0Z05DMDFNV1l3WkFZRFZRUUtERjNRcE5DKzBMM1F0Q0FpMEtiUXRkQzkwWUxSZ0NEUXVOQzkwTDNRdnRDeTBMRFJodEM0MExrZzBMZ2cwTGpRdmRHRTBMN1JnTkM4MExEUmh0QzQwTDdRdmRDOTBZdlJoU0RSZ3RDMTBZWFF2ZEMrMEx2UXZ0Q3owTGpRdVNJeE1UQXZCZ05WQkFNTUtOQ2swTDdRdmRDMElDTFFwdEMxMEwzUmd0R0FJTkM0MEwzUXZkQyswTExRc05HRzBMalF1U0l3SGhjTk1qQXdPVEk1TURrd09ETTNXaGNOTWpFd09USTVNRGt3T0RNM1dqQ0NBWE14R0RBV0JnVXFoUU5rQVJJTk1URXdOemM1T1RBd056UXlOVEVhTUJnR0NDcUZBd09CQXdFQkVnd3dNRGMzTURneU16YzNORGN4R2pBWUJna3Foa2lHOXcwQkNRRVdDMk5oUUdaamFXbDBMbkoxTVQ0d1BBWURWUVFKRERYUmc5QzdMaURRbE5DKzBMdlFzOUMrMFlEUmc5QzYwTDdRc3RHQjBMclFzTkdQSU5DMExpQXhOU0RSZ2RHQzBZQXVJRFF0TlRFTE1Ba0cKQTFVRUJoTUNVbFV4SERBYUJnTlZCQWdNRXpjM0lOQ3pMaURRbk5DKzBZSFF1dEN5MExBeEdUQVhCZ05WQkFjTUVOQ3pMaURRbk5DKzBZSFF1dEN5MExBeFpqQmtCZ05WQkFvTVhkQ2swTDdRdmRDMElDTFFwdEMxMEwzUmd0R0FJTkM0MEwzUXZkQyswTExRc05HRzBMalF1U0RRdUNEUXVOQzkwWVRRdnRHQTBMelFzTkdHMExqUXZ0QzkwTDNSaTlHRklOR0MwTFhSaGRDOTBMN1F1OUMrMExQUXVOQzVJakV4TUM4R0ExVUVBd3dvMEtUUXZ0QzkwTFFnSXRDbTBMWFF2ZEdDMFlBZzBMalF2ZEM5MEw3UXN0Q3cwWWJRdU5DNUlqQm1NQjhHQ0NxRkF3Y0JBUUVCTUJNR0J5cUZBd0lDSkFBR0NDcUZBd2NCQVFJQ0EwTUFCRUNndHhzRU0xWGhVWVZ1clZ2Q2RjY1VrUTRkUTJONDl4OW1UMHJua3g5dGh6UmcvV0V4N2kzVTNidmNFSVZMZXIwcW11MWtLMG5lU2hmemJ5bzlQNkJzbzRJRXZEQ0NCTGd3RGdZRFZSMFBBUUgvQkFRREFnUDRNQjBHQTFVZERnUVdCQlJFMEFhUWVkQzFoSTk1YzVockplWk5OOVZHT2pBMEJna3JCZ0VFQVlJM0ZRY0VKekFsQmgwcWhRTUNBaklCQ2U3MVhZYnN3eldGc1pWa2hzdndNb0trUDRHM0NBSUJBUUlCQURBV0JnTlZIU1VCQWY4RUREQUtCZ2dyQmdFRkJRY0RDRENCdHdZSUt3WUJCUVVIQVFFRWdhb3dnYWN3TXdZSUt3WUJCUVVITUFHR0oyaDBkSEE2THk5dlkzTndMbVpqYVdsMExuSjFMMjlqYzNBdGNYVmhiQzl2WTNOd0xuTnlaakEzQmdnckJnRUZCUWN3QW9ZcmFIUjBjRG92TDJOa2NERXVabU5wYVhRdWNuVXZZMlJ3TDJOaExYRjFZV3hmTWw4eU1ERXlMbU5sY2pBM0JnZ3JCZ0VGQlFjd0FvWXJhSFIwY0RvdkwyTmtjREl1Wm1OcGFYUXVjblV2WTJSd0wyTmhMWEYxWVd4Zk1sOHlNREV5TG1ObGNqQWRCZ05WSFNBRUZqQVVNQWdHQmlxRkEyUnhBVEFJQmdZcWhRTmtjUUl3Z2dFVUJnVXFoUU5rY0FTQ0FRa3dnZ0VGRERMUW45Q1EwSnJRbkNBaTBKclJnTkM0MEwvUmd0QyswSi9SZ05DK0lFaFRUU0lnMExMUXRkR0EwWUhRdU5HUElESXVNQXd4MEovUWtOQ2FJQ0xRbXRHQTBMalF2OUdDMEw3UW4KOUdBMEw0ZzBLUFFwaUlnMExMUXRkR0EwWUhRdU5DNUlESXVNQXhOMEtIUXRkR0EwWUxRdU5HRTBMalF1dEN3MFlJZzBZSFF2dEMrMFlMUXN0QzEwWUhSZ3RDeTBMalJqeURpaEpZZzBLSFFwQzh4TWpRdE16UTNOU0RRdnRHQ0lERXdMakE0TGpJd01UZ01UZENoMExYUmdOR0MwTGpSaE5DNDBMclFzTkdDSU5HQjBMN1F2dEdDMExMUXRkR0IwWUxRc3RDNDBZOGc0b1NXSU5DaDBLUXZNVEk0TFRNNE56QWcwTDdSZ2lBeU15NHdOeTR5TURJd01EMEdCU3FGQTJSdkJEUU1NdENoMEpyUWw5Q1lJQ0xRbXRHQTBMalF2OUdDMEw3UW45R0EwTDRnUTFOUUlpRFFzdEMxMFlEUmdkQzQwTGtnTkM0d01JR2xCZ05WSFI4RWdaMHdnWm93UzZCSm9FZUdSV2gwZEhBNkx5OWpaSEF4TG1aamFXbDBMbkoxTDJOa2NDOWtaRE01TVdFME0ySmhNakJrTldRNE1HTmxZVFE0WkdZNFlqWXlaVEEwTURNd01qSTRZbVV5TG1OeWJEQkxvRW1nUjRaRmFIUjBjRG92TDJOa2NESXVabU5wYVhRdWNuVXZZMlJ3TDJSa016a3hZVFF6WW1FeU1HUTFaRGd3WTJWaE5EaGtaamhpTmpKbE1EUXdNekF5TWpoaVpUSXVZM0pzTUlJQlh3WURWUjBqQklJQlZqQ0NBVktBRk4wNUdrTzZJTlhZRE9wSTM0dGk0RUF3SW92aW9ZSUJMS1NDQVNnd2dnRWtNUjR3SEFZSktvWklodmNOQVFrQkZnOWthWFJBYldsdWMzWjVZWG91Y25VeEN6QUpCZ05WQkFZVEFsSlZNUmd3RmdZRFZRUUlEQTgzTnlEUW5OQyswWUhRdXRDeTBMQXhHVEFYQmdOVkJBY01FTkN6TGlEUW5OQyswWUhRdXRDeTBMQXhMakFzQmdOVkJBa01KZEdEMEx2UXVOR0cwTEFnMEtMUXN0QzEwWURSZ2RDNjBMRFJqeXdnMExUUXZ0QzhJRGN4TERBcUJnTlZCQW9NSTlDYzBMalF2ZEM2MEw3UXZOR0IwTExSajlDMzBZd2cwS0RRdnRHQjBZSFF1TkM0TVJnd0ZnWUZLb1VEWkFFU0RURXdORGMzTURJd01qWTNNREV4R2pBWUJnZ3FoUU1EZ1FNQkFSSU1NREEzTnpFd05EYzBNemMxTVN3d0tnWURWUVFERENQUW5OQzQwTDNRdXRDKzBMelJnZEN5MFkvUXQ5R01JTkNnMEw3UmdkR0IwTGpRdUlJS2ZHVGY2QUFBQUEKQUJxVEFLQmdncWhRTUhBUUVEQWdOQkFJWGZMY3lIdGcrVmc1TlQ4b3RTSTduWEE1VGt0VHFYeVZVMXNKVEU4dERsNjdaelllMXdvZWRoV2tZM1lmNDZ2aHZMT1R1em9hN01TY0dpWW82UFE2OHhnZ1lMTUlJR0J3SUJBVENDQVpFd2dnRjZNUm93R0FZSktvWklodmNOQVFrQkZndGpZVUJtWTJscGRDNXlkVEVZTUJZR0JTcUZBMlFCRWcweE1UQTNOems1TURBM05ESTFNUm93R0FZSUtvVURBNEVEQVFFU0REQXdOemN3T0RJek56YzBOekVMTUFrR0ExVUVCaE1DVWxVeEhEQWFCZ05WQkFnTUV6YzNJTkN6TGlEUW5OQyswWUhRdXRDeTBMQXhHVEFYQmdOVkJBY01FTkN6TGlEUW5OQyswWUhRdXRDeTBMQXhSVEJEQmdOVkJBa01QTkdEMEx2UXVOR0cwTEFnMEpUUXZ0QzcwTFBRdnRHQTBZUFF1dEMrMExMUmdkQzYwTERSanl3ZzBMUXVJREUxTENEUmdkR0MwWUF1SURRdE5URm1NR1FHQTFVRUNneGQwS1RRdnRDOTBMUWdJdENtMExYUXZkR0MwWUFnMExqUXZkQzkwTDdRc3RDdzBZYlF1TkM1SU5DNElOQzQwTDNSaE5DKzBZRFF2TkN3MFliUXVOQyswTDNRdmRHTDBZVWcwWUxRdGRHRjBMM1F2dEM3MEw3UXM5QzQwTGtpTVRFd0x3WURWUVFERENqUXBOQyswTDNRdENBaTBLYlF0ZEM5MFlMUmdDRFF1TkM5MEwzUXZ0Q3kwTERSaHRDNDBMa2lBaEVCSTIyWkFFV3MrWVZPclFCUll3MDdhREFNQmdncWhRTUhBUUVDQWdVQW9JSUVEVEFhQmdrcWhraUc5dzBCQ1FNeERRWUxLb1pJaHZjTkFRa1FBUVF3THdZSktvWklodmNOQVFrRU1TSUVJRnFKOHc4RWMzNzh6MzdyRGMwRWsxejJsUXRjU3VuNUFtaWd1UTNPMWdha01JSUIwQVlMS29aSWh2Y05BUWtRQWd3eGdnRy9NSUlCdXpDQ0FiY3dnZ0d6QkJTWldreUloUEFHdGlWL1hZVnlZTWpYSXVRNWFqQ0NBWmt3Z2dHQ3BJSUJmakNDQVhveEdqQVlCZ2txaGtpRzl3MEJDUUVXQzJOaFFHWmphV2wwTG5KMU1SZ3dGZ1lGS29VRFpBRVNEVEV4TURjM09Ua3dNRGMwTWpVeEdqQVlCZ2dxaFFNRGdRTUJBUklNTURBM056QTRNak0zTnpRM01Rc3dDUVlEVlFRR0V3SlNWVEVjTUJvR0ExVUVDQXcKVE56Y2cwTE11SU5DYzBMN1JnZEM2MExMUXNERVpNQmNHQTFVRUJ3d1EwTE11SU5DYzBMN1JnZEM2MExMUXNERkZNRU1HQTFVRUNRdzgwWVBRdTlDNDBZYlFzQ0RRbE5DKzBMdlFzOUMrMFlEUmc5QzYwTDdRc3RHQjBMclFzTkdQTENEUXRDNGdNVFVzSU5HQjBZTFJnQzRnTkMwMU1XWXdaQVlEVlFRS0RGM1FwTkMrMEwzUXRDQWkwS2JRdGRDOTBZTFJnQ0RRdU5DOTBMM1F2dEN5MExEUmh0QzQwTGtnMExnZzBMalF2ZEdFMEw3UmdOQzgwTERSaHRDNDBMN1F2ZEM5MFl2UmhTRFJndEMxMFlYUXZkQyswTHZRdnRDejBMalF1U0l4TVRBdkJnTlZCQU1NS05DazBMN1F2ZEMwSUNMUXB0QzEwTDNSZ3RHQUlOQzQwTDNRdmRDKzBMTFFzTkdHMExqUXVTSUNFUUVqYlprQVJhejVoVTZ0QUZGakRUdG9NSUlCNkFZTEtvWklodmNOQVFrUUFpOHhnZ0hYTUlJQjB6Q0NBYzh3Z2dITE1Bb0dDQ3FGQXdjQkFRSUNCQ0RwWkRna0hIUEFrd3BWVzNoM0NiZW01RmxtVG9FMUkxczZ4Y0drWDJpdGpEQ0NBWmt3Z2dHQ3BJSUJmakNDQVhveEdqQVlCZ2txaGtpRzl3MEJDUUVXQzJOaFFHWmphV2wwTG5KMU1SZ3dGZ1lGS29VRFpBRVNEVEV4TURjM09Ua3dNRGMwTWpVeEdqQVlCZ2dxaFFNRGdRTUJBUklNTURBM056QTRNak0zTnpRM01Rc3dDUVlEVlFRR0V3SlNWVEVjTUJvR0ExVUVDQXdUTnpjZzBMTXVJTkNjMEw3UmdkQzYwTExRc0RFWk1CY0dBMVVFQnd3UTBMTXVJTkNjMEw3UmdkQzYwTExRc0RGRk1FTUdBMVVFQ1F3ODBZUFF1OUM0MFliUXNDRFFsTkMrMEx2UXM5QyswWURSZzlDNjBMN1FzdEdCMExyUXNOR1BMQ0RRdEM0Z01UVXNJTkdCMFlMUmdDNGdOQzAxTVdZd1pBWURWUVFLREYzUXBOQyswTDNRdENBaTBLYlF0ZEM5MFlMUmdDRFF1TkM5MEwzUXZ0Q3kwTERSaHRDNDBMa2cwTGdnMExqUXZkR0UwTDdSZ05DODBMRFJodEM0MEw3UXZkQzkwWXZSaFNEUmd0QzEwWVhRdmRDKzBMdlF2dEN6MExqUXVTSXhNVEF2QmdOVkJBTU1LTkNrMEw3UXZkQzBJQ0xRcHRDMTBMM1JndEdBSU5DNDBMM1F2ZEMrMExMUXNOR0cwTGpRdVNJQ0VRRWoKYlprQVJhejVoVTZ0QUZGakRUdG9NQXdHQ0NxRkF3Y0JBUUVCQlFBRVFGdmZsMmdWdUxJNjIrV3VGTnhxNE02enl3OUxDOHJpUGNyM0FZSm54QWRjYXFNZ1FMR2JONStLVTRNYmk5RjFyZnM4eW00cHhJYitjVW1Ea0VIYStCbz0iCgp9"
            }
        }
    }
    

    Пример ответа

    {
        "Operation": {
            "Id": null,
            "Result": {
                "ProcessedDocuments": [
                    {
                        "RefId": "21b40677-0dc6-4868-b2fc-15c1f66b5b53",
                        "OriginalRefId": "e9dfe95b-1706-4754-a791-165d79aa968b",
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    }
                ]
            },
            "Status": "Completed",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 1609187873
        }
    }
    

    Подпись в формате CAdES-XLT1/CAdES-T

    Сервис Подписи DSS позволяет создавать следующие виды подписи в формате CAdES-XLT1/CAdES-T:

    • Отделенная подпись
    • Присоединенная подпись
    • Отделенная подпись хэш-значения
    • Соподпись документа
    • Соподпись хэш-значения документа
    • Заверяющая подпись
    Примечание

    Подпись в формате CAdES-XLT1/CAdES-T требует обязательной передачи адреса TSP-службы посредством передачи параметра TSPAddress в запросе.

    В случае, если в конфигурации Сервиса Подписи параметр AllowThirdPartyTsp имеет значение false, передаваемый адрес службы должен находиться в списке доверенных служб TSP, зарегистрированных на Сервисе Подписи.

    Отделенная подпись

    Пример запроса

    В примере создается открепленная CAdES-XLT1 подпись.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU0=",
        "Signature": {
            "Type": "CAdES",
            "Parameters": {
                "Hash": "False",
                "CADESType": "XLT1",
                "IsDetached": "True",
                "TSPAddress": "https://dss-ca20-w12r2/tsp/tsp.srf"
            },
            "CertificateId": 1,
            "PinCode": ""
        }
    }
    

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjgUAMAsGCSqGSIb3DQ ..."
    

    Присоединенная подпись

    Пример запроса

    В примере создается присоединенная CAdES-XLT1 подпись.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU0=",
        "Signature": {
            "Type": "CAdES",
            "Parameters": {
                "Hash": "False",
                "CADESType": "XLT1",
                "IsDetached": "False",
                "TSPAddress": "https://dss-ca20-w12r2/tsp/tsp.srf"
            },
            "CertificateId": 1,
            "PinCode": ""
        }
    }
    

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQEUAMAsGCSqGSIb3DQ ..."
    

    Отделенная подпись хэш-значения

    Пример запроса

    В примере создается отделенная CAdES-XLT1 подпись хэш-значения документа.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU0=",
        "Signature": {
            "Type": "CAdES",
            "Parameters": {
                "Hash": "True",
                "CADESType": "XLT1",
                "IsDetached": "True",
                "TSPAddress": "https://dss-ca20-w12r2/tsp/tsp.srf"
            },
            "CertificateId": 1,
            "PinCode": ""
        }
    }
    
    Примечание

    При создании подписи хэш-значения в поле Content необходимо передавать хэш-значение подписываемого документа.

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Соподпись документа

    Пример запроса

    В примере осуществляется соподпись документа с использованием второго сертификата ключа проверки электронной подписи.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"MIIIpwYJKoZIhvcNAQcCoIIImDCCkiG9w0BBwGxAJOVQQJ ...",
        "Signature":
            {
            "Type":"CAdES",
            "Parameters":
                {
                    "Hash":"False",
                    "CADESType":"XLT1",
                    "IsDetached":"True",
                    "OriginalDocument":"T2gsIGhlbGxvIHRoZXJlIQ==",
                    "CmsSignatureType":"Cosign",
                  "TSPAddress": "https://dss-ca20-w12r2/tsp/tsp.srf"
                },
                "CertificateId":2,
                "PinCode":""
            }
    }
    
    Примечание

    При создании соподписи в поле Content необходимо передавать подписанный документ, для которого требуется соподпись.

    В поле OriginalDocument необходимо передавать содержимое исходного документа.

    В запросе должен присутствовать параметр CmsSignatureType, имеющий значение cosign.

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Соподпись хэш-значения документа

    Пример запроса

    В примере осуществляется соподпись хэш-значения документа с использованием второго сертификата ключа проверки электронной подписи.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"MIIIpwYJKoZIhvcNAQcCoIIImDCCCJQCAQExDDAKBgYqh ...",
        "Signature":
            {
            "Type":"CAdES",
            "Parameters":
                {
                    "Hash":"True",
                    "CADESType":"XLT1",
                    "IsDetached":"True",
                    "OriginalDocument":"mM40LMXbEv6DbpJe+ov8eCLRFHjglAZ22b3YebKmyU0=",
                    "CmsSignatureType":"Cosign",
                  "TSPAddress": "https://dss-ca20-w12r2/tsp/tsp.srf"
                },
                "CertificateId":2,
                "PinCode":""
            }
    }
    
    Примечание

    При создании соподписи в поле Content необходимо передавать подписанный документ, для которого требуется соподпись.

    В поле OriginalDocument необходимо передавать хэш-значение исходного документа.

    В запросе должен присутствовать параметр CmsSignatureType, имеющий значение cosign.

    Пример ответа

    Сервис Подписи вернeт закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Заверяющая подпись

    Пример запроса

    В примере формируется заверяющая подпись документа.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content":"MIIIpwYJKoZIhvcNAQcCoIIImDCCCJQCAQExDDAKBgYqhQMCAgkF ...",
        "Signature":
            {
            "Type":"CAdES",
            "Parameters":
                {
                    "Hash":"False",
                    "CADESType":"XLT1",
                    "CmsSignatureType":"Сountersign",
                  "TSPAddress": "https://dss-ca20-w12r2/tsp/tsp.srf"
                },
                "CertificateId":2,
                "PinCode":""
            }
    }
    
    Примечание

    При создании заверяющей подписи в поле Content необходимо передавать подписанное сообщение, содержающее подпись, которую требуется заверить.

    В запросе должен присутствовать параметр CmsSignatureType, имеющий значение Сountersign. > В запросе может присутствовать параметр SignatureIndex, указывающий индекс заверяемой подписи. В случае, если данный параметр отсутствует в запросе, Сервис Подписи будет заверять первую подпись в документе.

    Пример ответа

    Сервис Подписи вернeт закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "MIIFtwYJKoZIhvcNAQcCoIIFqDCCBaQCAQExDjAMBggMAsGCSqGSIb3DQ ..."
    

    Подпись в формате XMLDSig

    REST-интерфейс Сервиса Подписи позволяет формировать XML-подпись следующими способами:

    • Enveloping
    • Enveloped
    • Подпись по шаблону (Template)

    Enveloping XML-подпись

    Результатом выполнения операции создания Enveloping-подписи является XML-документ, который состоит из электронной подписи, содержащей исходный документ в элементе Object

    Пример запроса

    В примере создается Enveloping XML-подпись.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "PHJvb3Q+PHZhbHVlPnNhbXBsZTwvdmFsdWU+PC9yb290Pg==",
        "Signature": {
            "Type": "XMLDSig",
            "Parameters": {
                "XMLDsigType": "XMLEnveloping"
                },
            "CertificateId": 1,
            "PinCode": ""
        }
    }
    

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj ..."
    

    Пример результирующего файла с электронной подписью: enveloping.xml.

    Enveloped XML-подпись

    Результатом выполнения операции создания Enveloped-подписи является XML-документ, который представляет из себя подписываемый документ с включенным в него узлом электронной подписи Signature.

    Пример запроса

    В примере создается Enveloped XML-подпись.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "PHJvb3Q+PHZhbHVlPnNhbXBsZTwvdmFsdWU+PC9yb290Pg==",
        "Signature": {
            "Type": "XMLDSig",
            "Parameters": {
                "XMLDsigType": "XMLEnveloped"
                },
            "CertificateId": 1,
            "PinCode": ""
        }
    }
    

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj ..."
    

    Пример результирующего файла с электронной подписью: enveloped.xml.

    XML-подпись по шаблону

    XML-подпись по шаблону применяется в том случае, когда необходимо сформировать подпись не всего документа, а одного или нескольких отдельных узлов в документе.

    При формирования XML-подписи по шаблону исходный документ уже включает в себя узлы, содержащие информацию об электронной подписи. В процессе формирования подписи Сервис вычисляет ее значение и подставляет его в исходный документ.

    Данная статья содержит примеры следующий шаблонов XML-подписи:

    • XML-подпись по стандарту ГОСТ Р 34.10-2001 + ГОСТ Р 34.11-94
    • XML-подпись по стандарту ГОСТ Р 34.10-2012 (256) + ГОСТ Р 34.11-2012 (256)
    • XML-подпись по стандарту ГОСТ Р 34.10-2012 (512) + ГОСТ Р 34.11-2012 (512)
    XML-подпись по стандарту ГОСТ Р 34.10-2001 + ГОСТ Р 34.11-94

    Здесь приводится пример шаблона для формирования подписи по шаблону для алгоритма подписи ГОСТ Р 34.10-2001

    <root>
        <data id="dtbs">2BSigned</data>
        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
            <ds:SignedInfo>
                <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"/>
                <ds:Reference URI="#dtbs">
                    <ds:Transforms>
                        <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                    </ds:Transforms>
                    <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34116"/>
                    <ds:DigestValue/>
                </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue/>
            <ds:KeyInfo/>
        </ds:Signature>
    </root>
    
    Примечание

    Идентификаторы узлов, подлежащих подписи, необходимо указывать посредством атрибута URI узла Reference

    Примечание

    Идентификатор алгоритма подписи:

    urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411

    Идентификатор алгоритма хэширования: http://www.w3.org/2001/04/xmldsig-more#gostr3411

    Пример запроса

    В примере создается XML-подпись по шаблону с использованием алгорита ГОСТ Р 34.10-2001.

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "PHJvb3Q+PHZhbHVlPnNhbXBsZTwvdmFsdWU+PC9yb290Pg==",
        "Signature": {
            "Type": "XMLDSig",
            "Parameters": {
                "XMLDsigType": "XMLTemplate"
                },
            "CertificateId": 1,
            "PinCode": ""
        }
    }
    

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj ..."
    

    Пример результирующего файла с электронной подписью: template34102001.xml.

    XML-подпись по стандарту ГОСТ Р 34.10-2012 (256) + ГОСТ Р 34.11-2012 (256)

    Здесь приводится пример шаблона для формирования подписи по шаблону для алгоритма подписи ГОСТ Р 34.10-2012 (256)

    <root>
        <data id="dtbs">2BSigned</data>
        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
            <ds:SignedInfo>
                <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/>
                <ds:Reference URI="#dtbs">
                    <ds:Transforms>
                        <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                    </ds:Transforms>
                    <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/>
                    <ds:DigestValue/>
                </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue/>
            <ds:KeyInfo/>
        </ds:Signature>
    </root>
    
    Примечание

    Идентификаторы узлов, подлежащих подписи, необходимо указывать посредством атрибута URI узла Reference

    Примечание

    Идентификатор алгоритма подписи:

    urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256

    Идентификатор алгоритма хэширования: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256

    Пример запроса

    В примере создается XML-подпись по шаблону с использованием алгорита ГОСТ Р 34.10-2012 (256).

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "PHJvb3Q+PHZhbHVlPnNhbXBsZTwvdmFsdWU+PC9yb290Pg==",
        "Signature": {
            "Type": "XMLDSig",
            "Parameters": {
                "XMLDsigType": "XMLTemplate"
                },
            "CertificateId": 1,
            "PinCode": ""
        }
    }
    

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj ..."
    

    Пример результирующего файла с электронной подписью: template34102012-256.xml.

    XML-подпись по стандарту ГОСТ Р 34.10-2012 (512) + ГОСТ Р 34.11-2012 (512)

    Здесь приводится пример шаблона для формирования подписи по шаблону для алгоритма подписи ГОСТ Р 34.10-2012 (512)

    <root>
        <data id="dtbs">2BSigned</data>
        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
            <ds:SignedInfo>
                <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512"/>
                <ds:Reference URI="#dtbs">
                    <ds:Transforms>
                        <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                    </ds:Transforms>
                    <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512"/>
                    <ds:DigestValue/>
                </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue/>
            <ds:KeyInfo/>
        </ds:Signature>
    </root>
    
    Примечание

    Идентификаторы узлов, подлежащих подписи, необходимо указывать посредством атрибута URI узла Reference

    Примечание

    Идентификатор алгоритма подписи:

    urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512

    Идентификатор алгоритма хэширования: urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512

    Пример запроса

    В примере создается XML-подпись по шаблону с использованием алгорита ГОСТ Р 34.10-2012 (512).

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "PHJvb3Q+PHZhbHVlPnNhbXBsZTwvdmFsdWU+PC9yb290Pg==",
        "Signature": {
            "Type": "XMLDSig",
            "Parameters": {
                "XMLDsigType": "XMLTemplate"
                },
            "CertificateId": 1,
            "PinCode": ""
        }
    }
    

    Пример ответа

    Сервис Подписи вернет закодированное в Base64 содержимое файла с электронной подписью.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj ..."
    

    Пример результирующего файла с электронной подписью: template34102012-512.xml.

    Подпись документов MSOffice

    Сервис Подписи позволяет формировать электронную подпись документов, созданных в офисном пакете Microsoft Office.

    Для того, чтобы Сервис Подписи осуществил формирование подписи документа MS Office, в параметре SignatureType необходимо передавать значение MSOffice.

    Пример запроса к Сервису Подписи на формирование подписи документа представлен далее:

    Пример запроса

    В примере формируется подпись Word-документа, переданного в параметре Content.

    Примечание

    В поле Content необходимо передавать закодированное в BASE64 бинарное представление документа

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "Content": "UEsDBBQAB...",
        "Signature": {
            "Type": "MSOffice",
            "Parameters": {},
            "CertificateId": 1006,
            "PinCode": ""
        }
    }
    

    Пример ответа

    Сервис Подписи вернет закодированные в Base64 двоичные данные подписанного документа.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj ..."
    

    Подпись PDF-документов

    Сервис Подписи позволяет формировать электронную подпись PDF-документов.

    Для того, чтобы Сервис Подписи осуществил формирование подписи PDF-документа, в параметре SignatureType необходимо передавать значение PDF.

    Пример запроса к Сервису Подписи на формирование подписи PDF-документа представлен далее:

    Пример запроса

    В примере формируется подпись PDF-документа, переданного в параметре Content.

    Примечание

    В поле Content необходимо передавать закодированное в Base64 бинарное представление документа

    POST https://host/SignServer/rest/api/documents HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        {
        "Content": "JVBERi0xLjUN...",
        "Signature": {
            "Type": "PDF",
            "Parameters": {
                "PDFFormat": "CMS"
                },
            "CertificateId": 1006,
            "PinCode": ""
        }
    }
    
    }
    

    Пример ответа

    Сервис Подписи вернет закодированные в Base64 двоичные данные подписанного PDF-документа.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    "PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMj ..."
    
    В начало © ООО "КРИПТО-ПРО", 2000–2025