Запрос служит для получения результата проверки ЭЦП. Запрос является блокирующим, то есть результат будет получен только после завершения процесса проверки ЭЦП, если такой был ранее запущен. Если ЭЦП действительна, будет возвращен HTTP статус код 200. Если в ЭЦП не действительна или в процессе ее непосредственной проверки возникли ошибки, будет возвращен HTTP статус код 406. При возникновении других типов ошибок, возвращаются HTTP статус коды 503 или 400.

URL-адрес запроса

https://local.cipher.kiev.ua:9091/api/v1/ticket/{uuid}/ds/verifier

Метод

GET

Параметры запроса
uuidStringИдентификатор сессии
Настраиваемые заголовки запроса

Отсутствует

Ответ
Код ответаContent-typeДопустимые параметрыПример содержимого
200application/jsonmessage
{
"message" : "Цифровая подпись действительна."
}
503application/jsonmessage
{
    "message" : "Сервис выполнения криптографических операций не запущен."
}
400application/jsonmessage
{
    "message" : "Сессия отсутствует."
}
406application/jsonmessage
verifyResults
failureCause
{
    "message" : "Цифровая подпись не действительна.",
"failureCause" : "",
"verifyResults" : Object
}
Параметры JSON объекта ответа
ПараметрТип данныхОписание
messageStringОписание результата проведения операции
failureCause StringОписание причины возникновения ошибки, которая возникла при выполнении запроса на проверку ЭЦП
verifyResultsArrayРезультаты проверки отдельно по каждой из ЭЦП

Поля элемента массива verifyResults

ПолеТип данныхОписание
statusString"SUCCESS" - проверка ЭЦП произведена без ошибок
"FAILURE" - в процессе проверки ЭЦП возникли ошибки
failureCauseStringОписание причины возникновения ошибки, которая возникла при непосредственной проверке ЭЦП
signerInfoObjectИнформация из сертификата владельца ЭЦП
signingDateTimeStringВремя выработки ЭЦП
isValidBooleantrue - ЭЦП действительна
false - ЭЦП недействительна

Поля объекта signerInfo

ПолеТип данныхОписание
Получение результата проверки ЭЦПObject*Информация о владельце
Получение результата проверки ЭЦПObject*Информация об издателе
Получение результата проверки ЭЦПObject*Информация об открытом ключе
certificateSerialNumberObject*Серийный номер сертификата
notBeforeObject*Начало действия
notAfterObject*Окончание действия
Получение результата проверки ЭЦПObject*Расширения

Поля объекта Получение результата проверки ЭЦП.ownerCertificateInfo.value

ПолеТип данныхОписание
ownerSurnameObject*Фамилия
ownerGivennameObject*Имя отчество
ownerFullNameObject*Полное имя
ownerCountryObject*Страна
ownerRegionObject*Область
ownerCityObject*Город
ownerAddressObject*Почтовый адрес
ownerSerialNumberObject*Серийный номер владельца
ownerPositionObject*Должность

Поля объекта  Получение результата проверки ЭЦП.issuerCertificateInfo.value

ПолеТип данныхОписание
issuerOrganizationObject*Организация
issuerDepartmentObject*Подразделение
issuerFullNameObject*Полное имя
issuerCountryObject*Страна
issuerRegionObject*Область
issuerCityObject*Город
issuerAddressObject*Почтовый адрес
issuerSerialNumberObject*Серийный номер издателя

Поля объекта  Получение результата проверки ЭЦП.publicKeyCertificateInfo.value

ПолеТип данныхОписание
publicKeyObject*Открытый ключ
dsAlgorismObject*Алгоритм ЭЦП

Поля объекта  Получение результата проверки ЭЦП.extensionsCertificateInfo.value

ПолеТип данныхОписание
Получение результата проверки ЭЦПObject*Персональные данные
alternativeOwnerNameObject*Альтернативное имя владельца
subjectKeyIdObject*Идентификатор ключа
subjectOwnerIdObject*Идентификатор владельца
certificateProfileObject*Профиль сертификата
keyUsageObject*Назначение сертификата
isTemporaryObject*Признак стартового сертификата
isReinforcedObject*Признак усиленного сертификата

Поля объекта  Получение результата проверки ЭЦП.Получение результата проверки ЭЦП.value.personalData.value   

ПолеТип данныхОписание
customIdObject*Внешний идентификатор
passportObject*Паспортные данные
drfouObject*Индивидуальный налоговый номер

Поля объекта типа Object* 

ПолеТип данныхОписание
descriptionStringОписание поля на языке, который выбран пользователем в Сервисе
value[Object, String, Boolean, Number, Array]Значение поля

Пример объекта signerInfo

"message": "Цифровая подпись недействительна.",
"verifyResults": [{
    "status": "SUCCESS",
    "signerInfo": {
        "ownerCertificateInfo": {
            "description": "Владелец",
            "value": {
                "ownerSurname": {"description": "Фамилия", "value": "Стокипный"},
                "ownerGivenname": {"description": "Имя отчество", "value": "Александр Леонидович"},
                "ownerFullName": {"description": "Полное имя", "value": "Стокипный Александр Леонидович"},
                "ownerCountry": {"description": "Страна", "value": "ua"},
                "ownerRegion": {"description": "Область", "value": "Харьковская"},
                "ownerCity": {"description": "Город", "value": "Харьков"},
                "ownerAddress": {"description": "Почтовый адрес", "value": "вул.Харьковская 17"},
                "ownerSerialNumber": {
                    "description": "Серийный номер владельца",
                    "value": "E7 49 6E 9F 33 07 6E 5B"
                },
                "ownerPosition": {"description": "Должность", "value": "Разработчик"}
            }
        },
        "issuerCertificateInfo": {
            "description": "Издатель",
            "value": {
                "issuerOrganization": {"description": "Организация", "value": "\"ТОВ \\\"Сайфер БІС\\\"\""},
                "issuerDepartment": {"description": "Подразделение", "value": "Центр сертифікації ключів"},
                "issuerFullName": {"description": "Полное имя", "value": "\"ЦСК ТОВ \\\"Сайфер БІС\\\"\""},
                "issuerCountry": {"description": "Страна", "value": "ua"},
                "issuerRegion": {"description": "Область", "value": null},
                "issuerCity": {"description": "Город", "value": "Київ"},
                "issuerAddress": {"description": "Почтовый адрес", "value": null},
                "issuerSerialNumber": {"description": "Серийный номер издателя", "value": "E7 49 6E 9F 33 07 6E 5B"}
            }
        },
        "publicKeyCertificateInfo": {
            "description": "Информация об открытом ключе",
            "value": {
                "publicKey": {
                    "description": "Открытый ключ",
                    "value": "01 BE 1F B1 6B 6E 82 9C 05 AF 2F EC 04 87 E2 3F 0E 35 A3 3C 3D D3 B5 D2 CF 07 CC 84 6F 2F AD 7C 29"
                }, "dsAlgorism": {"description": "Алгоритм ЭЦП", "value": "ДСТУ 4145-2002, ПБ, little-endian"}
            }
        },
        "certificateSerialNumber": {
            "description": "Серийный номер сертификата",
            "value": "8F 94 8F B8 95 EE 29 95"
        },
        "notBefore": {"description": "Начало действия", "value": "Tue Jan 05 00:00:00 EET 2016"},
        "notAfter": {"description": "Окончание действия", "value": "Wed Jan 04 00:00:00 EET 2017"},
        "extensionsCertificateInfo": {
            "description": "Расширения",
            "value": {
                "personalData": {
                    "description": "Персональные данные",
                    "value": {
                        "customId": {"description": "Внешний идентификатор", "value": "014"},
                        "passport": {"description": "Паспортные данные", "value": "СФ000014"},
                        "drfou": {"description": "Индивидуальный налоговый номер", "value": "0000000014"}
                    }
                },
                "alternativeOwnerName": {"description": "Альтернативное имя владельца", "value": "test@cipher.com"},
                "subjectKeyId": {
                    "description": "Идентификатор ключа",
                    "value": "DE 69 69 50 3F 86 37 68 C8 58 13 94 DA F8 DF 1A B7 84 B8 12 55 2B AD A6 15 8E 00 F4 3A 31 19 A1"
                },
                "subjectOwnerId": {"description": "Идентификатор владельца", "value": "E7 49 6E 9F 33 07 6E 5B"},
                "certificateProfile": {"description": "Профиль сертификата", "value": "3"},
                "keyUsage": {"description": "Назначение сертификата", "value": "Цифровая подпись, Неотрекаемость"},
                "isTemporary": {"description": "Стартовый", "value": "false"},
                "isReinforced": {"description": "Усиленный", "value": "false"}
            }
        }
    },
    "signingDateTime": "Tue Nov 29 12:30:38 EET 2016",
    "isValid": false
}]
Пример кода на JavaScript + jQuery 2.2.4
$.ajax({
    url: "https://local.cipher.kiev.ua:9091/api/v1/ticket/79343564-147f-4a2a-ac2a-182d7a55f802/ts/verifier",
    type: "GET",
    dataType: "json",
    cache: false
}).done(function (jsonResponse, textStatus, xhr) {
    message = jsonResponse.message;
}).fail(function (xhr) {
    try {
        var jsonResponse = JSON.parse(xhr.responseText);
        message = jsonResponse.message;
        failureCause = jsonResponse.failureCause;
    } catch (e) {
        message = (xhr.responseText == undefined) ? "Ошибка при получении результата проверки МВ." : xhr.responseText;
    }
})