Функция CryptGetTimeValidObject (wincrypt.h)
Функция CryptGetTimeValidObject извлекает список отзыва сертификатов, ответ OCSP или объект CTL, действительный в пределах заданного контекста и времени.
Синтаксис
BOOL CryptGetTimeValidObject(
[in] LPCSTR pszTimeValidOid,
[in] LPVOID pvPara,
[in] PCCERT_CONTEXT pIssuer,
[in, optional] LPFILETIME pftValidFor,
[in] DWORD dwFlags,
[in] DWORD dwTimeout,
[out, optional] LPVOID *ppvObject,
[in, optional] PCRYPT_CREDENTIALS pCredentials,
[in, out, optional] PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO pExtraInfo
);
Параметры
[in] pszTimeValidOid
Указатель на идентификатор объекта (OID), который идентифицирует запрашиваемый объект. Если значение HIWORD параметра pszTimeValidOid равно нулю, loWORD задает целочисленный идентификатор для типа указанной структуры.
Этот параметр может принимать одно из указанных ниже значений. Сведения о том, как эти значения влияют на параметр pvPara, см. в заголовке "Для параметра pvPara" в столбце Значение.
Значение | Значение |
---|---|
|
Предоставляет список доверия сертификатов (CTL) на основе URL-адреса, полученного из свойства NextUpdateLocation или расширения текущего контекста CTL.
Для параметра pvPara: указатель на PCCTL_CONTEXT , представляющий текущий список доверия сертификатов. |
|
Это значение зарезервировано для использования в будущем. |
|
Предоставляет список отзыва сертификатов на основе сведений, полученных из расширения точек распространения CRL текущего контекста сертификата.
Для параметра pvPara: указатель на PCCERT_CONTEXT , представляющий сертификат субъекта. |
|
Предоставляет разностный список отзыва сертификатов на основе информации, полученной из самого свежего расширения списка отзыва сертификатов текущего контекста сертификата.
Для параметра pvPara: указатель на PCCERT_CONTEXT , представляющий сертификат субъекта. |
|
Предоставляет разностный список отзыва сертификатов на основе информации, полученной из самого свежего расширения списка отзыва сертификатов текущего контекста CRL.
Для параметра pvPara: указатель на PCCERT_CRL_CONTEXT_PAIR , представляющий сертификат субъекта и его базовый список отзыва сертификатов. |
[in] pvPara
Структура, определяемая значением pszTimeValidOid. Дополнительные сведения см. в описании параметра pszTimeValidOid .
[in] pIssuer
Указатель на CERT_CONTEXT , содержащий сертификат издателя.
[in, optional] pftValidFor
Указатель на необязательную версию структуры FILETIME текущего системного времени или времени актуальности из текущего контекста.
[in] dwFlags
Значение , определяющее различные факторы извлечения, такие как время ожидания, источник и проверка достоверности.
В следующей таблице перечислены возможные значения параметра dwFlags .
Значение | Значение |
---|---|
|
Используйте накопительный параметр реестра времени ожидания клиентского компьютера для извлечения URL-адреса отзыва. |
|
Извлеките закодированные биты только из кэша URL-адресов клиента. Не используйте провод для получения URL-адреса. |
|
Убедитесь, что свойство ThisUpdate или расширение текущего контекста больше или равно параметру ftValidFor . |
|
Не выполняйте проверка допустимости времени. Используйте его для получения более нового базового списка отзыва сертификатов по сети или для обхода срока действия проверка во время получения кэша. Если этот флаг установлен, pftValidFor может иметь значение NULL. |
|
Не выполняйте проверку подписи. Используйте этот параметр, когда проверка полученного объекта будет выполняться вне этой функции или для принудительной замены полученной записи кэша новой записью кэша для объекта. |
|
Это значение зарезервировано для использования в будущем. |
|
Извлекает допустимый объект времени из службы ответчика OCSP только на основе URL-адресов доступа к данным центра в текущем контексте. Функция CertVerifyRevocation устанавливает этот флаг при вызове с параметром dwFlags , равным CERT_VERIFY_REV_SERVER_OCSP_FLAG. |
|
Извлекает закодированные биты только из провода. Не использует кэш URL-адресов. |
[in] dwTimeout
Значение в миллисекундах, указывающее, когда следует завершить попытку получения URL-адреса, которая не вернула результат.
[out, optional] ppvObject
Указатель на адрес возвращаемого объекта. Возвращаемый тип может быть одним из поддерживаемых типов, показанных в параметре pszObjectOid функции CryptRetrieveObjectByUrl .
[in, optional] pCredentials
Указатель на необязательную структуру CRYPT_CREDENTIALS , используемую для доступа к URL-адресу. Единственный поддерживаемый тип учетных данных — это имя пользователя и пароль.
[in, out, optional] pExtraInfo
Указатель на необязательную структуру CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO , содержащую дополнительные сведения о записи кэша для объекта.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает значение TRUE.
Если функция завершается сбоем, она возвращает значение FALSE. Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.
Ниже приведены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
Вызывающий объект, указанный TIME_VALID_OID_GET_CRL для параметра pszTimeValidOid . Этот OID не поддерживается. |
|
Вызывающий объект устанавливает флаг CRYPT_OCSP_ONLY_RETRIEVAL, а контекст содержит URL-адрес, отличный от OCSP. |
|
Функции не удалось получить список отзыва сертификатов из контекста сертификата или CTL, а также не удалось скопировать URL-адреса из записи кэша. |
|
Функции не удалось выделить память для внутренней операции массива. |
|
Вызывающий объект не установил флаг CRYPT_CACHE_ONLY_RETRIEVAL и не подключен к Интернету. |
Комментарии
Библиотека динамической компоновки Cryptnet реализует кэш допустимых объектов времени (TVO), который используется для поддержки функции CryptGetTimeValidObject . Кэш используется глобальным агентом TVO процесса, где каждая запись кэша состоит из следующих сведений.
- Идентификатор источника
- Контекстный идентификатор
- Контекст
- URL-адрес получения
- Срок действия
- Сведения о времени автономного URL-адреса
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Cryptnet.lib |
DLL | Cryptnet.dll |