Развернуть все
Свернуть все

Коды ошибок из библиотек tspcli и ocspcli

Библиотеки 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;
}