Типы данных 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> | Дополнительные настройки плагина. |