Функция CertOpenServerOcspResponse (wincrypt.h)

Функция CertOpenServerOcspResponse открывает дескриптор для ответа протокола OCSP, связанного с цепочкой сертификатов сервера.

Синтаксис

HCERT_SERVER_OCSP_RESPONSE CertOpenServerOcspResponse(
  [in] PCCERT_CHAIN_CONTEXT                 pChainContext,
  [in] DWORD                                dwFlags,
       PCERT_SERVER_OCSP_RESPONSE_OPEN_PARA pOpenPara
);

Параметры

[in] pChainContext

Адрес структуры CERT_CHAIN_CONTEXT , содержащей цепочку сертификатов.

[in] dwFlags

Значение Значение
0
0x00000000
Этот API попытается получить исходный ответ OCSP перед возвратом, что означает, что он будет блокироваться во время извлечения.
CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG
0x00000001
Установите этот флаг так, чтобы он возвращался немедленно, не выполняя начальное синхронное извлечение.

pOpenPara

Этот параметр не используется и должен иметь значение NULL.

Возвращаемое значение

В случае успешного выполнения возвращает дескриптор ответа OCSP, связанного с цепочкой сертификатов сервера; в противном случае — NULL. Этот дескриптор необходимо передать в функцию CertCloseServerOcspResponse , если он больше не нужен.

Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError. Возможные коды ошибок, возвращаемые функцией GetLastError , включают, помимо прочего, следующие.

Код возврата Описание
ERROR_INVALID_PARAMETER
Один или несколько параметров недопустимы.
CRYPT_E_NOT_IN_REVOCATION_DATABASE
Конечный сертификат не содержит URL-адрес доступа к данным центра OCSP (AIA).

Комментарии

Если dwFlags имеет значение 0, функция CertOpenServerOcspResponse пытается получить исходный ответ OCSP перед возвратом. Он блокирует поток процесса во время извлечения. Функция CertOpenServerOcspResponse создает фоновый поток, который предварительно получает допустимые по времени ответы OCSP. Если не удается успешно получить первый ответ OCSP, дескриптор, отличный от NULL, по-прежнему будет возвращен, если не один из описанных выше случаев ошибок.

Если dwFlags имеет значение 1 или CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG, функция CertOpenServerOcspResponse возвращается немедленно, не выполняя начальное синхронное извлечение.

Функция CertOpenServerOcspResponse увеличивает количество ссылок для контекста цепочки, представленного параметром pChainContext . Завершив использование контекста цепочки, закройте возвращенный дескриптор, вызвав функцию CertCloseServerOcspResponse .

Функция CertOpenServerOcspResponse инициализирует параметры конфигурации, используемые следующими функциями:

Во-первых, функция CertOpenServerOcspResponse инициализирует параметры на основе значений по умолчанию в Wincrypt.h. Если функция впоследствии находит раздел реестра, определенный в CERT_CHAIN_CONFIG_REGPATH, она обновляет ранее инициализированные значения на значения реестра.

Эта функция инициализирует следующие имена параметров конфигурации и значения по умолчанию:

  • CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME

    L"SrvOcspRespMinValiditySeconds"

    Минимальное время действия ответа OCSP сервера, возвращаемого CertGetServerOcspResponseContext. Срок действия ответа OCSP должен быть достаточно длинным, чтобы клиент считал его допустимым временем.

  • CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT

    (10 × 60)

    10 минут.

  • CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME

    L"SrvOcspRespUrlRetrievalTimeoutMilliseconds"

    Это максимальное время до истечения времени ожидания ответа OCSP предварительной выборки проводного URL-адреса.

  • CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT

    (15 × 1000)

    15 секунд.

  • CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMaxBeforeNextUpdateSeconds"

    Это максимальное количество секунд для выполнения предварительной выборки ответа OCSP сервера до даты следующего обновления ответа OCSP. Поток ответа OCSP сервера ожидает, пока текущее время не будет больше или равно дате следующего обновления за вычетом этого количества секунд для выполнения предварительной выборки.

  • CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT

    (4 ×60 × 60)

    4 часа.

  • CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMinBeforeNextUpdateSeconds"

    Это минимальное количество секунд для выполнения предварительной выборки ответа OCSP сервера до даты следующего обновления ответа OCSP. Если текущее время больше или равно дате следующего обновления за вычетом этого количества секунд, поток ответа OCSP сервера ожидает, пока не будет выполнена предварительная выборка после даты следующего обновления и CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME секунд.

  • CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT

    (2 × 60)

    2 минуты.

  • CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMinAfterNextUpdateSeconds"

    Это минимальное количество секунд для выполнения предварительной выборки ответа OCSP сервера после даты следующего обновления ответа OCSP. Если текущее время больше даты следующего обновления за вычетом CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME числа секунд, но меньше даты следующего обновления, поток ответа OCSP сервера ожидает этого числа секунд после даты следующего обновления для выполнения предварительной выборки.

  • CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT

    (1 × 60)

    1 минута.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

CertCloseServerOcspResponse