Типы данных REST-интерфейса КриптоПро SVS
SignedDocument
Объект содержит документ, ЭП которого необходимо проверить, и другие параметры запроса проверки подписи.
| Поле | Тип | Описаниe |
|---|---|---|
| SignatureType | SignatureType | Формат подписи проверяемого документа. Обязательный параметр. |
| Source | byte[] | Исходный документ. Используется только для проверки подписи формата GOST3410 и отделенной подписи форматов CMS и CAdES. |
| Certificate | byte[] | Сертификат подписанта. Используется только для проверки подписи формата GOST3410. |
| Content | byte[] | Подписанный документ или значение подписи для проверки. Обязательный параметр. |
| VerifyParams | Dictionary<VerifyParams, string> | Словарь дополнительных параметров проверки подписи. Необязательный параметр. |
| CertVerifiersPluginsIds | List<int> | Список идентификаторов плагинов для дополнительных проверок сертификата, используемого при подписи. Если CertVerifiersPluginsIds не передан в запросе или явно указан как NULL, то при проверке будут использоваться плагины, у которых CheckByDefaultRequired = true. Если CertVerifiersPluginsIds проинициализирован, то для проверки будут использованы плагины с указанными идентификаторами. Если список пустой — дополнительная проверка не выполняется. |
VerifyPackageRequest
Модель данных запроса пакетной проверки подписи. Аналогична SignedDocument, но предполагает, что содержимое документов будет передано через multipart-form.
| Поле | Тип | Описаниe |
|---|---|---|
| SignatureType | SignatureType | Формат подписи проверяемого документа. |
| Certificate | byte[] | Сертификат подписанта. Используется только для проверки подписи формата GOST3410. |
| VerifyParams | Dictionary<VerifyParams, string> | Словарь дополнительных параметров проверки подписи. Необязательный параметр. |
| CertVerifiersPluginsIds | List<int> | Список идентификаторов плагинов для дополнительных проверок сертификата, используемого при подписи. Если CertVerifiersPluginsIds не передан в запросе или явно указан как NULL, то при проверке будут использоваться плагины, у которых CheckByDefaultRequired = true. Если CertVerifiersPluginsIds проинициализирован, то для проверки будут использованы плагины с указанными идентификаторами. Если список пустой — дополнительная проверка не выполняется. |
VerifyPackageRawRequest
Модель данных с данными запроса на пакетную проверку подписи. В отличие от VerifyPackageRequest содержит в себе содержимое всех документов.
| Поле | Тип | Описаниe |
|---|---|---|
| Documents | List<VerifiedDocumentInfo> | Список сведений о документах, подпись (подписи) которых необходимо проверить. |
| CustomParams | VerifyPackageRequest | Данные запроса на пакетную проверку подписи. |
VerifiedDocumentInfo
Объект содержит информацию о документе, подпись (подписи) которого необходимо проверить.
| Поле | Тип | Описаниe |
|---|---|---|
| DocumentName | string | Имя документа. |
| DocumentContent | byte[] | Содержимое документа в виде массива байт. |
Certificate
Объект содержит информацию о сертификате, статус которого необходимо проверить.
| Поле | Тип | Описаниe |
|---|---|---|
| Content | byte[] | Сертификат. |
| CertVerifiersPluginsIds | List<int> | Список идентификаторов плагинов для дополнительных проверок сертификата, используемого при подписи. Если CertVerifiersPluginsIds не передан в запросе или явно указан как NULL, то при проверке будут использоваться плагины, у которых CheckByDefaultRequired = true. Если CertVerifiersPluginsIds проинициализирован, то для проверки будут использованы плагины с указанными идентификаторами. Если список пустой — дополнительная проверка не выполняется. |
| VerifyParams | Dictionary<VerifyParams, string> | Словарь дополнительных параметров. Используется только для передачи информации о флаге IncludeChain. Остальные параметры в случае их наличия будут проигнорированы. Необязательный параметр. |
VerificationResult
Объект содержит информацию о результате проверки ЭП или сертификата одного элемента в пакете.
| Поле | Тип | Описаниe |
|---|---|---|
| Message | string | Суммарная информация о результатах проверки подписи. |
| Result | bool | Результат проверки подписи или сертификата. |
| SignerCertificate | byte[] | Сертификат подписи. |
| SignerCertificateInfo | Dictionary<CertificateInfoParams, string> | Набор сведений о сертификате подписанта. |
| SignatureInfo | Dictionary<SignatureInfoParams, String> | Дополнительные сведения о подписи. |
| AdditionalCertificateResult | List<CertificateVerificationResult> | Сведения о дополнительных проверках сертификата. |
| AdditionalCertificatesInfo | List<Dictionary<CertificateInfoParams, string>> | Сведения о других сертификатах. |
| Details | Details | Дополнительные сведения о проверке подписи или сертификата. |
| AdditionalInfo | List<String> | Дополнительные сведения о проверке подписи. Например, о проверке доказательств ее подлинности или о соответствии сложному формату. |
Details
Объект может содержать дополнительные сведения о проверке подписи или сертификата в зависимости от запрошенной информации. Например, при проверке подписи в данный объект может быть помещена дополнительная информация как о подписи, так и о соответствующем сертификате (цепочке сертификатов).
| Поле | Тип | Описаниe |
|---|---|---|
| SignatureResult | SignatureResult | Информация о проверке подписи. |
| CertificateResult | CertificateResult | Информация о проверке сертификата (цепочки сертификатов) и/или о соответствии определенному формату подписи. |
SignatureResult
Объект содержит подробные данные о результате проверки математической корректности подписи и корректности синтаксиса ASN.1.
| Поле | Тип | Описаниe |
|---|---|---|
| Result | bool | Результат дополнительной проверки математической корректности подписи и корректности синтаксиса ASN.1. |
| Error | Error | Информация об ошибке. При отсутствии ошибок ("Result": true) равен null. |
Коды ошибок проверки подписи
| Код ошибки | Описаниe | Имя ошибки HResult |
|---|---|---|
| 0x80090006 | Подпись недействительна. | NTE_BAD_SIGNATURE |
| 0x80096010 | Цифровая подпись объекта не проверена. | TRUST_E_BAD_DIGEST |
| 0x80091007 | Некорректное значение хэша. | CRYPT_E_HASH_VALUE |
| 0x8009310B | Встречено неверное значение тега АСН.1. | CRYPT_E_ASN1_BADTAG |
Error
Объект содержит информацию об ошибке, произошедшей в процессе проверки подписи и/или сертификата.
| Поле | Тип | Описаниe |
|---|---|---|
| ErrorCode | int | Код ошибки. |
| ErrorMessage | String | Описание ошибки. |
CertificateResult
Объект содержит подробные данные о результатах проверки сертификата (цепочки сертификатов) и/или соответствия формату подписи.
| Поле | Тип | Описаниe |
|---|---|---|
| Result | bool | Результат проверки сертификата (цепочки сертификатов) и/или соответствия формату подписи. |
| Errors | List<Error> | Список ошибок проверки сертификата (цепочки сертификатов) или соответствия формату подписи. При отсутствии ошибок ("Result": true) равен null. |
Коды ошибок проверки сертификата
| Код ошибки | Описание | Доп. информация об ошибке |
|---|---|---|
| 0x80096004 | Не удается проверить подпись сертификата | HResult: TRUST_E_CERT_SIGNATURE Статус цепочки: NotSignatureValid Флаг: CERT_TRUST_IS_NOT_SIGNATURE_VALID |
| 0x80096004 | Не удается проверить подпись сертификата | HResult: TRUST_E_CERT_SIGNATURE Статус цепочки: CtlNotSignatureValid Флаг: CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID |
| 0x800B0109 | Цепочка сертификатов обработана, но обработка прервана на корневом сертификате, у которого отсутствует отношение доверия с поставщиком доверия | HResult: CERT_E_UNTRUSTEDROOT Статус цепочки: UntrustedRoot Флаг: CERT_TRUST_IS_UNTRUSTED_ROOT |
| 0x800B010A | Не удается построить цепочку сертификатов для доверенного корневого центра | HResult: CERT_E_UNTRUSTEDROOT Статус цепочки: PartialChain Флаг: CERT_TRUST_IS_PARTIAL_CHAIN |
| 0x80092010 | Сертификат был отозван | HResult: CRYPT_E_REVOKED Статус цепочки: Revoked Флаг: CERT_TRUST_IS_REVOKED |
| 0x800B0110 | Данный сертификат не подходит для такого использования | HResult: CERT_E_WRONG_USAGE Статус цепочки: NotValidForUsage Флаг: CERT_TRUST_IS_NOT_VALID_FOR_USAGE |
| 0x800B0110 | Данный сертификат не подходит для такого использования | HResult: CERT_E_WRONG_USAGE Статус цепочки: CtlNotValidForUsage Флаг: CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE |
| 0x800B0101 | Истек/не наступил срок действия требуемого сертификата при проверке по системным часам или по отметке времени в подписанном файле | HResult: CERT_E_EXPIRED Статус цепочки: NotTimeValid Флаг: CERT_TRUST_IS_NOT_TIME_VALID |
| 0x800B0101 | Истек/не наступил срок действия требуемого сертификата при проверке по системным часам или по отметке времени в подписанном файле | HResult: CERT_E_EXPIRED Статус цепочки: CtlNotTimeValid Флаг: CERT_TRUST_CTL_IS_NOT_TIME_VALID |
| 0x800B0114 | Сертификат имеет недопустимое имя. Такое имя не включается в список разрешенных или явно исключенных | HResult: CERT_E_INVALID_NAME Статус цепочки: InvalidNameConstraints Флаг: CERT_TRUST_INVALID_NAME_CONSTRAINTS |
| 0x800B0114 | Сертификат имеет недопустимое имя. Такое имя не включается в список разрешенных или явно исключенных | HResult: CERT_E_INVALID_NAME Статус цепочки: HasNotSupportedNameConstraint Флаг: CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT |
| 0x800B0114 | Сертификат имеет недопустимое имя. Такое имя не включается в список разрешенных или явно исключенных | HResult: CERT_E_INVALID_NAME Статус цепочки: HasNotDefinedNameConstraint Флаг: CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT |
| 0x800B0114 | Сертификат имеет недопустимое имя. Такое имя не включается в список разрешенных или явно исключенных | HResult: CERT_E_INVALID_NAME Статус цепочки: HasNotPermittedNameConstraint Флаг: CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT |
| 0x800B0114 | Сертификат имеет недопустимое имя. Такое имя не включается в список разрешенных или явно исключенных | HResult: CERT_E_INVALID_NAME Статус цепочки: HasExcludedNameConstraint Флаг: CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT |
| 0x800B0113 | Сертификат содержит недопустимую политику | HResult: CERT_E_INVALID_POLICY Статус цепочки: InvalidPolicyConstraints Флаг: CERT_TRUST_INVALID_POLICY_CONSTRAINTS |
| 0x800B0113 | Сертификат содержит недопустимую политику | HResult: CERT_E_INVALID_POLICY Статус цепочки: NoIssuanceChainPolicy Флаг: CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY |
| 0x800B0113 | Расширение основных ограничений сертификата не были просмотрены | HResult: TRUST_E_BASIC_CONSTRAINTS Статус цепочки: InvalidBasicConstraints Флаг: CERT_TRUST_INVALID_BASIC_CONSTRAINTS |
| 0x800B0102 | Периоды сроков действия цепочки сертификатов вложены неверно | HResult: CERT_E_VALIDITYPERIODNESTING Статус цепочки: NotTimeNested Флаг: CERT_TRUST_IS_NOT_TIME_NESTED |
| 0x800092012 | Функция отзыва не смогла произвести проверку отзыва для сертификата | HResult: CRYPT_E_NO_REVOCATION_CHECK Статус цепочки: RevocationStatusUnknown Флаг: CERT_TRUST_REVOCATION_STATUS_UNKNOWN |
| 0x800092013 | Невозможно проверить функцию отзыва, т.к. сервер отзыва сертификатов недоступен | HResult: CRYPT_E_REVOCATION_OFFLINE Статус цепочки: OfflineRevocation Флаг: CERT_TRUST_IS_OFFLINE_REVOCATION |
| 0x8000B0105 | Сертификат содержит неизвестное расширение, помеченное как критическое | HResult: CERT_E_CRITICAL Статус цепочки: HasNotSupportedCriticalExtension Флаг: CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT |
| 0x8000B0105 | Сертификат содержит неизвестное расширение, помеченное как критическое | HResult: CERT_E_CRITICAL Статус цепочки: InvalidExtension Флаг: CERT_TRUST_INVALID_EXTENSION |
| 0x8000B0111 | Сертификат был явно помечен пользователем как ненадежный. | HResult: TRUST_E_EXPLICIT_DISTRUST Статус цепочки: ExplicitDistrust Флаг: CERT_TRUST_IS_EXPLICIT_DISTRUST |
| 0x80094016 | Алгоритм подписи или длина ключа сертификата не соответствуют минимальным требованиям безопасности | HResult: CERTSRV_E_WEAK_SIGNATURE_OR_KEY Статус цепочки: HasWeakSignature Флаг: CERT_TRUST_HAS_WEAK_SIGNATURE |
| 0x801F0005 | Дополнительные проверки сертификата подписанта завершились с ошибкой | HResult: SVS_E_ADDITIONAL_CHECK_ERROR |
Примечание
Список ошибок может включать в себя ошибки с дублирующимися кодами (например, несколько ошибок с кодом 0x801F0005 при выполнении дополнительных проверок сертификата).
Примечание
Код ошибки 0x801F0005 означает, что ошибка возникла при выполнении дополнительных проверок сертификата.
В случае если в конфигурации КриптоПро SVS параметр IgnoreCertAdditionalChecks имеет значение true, ошибки в результате дополнительных проверок сертификата НЕ будут добавлены в список.
VerificationResultPackage
Объект содержит результат проверки подписи пакета документов.
| Поле | Тип | Описаниe |
|---|---|---|
| Results | List<VerifiedDocument> | Список сведений о документах в пакете. |
| ResultsReportBase64 | String | Отчет о проверке подписи пакета документов в формате Base64. Результат будет возвращен только при наличии в запросе VerifyPackageRequest в параметре Dictionary<VerifyParams, string> флага VerifyReport. |
VerifiedDocument
Объект содержит сведения о проверяемом документе в пакете.
| Поле | Тип | Описаниe |
|---|---|---|
| SignedDocumentName | String | Имя подписанного документа (или файла подписи, если проверяется отсоединенная CMS-подпись) |
| OriginalDocumentName | String | Имя исходного документа (при проверке отсоединенной CMS-подписи). |
| SignatureType | SignatureType | SignatureType |
| VerificationTime | DateTime | Дата и время проверки, представленные в международном формате даты и времени (см. ISO 8601-1:2019). |
| VerificationResults | List<VerificationResult> | Результат проверки подписи одного документа в пакете. |
| SignatureDocumentHash | byte[] | Хэш-значение подписанного документа, исходного документа или файла подписи (для отсоединенной CMS-подписи), вычисленная с использованием алгоритма ГОСТ Р 34.11-2012 с длиной ключа 256 бит. |
VsPolicy
Объект содержит политику Сервиса Проверки Подписи.
| Поле | Тип | Описаниe |
|---|---|---|
| SignatureDescriptions | List<SignatureTypeDescription> | Форматы подписи, которые можно проверить. |
| CertificateVerifiers | List<CertificateVerifier> | Зарегистрированные плагины для дополнительных проверок сертификатов. |
| ChainInclusionHint | Bool | Информационное поле, указывающее прикладной системе (например, Веб-интерфейсу SVS), включена ли по умолчанию в ответ цепочка сертификатов для проверяемой подписи/сертификата. |
CertificateVerificationResult
Сведения о дополнительных проверках сертификата.
| Поле | Тип | Описаниe |
|---|---|---|
| AssemblyName | string | Имя плагина, реализующего дополнительные проверки сертификата. |
| PluginDescription | string | Описание плагина, реализующего дополнительные проверки сертификата. |
| bResult | bool | Результат проверки сертификата. |
| ErrorsList | List<string> | Список ошибок при проверке сертификата. |
SignatureTypeDescription
Объект содержит описание поддерживаемых форматов подписи.
| Поле | Тип | Описаниe |
|---|---|---|
| SignatureType | SignatureType | Формат подписи. |
| FileExtensions | IList<string> | Связанные с форматом подписи расширения файлов. |
SignersInfo
Объект содержит сведения обо всех подписантах, а также дополнительную информацию о подписанном документе.
| Поле | Тип | Описаниe |
|---|---|---|
| SignerInfoList | IList<SignerInfo> | Информация о найденных подписях. |
| AdditionalInfo | AdditionalSignedDocumentInfo | Дополнительная информация о подписанном документе. |
SignerInfo
Класс описывает информацию о подписи в документе.
| Поле | Тип | Описаниe |
|---|---|---|
| Id | string | Идентификатор узла подписи. |
| ParentId | string | Идентификатор родительского узла подписи. |
| Index | int | Порядковый номер узла подписи. Порядковый номер начинается с 1. |
| SignerCertificateInfo | Dictionary<CertificateInfoParams, string> | Отображаемые данные о сертификате. |
AdditionalSignedDocumentInfo
| Поле | Тип | Описаниe |
|---|---|---|
| Content | byte[] | Содержимое присоединенной подписи в формате CMS. |
CertificateVerifier
| Поле | Тип | Описаниe |
|---|---|---|
| ID | int | Идентификатор плагина. |
| ClassName | string | Имя класса, который реализует интерфейс ISVSCertificateVerifier. |
| AssemblyName | string | Полный путь до файла со сборкой плагина. В качестве значения данного параметра можно указать полный путь до файла со сборкой, либо только имя dll-файла сборки, если плагин находится в следующей директории: <Путь установки>\Plugins\CertificatesVerifiers. |
| PluginDescription | string | Описание плагина, которое отображается на Веб-интерфейсе Сервиса Проверки Подписи. |
| CheckByDefaultRequired | bool | Использовать ли по умолчанию плагин для проверки сертификата. |
| Parameters | Dictionary<string, string> | Дополнительные настройки плагина. |