Поделиться через


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

Функция CertAddCRLContextToStore добавляет контекст списка отзыва сертификатов (CRL) в указанное хранилище сертификатов.

Синтаксис

BOOL CertAddCRLContextToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            PCCRL_CONTEXT pCrlContext,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppStoreContext
);

Параметры

[in] hCertStore

Дескриптор хранилища сертификатов.

[in] pCrlContext

Указатель на добавляемую структуру CRL_CONTEXT .

[in] dwAddDisposition

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

Значение Значение
CERT_STORE_ADD_ALWAYS
Не проверка для существующего соответствующего списка отзыва сертификатов или ссылки на соответствующий список отзыва сертификатов. Новый список отзыва сертификатов всегда добавляется в магазин. Это может привести к дублированию в магазине.
CERT_STORE_ADD_NEW
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, операция завершается сбоем. GetLastError возвращает код CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, функция сравнивает время ThisUpdate для списков отзыва сертификатов. Если существующий список отзыва сертификатов имеет значение ThisUpdate меньше времени ThisUpdate в новом списке отзыва сертификатов, старый список отзыва сертификатов или ссылка заменяются так же, как и CERT_STORE_ADD_REPLACE_EXISTING. Если существующий список отзыва сертификатов имеет время ThisUpdate больше или равное времени ThisUpdate для добавляемого списка отзыва сертификатов, функция завершается сбоем с getLastError , возвращающим код CRYPT_E_EXISTS.

Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не найден в магазине, в магазин добавляется новый список отзыва сертификатов.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
Действие такое же, как и для CERT_STORE_ADD_NEWER, за исключением того, что при замене старого списка отзыва сертификатов свойства старого списка отзыва сертификатов включаются в список отзыва сертификатов на замену.
CERT_STORE_ADD_REPLACE_EXISTING
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, существующий список отзыва сертификатов или ссылка удаляются, а новый список отзыва сертификатов создается и добавляется в хранилище. Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не существует, он добавляется.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Если соответствующий список отзыва сертификатов существует в хранилище, существующий контекст удаляется перед созданием и добавлением нового контекста. Добавленный контекст наследует свойства от существующего списка отзыва сертификатов.
CERT_STORE_ADD_USE_EXISTING
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, используется существующий список отзыва сертификатов и добавляются свойства из нового списка отзыва сертификатов. Функция не завершается ошибкой, но новые списки отзыва сертификатов не добавляются. Если ppCertContext не имеет значение NULL, существующий контекст дублируется.

Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не существует, добавляется новый список отзыва сертификатов.

[out, optional] ppStoreContext

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

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

Если функция выполняется успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE. В эту функцию можно распространить ошибки из вызываемых функций CertAddEncodedCRLToStore и CertSetCRLContextProperty .

Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError. Ниже приведены некоторые возможные коды ошибок.

Код возврата Описание
CRYPT_E_EXISTS
Эта ошибка возвращается, если задано CERT_STORE_ADD_NEW и список отзыва сертификатов уже существует в хранилище или если задано CERT_STORE_ADD_NEWER и список отзыва сертификатов существует в хранилище с датой ThisUpdate , большей или равной дате ThisUpdate в добавляемом списке отзыва сертификатов.
E_INVALIDARG
Параметр dwAddDisposition указывает недопустимое значение ликвидации.

Комментарии

Контекст списка отзыва сертификатов не дублируется с помощью CertDuplicateCRLContext. Вместо этого создается новая копия, которая добавляется в хранилище. Помимо копирования закодированного списка отзыва сертификатов, функция копирует свойства контекста.

Чтобы удалить контекст CRL из хранилища сертификатов, используйте функцию CertDeleteCRLFromStore .

Требования

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

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

CertAddEncodedCRLToStore

CertDuplicateCRLContext

CertFreeCRLContext

CertSetCRLContextProperty

Функции списка отзыва сертификатов