Библиотеки tspcli.dll (libtspcli.so) и ocspcli.dll (libocspcli.so) могут возвращать собственные коды ошибок, связанные со спецификой работы данных библиотек. Данные коды ошибок введены для более быстрой и качественной локализации произошедшей ошибки.
Коды ошибок библиотеки tspcli
Код ошибки | Описание |
---|---|
0xC2100100 | При попытке отправки запроса возникла ошибка HTTP |
0xC2100101 | Указанный тип аутентификации запрещен групповой политикой |
0xC2100102 | Указанный тип аутентификации прокси-сервера запрещен групповой политикой |
0xC2100103 | Указанная служба штампов запрещена групповой политикой |
0xC2100104 | Использование поля Nonce запрещено групповой политикой |
0xC2100110 | Указанный алгоритм хэширования запрещен групповой политикой |
0xC2100111 | Указанный "PolicyID" запрещен групповой политикой |
0xC2100120 | Значение полей "Nonce" запроса и штампа не совпадают |
0xC2100121 | Не задан адрес службы штампов времени |
0xC2100122 | Штамп времени просрочен (выдан слишком давно) |
0xC2100123 | В запросе отсутствует хэш-значение |
0xC2100124 | Получен ответ службы штампов времени с ошибкой |
0xC2100140 | Лицензия на КриптоПро TSP Client истекла или не была введена |
Коды ошибок библиотеки ocspcli
Код ошибки | Описание |
---|---|
0xC2110100 | При попытке отправки запроса возникла ошибка HTTP |
0xC2110101 | Указанный тип аутентификации запрещен групповой политикой |
0xC2110102 | Указанный тип аутентификации прокси-сервера запрещен групповой политикой |
0xC2110103 | Указанная служба OCSP запрещена групповой политикой |
0xC2110104 | Встречено расширение (AcceptableTypes или Nonce), запрещенное групповой политикой |
0xC2110110 | Подписанные OCSP-запросы запрещены политикой |
0xC2110111 | Неподписанные OCSP-запросы запрещены политикой |
0xC2110120 | Поля "Nonce" OCSP-запроса и ответа не совпадают |
0xC2110121 | Не задан адрес службы OCSP |
0xC2110122 | OCSP-ответ просрочен по значению поля "ProducedAt" или "NextUpdate" |
0xC2110123 | Значение поля "ThisUpdate" OCSP-ответа просрочено |
0xC2110124 | Значение поля "NextUpdate" OCSP-ответа меньше значения "ThisUpdate" |
0xC2110125 | В OCSP-ответе не найден запрашиваемый статус сертификата |
0xC2110126 | Сертификат отозван |
0xC2110127 | Статус сертификата не известен |
0xC2110128 | Получен OCSP-ответ с ошибкой |
0xC2110129 | Полученный OCSP-ответ содержит неизвестное критическое расширение |
0xC2110130 | Время Службы OCSP рассинхронизировано со Службой штампов времени |
0xC2110140 | Лицензия на КриптоПро OCSP Client (Revocation Provider) истекла или не была введена |
Пример функции обработки кода ошибки (Windows)
Все перечисленные описания ошибок доступны в библиотеках tspcli и ocspcli и могут быть получены программно. Ниже приводится пример поиска текстового описания произошедшей ошибки по её коду.
C/C++
if (! /* Вызов функции библиотеки */ ) { DWORD dwErr = GetLastError(); wchar_t buf [1024]; DWORD dwFlagsMod = FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_HMODULE; BOOL dwRet = CadesFormatMessage(dwFlagsMod, 0, dwErr, 0, buf, sizeof(buf), NULL); DWORD dwFlagsSys = FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM; if (!dwRet) { dwRet = FormatMessage(dwFlagsSys, 0, dwErr, 0, buf, sizeof(buf), NULL); } if (dwRet) std::cout << buf << std::endl; }
Пример функции обработки кода ошибки (Unix)
C/C++
#include <iostream> #include <limits.h> #include "stdarg.h" #include "cades.h" #include "atlexcept.h" int main() { try { /* Вызов функции библиотеки */ } catch (ATL::CAtlException &ex) { std::cout << "Error code: " << ex.m_hr << std::endl; } return 0; }