Проверка подписи

Запрос: POST /v3/validate
HTTP-заголовки:
Authorization: Bearer access_token
Content-Type: application/json
Accept: application/json

Тело запроса:

{
    "Content": "base64",            // данные, для которых была сформирована подпись, в виде массива байт в Base64
    "Signature": "base64",          // сформированная подпись в виде массива байт в Base64
    "DefaultOnFail": false,         // признак того, что нужно вернуть пустое тело ответа, если подпись не пройдет проверку
    "VerifySignatureOnly": false    // признак того, что нужно проверять только соответствие данных и подписи, без проверки цепочки сертификатов
}

Описание запроса

Запрос позволяет:

  • проверить сооветствие данных и сформированой ЭП;

  • проверить валидность сертификата и цепочки сертификатов;

  • получить дополнительные атрибуты CAdES-подписи, если передана подпись одного из поддерживаемых CAdES-типов.

Данные передаются в поле Content. Подпись передается в поле Signature. И подпись, и данные передаются в виде массива байт в Base64.

Поле DefaultOnFail управляет поведением запроса в случае, если подпись не прошла проверку.
Если поле установлено в true и подпись не прошла проверку, то возвращается HTTP-статус 204 (No Content) с пустым телом ответа.
Если поле установлено в false и подпись не прошла проверку, то возвращается HTTP-статус 400 (Bad Request) с сообщением об ошибке.
Поле VerifySignatureOnly управляет полнотой проверки подписи.
Если поле установлено в true, то проверяется только соответствие данных и подписи. Валидность сертификата и цепочки сертификатов не проверяется.
Если поле установлено в false, то проверяется как соответствие данных и подписи, так и валидность сертификата и цепочки сертификатов.

Ответ на запрос

В случае успешного выполнения возвращается JSON вида:

{
    "Certificate": {                                            // данные сертификата, с помощью которого была сделана подпись
        "Thumbprint": "string",                                 // отпечаток сертификата
        "ValidFrom": "YYYY-MM-DDThh:mm:ss.fffZ",                // дата и время, с которого действует сертификат
        "ValidTo": "YYYY-MM-DDThh:mm:ss.fffZ",                  // дата и время, по которое действует сертификат
        "RawData": "base64",                                    // данные сертификата в виде массива байт в Base64
        "PublicKeyRawData": "base64"                            // публичный ключ сертификата в виде массива байт в Base64
        "SerialNumber": "string",                               // серийный номер сертификата
        "Surname": "string",                                    // фамилия владельца сертификата
        "FirstName": "string",                                  // имя владельца сертификата
        "MiddleName": "string",                                 // отчество владельца сертификата
        "CommonName": "string",                                 // общее имя владельца сертификата
        "Position": "string",                                   // должность владельца сертификата
        "OrganizationName": "string",                           // наименование организации, в которой работает владелец сертификата
        "OrganizationInn": "string",                            // ИНН организации, в которой работает владелец сертификата
        "Inn": "string",                                        // ИНН физического лица или ИП, которые владеют сертификатом
        "Snils": "string",                                      // СНИЛС владельца сертификата
        "Email": "string",                                      // e-mail владельца сертификата
        "Department": "string",                                 // подразделение, в котором работает владелец сертификата
        "City": "string",                                       // город (населенный пункт) организации, в которой работает владелец сертификата, или владельца сертификата
        "Street": "string",                                     // улица и номер дома организации, в которой работает владелец сертификата, или владельца сертификата
        "Ogrn": "string",                                       // ОГРН организации, в которой работает владелец сертификата
        "OrgnIp": "string",                                     // ОГРНИП, в которой работает владелец сертификата
        "Region": "string",                                     // регион организации, в которой работает владелец сертификата, или владельца сертификата
        "Locale": "string",                                     // язык сертификата
        "RnsFss": "string",                                     // регистрационный номер страхователя ФСС
        "IssuerSimpleName": "string",                           // простое имя издателя сертификата
        "CertificateType": 0                                    // тип сертификата
    },
    "Attributes": {                                             // дополнительные атрибуты CAdES-подписи
        "SigningTime": "YYYY-MM-DDThh:mm:ss.fffZ",              // дата и время, когда подпись была сформирована
        "SignatureTimeStampTime": "YYYY-MM-DDThh:mm:ss.fffZ",   // дата и время, когда подпись была заверена TSP-сервером
        "CadesType": "string"                                   // распознанный тип CAdES-подписи
    }
}

В поле Certificate возвращаются данные сертификата, с помощью которого была сделана подпись.

В поле Attributes возвращаются дополнительные атрибуты CAdES-подписи, если передана подпись одного из поддерживаемых CAdES-типов:

  • SigningTime - дата и время, когда подпись была сформирована. Атрибут присутствует для CAdES BES и выше.

  • SignatureTimeStampTime - дата и время, когда подпись была заверена TSP-сервером. Атрибут присутствует для CAdES-T и выше.

  • CadesType - распознанный тип CAdES-подписи. Возможные значения:

    • CAdES BES;

    • CAdES-T;

    • CAdES-X Long Type 1.