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

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

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

    Виды шифрования

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

    • Шифрование формата CMS (тип содержимого "зашифрованные данные (encrypted-data)");
    • Шифрование XML-документов.

    Шифрование документа

    Данный подраздел содержит примеры запросов на CMS-шифрование документа.

    CMS-шифрование документа без использования Сервиса Обработки Документов (СОД)

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

    В примере выполняется CMS-шифрование документа, передаваемого в теле запроса.

    POST https://host/SignServer/rest/api/v2/encryption HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "BinaryData": [{ 
            "Content" : "VGVzdE1Fc3NhZ2U=" 
        }], 
        "Encryption":
            {
            "Type":"CMS",
            "Certificates":[
                "MIIG0TCCBn6..."]
            }
    }
    
    Примечание

    В параметр Content передается Base64-закодированное содержимое документа.

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

    Сервис Подписи возвращает результат операции.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    {
        "Operation": {
            "Id": null,
            "Result": {
                "ProcessedDocuments": [
                    {
                        "RefId": "95813d44-325e-42de-a512-fc1211944a04",
                        "OriginalRefId": null,
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    }
                ]
            },
            "Status": "Completed",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 0
        }
    }
    
    Примечание

    Результат операции будет содержать список ProcessedDocuments. Сервис Подписи загружает обработанные документы в Сервис Обработки Документов. Поле RefId содержит идентификатор документа в СОД.

    XML-шифрование документа без использования СОД

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

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

    POST https://host/SignServer/rest/api/v2/encryption HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "BinaryData": [{ 
            "Content" : "PFRlc3QgdmFsdWU9InRlc3RWYWwiPgo8SW5uZXI+SW5uZXJWYWx1ZTwvSW5uZXI+CjxOdW1WYWw+NTwvTnVtVmFsPgo8L1Rlc3Q+" 
        }], 
        "Encryption":
            {
            "Type":"XML",
            "Certificates":[
                "MIIG0TCCBn6gAw..."]
            }
    }
    

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

    Сервис Подписи возвращает результат операции.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    {
        "Operation": {
            "Id": null,
            "Result": {
                "ProcessedDocuments": [
                    {
                        "RefId": "95813d44-325e-42de-a512-fc1211944a04",
                        "OriginalRefId": null,
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    }
                ]
            },
            "Status": "Completed",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 0
        }
    }
    

    Шифрование с передачей ссылки на документ в СОД

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

    POST https://host/SignServer/rest/api/v2/encryption HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "BinaryData": [{ 
            "RefId" : "8108d47f-8182-4f43-bbad-eb647d0f3e59" 
        }], 
        "Encryption":
            {
            "Type":"XML",
            "Certificates":[
                "MIIG0T..."]
            }
    }
    
    Примечание

    Ссылка на документ передается в поле RefId. Для получения ссылки на документ необходимо предварительно загрузить его в СОД.

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

    Сервис Подписи возвращает результат операции.

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Server: Microsoft-IIS/7.5
    
    {
        "Operation": {
            "Id": null,
            "Result": {
                "ProcessedDocuments": [
                    {
                        "RefId": "9c702a68-4e56-4fd1-afb3-060c8ffc3e8d",
                        "OriginalRefId": "8108d47f-8182-4f43-bbad-eb647d0f3e59",
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    }
                ]
            },
            "Status": "Completed",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 0
        }
    }
    

    Запрос на шифрование нескольких документов

    Сервис Подписи обладает возможностью пакетного шифрования документов. Для этого в объекте BinaryData необходимо передавать массив документов или ссылок на документы в СОД.

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

    Данный пример содержит несколько ссылок RefId на несколько документов в СОД.

    {
        "BinaryData": [
            { "RefId" : "8108d47f-8182-4f43-bbad-eb647d0f3e59" },
            { "RefId" : "d381b02f-a19b-4206-882c-791827c076a3" }
        ], 
        "Encryption":
            {
            "Type":"XML",
            "Certificates":[
                "MIIG0TCCBn6gAwI..."]
            }
    }
    

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

    Сервис Подписи возвращает результат операции.

    {
        "Operation": {
            "Id": null,
            "Result": {
                "ProcessedDocuments": [
                    {
                        "RefId": "4bab5799-e14a-433b-8aba-a7bef5a70b6c",
                        "OriginalRefId": "8108d47f-8182-4f43-bbad-eb647d0f3e59",
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    },
                    {
                        "RefId": "6eb75281-75cf-4714-94bb-fe1e0997af81",
                        "OriginalRefId": "d381b02f-a19b-4206-882c-791827c076a3",
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    }
                ]
            },
            "Status": "Completed",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 0
        }
    }
    

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

    Данный пример содержит несколько документов в теле запроса.

    POST https://host/SignServer/rest/api/v2/encryption HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "BinaryData": [
            { "Content" : "VGVzdFRleHQx" },
            { "Content" : "VGVzdFRleHQy" }
        ], 
        "Encryption":
            {
            "Type":"CMS",
            "Certificates":[
                "MIIG0TCCBn6g..."]
            }
    }
    

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

    Сервис Подписи возвращает результат операции.

    {
        "Operation": {
            "Id": null,
            "Result": {
                "ProcessedDocuments": [
                    {
                        "RefId": "42093014-ac1e-4265-9a49-f9c3a48f4b0c",
                        "OriginalRefId": null,
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    },
                    {
                        "RefId": "600fe9e4-b8f0-439f-8d18-9a833a762d0f",
                        "OriginalRefId": null,
                        "Content": null,
                        "Status": "Completed",
                        "Error": null,
                        "ErrorDescription": null
                    }
                ]
            },
            "Status": "Completed",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 0
        }
    }
    

    Передача параметров зашифрования

    Ниже представлен пример запроса, включающий в себя механизм параметров шифрования.

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

    POST https://host/SignServer/rest/api/v2/encryption HTTP/1.1
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8CeXycwB6A
    Content-Type: application/json; charset=utf-8
    Host: host
    Expect: 100-continue
    
    {
        "BinaryData": [
            { "Content" : "VGVzdFRleHQx" },
            { "Content" : "VGVzdFRleHQy" }
        ], 
        "Encryption":
            {
            "Type":"CMS",
            "Certificates":[
                "MIIG0TCCBn6gA..."],
            "Parameters":
            {
                "ContentEncoding": "Binary",
                "UseFssScenario": "True"
            }
        }
    }
    
    Примечание

    Параметры шифрования передаются в объекте Parameters типа Dictionary[string,string].

    В начало © ООО "КРИПТО-ПРО", 2000–2025