Конечная точка Documents
Конечная точка /documents предоставляет следующие методы:
- Подпись документа
- Подпись пакета документов
- Зашифрование документа
- Расшифрование документа
- Разбор зашифрованного документа
- Усовершенствование подписи
- хэширование документа
Примеры подписи приведены в разделе Примеры запросов на создание подписи
Подпись одного документа
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/documents |
Параметры | Document - Информация о документе |
Возвращаемое значение | string - Подписанный документ в кодировке Base64 |
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_signature_params | Неверно указаны параметры подписи |
400 | invalid_certificate | Указан неверный идентификатор сертификата |
400 | invalid_pin | Указан неверный ПИН-код |
400 | content_required | Не передан документ для подписания |
500 | An error has occurred | Внутренняя ошибка сервера |
Примечание
Одной из причин ошибки HTTP 500 может быть несоответствие формата документа и формата подписи. Например, для подписи формата PDF отправлен текстовый документ.
Примеры запросов
Запрос
POST https://host/SignServer/rest/api/documents HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGc ... Y9AEWNCMQxHiug
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 143
Expect: 100-continue
{
"Content": "AQ==",
"Signature": {
"Type": 2,
"Parameters": {
"CADESType": "BES",
"IsDetached": "true"
},
"CertificateId": 14,
"PinCode": ""
}
}
Ответ
HTTP/1.1 200 OK
Content-Length: 1922
Content-Type: application/json; charset=utf-8
"MIIFmgYJKoZIhvcNA ... YYxySjbyyJJg=="
Подпись пакета документов
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/documents/packagesignature |
Параметры | DocumentPackage - Пакет документов |
Возвращаемое значение | DSSSignDocumentResponse - Результат подписание пакета докуметов |
Результатом выполнения метода является структура DSSSignDocumentResponse, содержащая список подписанных документов. Порядок подписанных документов соответствует порядку документов, переданных в запросе.
Если при подписании одного или нескольких документов возникли ошибки, то в ответе сервиса в поле Results
на соответствующей позиции
будет выставлено значение null, а в поле Error
на соответствующей позиции будет сообщение об ошибке.
При создании пакетной отделенной соподписи (как самого документа, так и его
хэш-значения) содержимое исходного документа (или его хэш-значение) передается
через структуру DocumentContent
(в поле OriginalContent
), параметр
OriginalDocument
не используется.
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_signature_params | Неверно указаны параметры подписи |
400 | invalid_certificate | Указан неверный идентификатор сертификата |
400 | invalid_pin | Указан неверный ПИН-код |
400 | content_required | Не передан документ для подписания |
500 | An error has occurred | Внутренняя ошибка сервера |
Примеры запросов
Запрос
POST https://host/SignServer/rest/api/documents/packagesignature HTTP/1.1
Authorization: Bearer eyJ0eXAiOi ... P9RY0lwn-r5HGc7ZyTQ
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 217
Expect: 100-continue
{
"Documents": [{
"Content": "AQ=="
}, {
"Content": "Ag=="
}, {
"Content": "Aw=="
}
],
"Signature": {
"Type": 2,
"Parameters": {
"CADESType": "BES",
"IsDetached": "true"
},
"CertificateId": 14,
"PinCode": ""
}
}
Ответ
HTTP/1.1 200 OK
Content-Length: 5772
Content-Type: application/json; charset=utf-8
{
"Results": ["JCBsXwo7P7ZZ5Qt568GTmnLZXdoI8xICKGrM6le9WzIC+v3JGGyewvQM3uXhEAUgdOLhBf9GjZyocK488POYrw==",
"G2JTqRXlouM/tDxCN2Ja8ozwRdYp1OeVY5cyfrAdRT27vGeJlagJCO0DgTbBeWsVFTctufkbdpqfIeSsmNiNiQ==",
"4csaHBAmFecNCTAlg5beoGj465zjlGZkG4QkeM1D+zcs1TgqBm38uJlTOcfcRyziw1RKqelCwH6EidpDqIzsmg=="],
"Errors": [null, null, null]
}
Зашифрование документа
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/documents/encrypt |
Параметры | Document - Информация о документе |
Возвращаемое значение | string - Зашифрованный документ в кодировке Base64 |
Примечание
В структуре Document должно быть заполнено поле Encryption
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | parameters_required | Не заполнено поле Encryption |
400 | content_required | Не передан документ для зашифрования |
400 | invalid_content | Неправильный формат документа (например, в случае XML шифрования, необходимо передать корректный xml-документ) |
400 | invalid_recipients | Сертификаты получателей не заданы или невалидны |
500 | An error has occurred | Внутренняя ошибка сервера |
Примеры запросов
Запрос
POST https://dss.cryptopro.ru/SignServer/rest/api/documents/encrypt HTTP/1.1
Authorization: Bearer eyJ0eXAiOi ... P9RY0lwn-r5HGc7ZyTQ
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 1827
{
"Content": "PHJvb3Q+P ... ZT48L3Jvb3Q+",
"Encryption": {
"Type": 1,
"Parameters": {},
"Certificates": [ "MIIE7DC ... 4oXwmndTQ==" ]
}
}
Ответ
HTTP/1.1 200 OK
Content-Length: 3543
Content-Type: application/json; charset=utf-8
"PEVuY3J5 ... J5cHRlZERhdGE+"
Расшифрование документа
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/documents/decrypt |
Параметры | Document - Информация о документе |
Возвращаемое значение | DSSDecryptDocumentResponse - Расшифрованный документ в кодировке Base64 |
Примечание
В структуре Document должно быть заполнено поле Decryption
Метод /decrypt/parse должен быть использован, если пользователь не знает заранее идентификатор сертификата для расшифрования. Результатом работы метода будет список идентификаторов сертификатов пользователя.
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/documents/decrypt/parse |
Параметры | Document - Информация о документе |
Возвращаемое значение | List |
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | content_required | Не передан документ для расшифрования |
400 | invalid_content | Неправильный формат документа (например, в случае XML шифрования, необходимо передать корректный xml-документ) |
400 | certificate_not_found | Не найден сертификат для расшифрования |
400 | invalid_certificate | Указан неверный идентификатор сертификата |
400 | invalid_pin | Указан неверный ПИН-код |
500 | An error has occurred | Внутренняя ошибка сервера |
Примеры запросов
Запрос на получение идентификаторов сертификатов для расшифрования
POST https://dss.cryptopro.ru/SignServer/rest/api/documents/decrypt/parse HTTP/1.1
Authorization: Bearer eyJ0eXAiOi ... P9RY0lwn-r5HGc7ZyTQ
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 3597
{
"Content": "PEVuY3J5 ... J5cHRlZERhdGE+",
"Decryption": {
"Type": 1,
"CertificateId": 0
}
}
Ответ
HTTP/1.1 200 OK
Content-Length: 5
Content-Type: application/json; charset=utf-8
[680]
Запрос на расшифрование
POST https://dss.cryptopro.ru/SignServer/rest/api/documents/decrypt HTTP/1.1
Authorization: Bearer eyJ0eXAiOi ... P9RY0lwn-r5HGc7ZyTQ
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 3599
{
"Content": "PEVuY3J5 ... J5ZERhdGE+",
"Decryption": {
"Type": 1,
"CertificateId": 680
}
}
Ответ
HTTP/1.1 200 OK
Content-Length: 67
Content-Type: application/json; charset=utf-8
"PHJvb3Q+P ... ZT48L3Jvb3Q+"
Усовершенствование подписи
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/documents/enhancesignature |
Параметры | Document - Информация о документе |
Возвращаемое значение | string - Подписанный документ в кодировке Base64 |
Примечание
В структуре Document должно быть заполнено поле Signature
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_signature_params | Неверно указаны параметры подписи |
400 | content_required | Не передан документ для подписания |
400 | tsp_error | Ошибка получения штампа времени |
400 | ocsp_error | Ошибка получения OCSP-ответа |
400 | cert_chain_error | Ошибка построения цепочки сертификата |
400 | invalid_cert | Ошибка проверки сертификата |
400 | invalid_content | Невалидный формат подписи |
500 | An error has occurred | Внутренняя ошибка сервера |
Примеры запросов
Запрос
POST https://dss.cryptopro.ru...cuments/enhancesignature HTTP/1.1
Authorization: Bearer eyJ0eXAiOi ... P9RY0lwn-r5HGc7ZyTQ
Content-Type: application/json; charset=utf-8
Host: host
{
"Content":"signature",
"Signature":
{
"Type":2,
"Parameters":
{
"CADESType":"XLT1",
"TSPAddress":"https://dss-ca20-w12r2/tsp/tsp.srf"
}
}
}
Ответ
HTTP/1.1 200 OK
Content-Length: 3543
Content-Type: application/json; charset=utf-8
"YwZTUwYTJiM2E4MD ... 3de9sjgg"
Хэширование документа
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/documents/hash |
Параметры | Document - Информация о документе |
Возвращаемое значение | string - Хэш-значение документа в кодировке Base64 |
Примечание
Хэширование документа работает только в поточном режиме. Подробнее о поточной обработке данных см. Потоковая обработка