Функция CertAddEncodedCRLToStore (wincrypt.h)
Функция CertAddEncodedCRLToStore создает контекст списка отзыва сертификатов (CRL) из закодированного списка отзыва сертификатов и добавляет его в хранилище сертификатов. Функция создает копию контекста списка отзыва сертификатов перед его добавлением в хранилище.
Синтаксис
BOOL CertAddEncodedCRLToStore(
[in] HCERTSTORE hCertStore,
[in] DWORD dwCertEncodingType,
[in] const BYTE *pbCrlEncoded,
[in] DWORD cbCrlEncoded,
[in] DWORD dwAddDisposition,
[out, optional] PCCRL_CONTEXT *ppCrlContext
);
Параметры
[in] hCertStore
Дескриптор хранилища сертификатов.
[in] dwCertEncodingType
Указывает тип используемой кодировки. Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING в настоящее время определены следующие типы кодирования:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pbCrlEncoded
Указатель на буфер, содержащий закодированный список отзыва сертификатов, добавляемый в хранилище сертификатов.
[in] cbCrlEncoded
Размер буфера pbCrlEncoded (в байтах).
[in] dwAddDisposition
Указывает действие, которое необходимо выполнить, если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов уже существует в хранилище. В настоящее время определены значения ликвидации и их использование следующим образом.
Значение | Значение |
---|---|
|
Не проверка для существующего соответствующего списка отзыва сертификатов или ссылки на соответствующий список отзыва сертификатов. Новый список отзыва сертификатов всегда добавляется в магазин. Это может привести к дублированию в магазине. |
|
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, операция завершается сбоем. GetLastError возвращает код CRYPT_E_EXISTS. |
|
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, сравнивается время ThisUpdate в списках отзыва сертификатов. Если существующий список отзыва сертификатов имеет значение ThisUpdate меньше времени ThisUpdate в новом списке отзыва сертификатов, старый список отзыва сертификатов или ссылка заменяются так же, как и CERT_STORE_ADD_REPLACE_EXISTING. Если существующий список отзыва сертификатов имеет время ThisUpdate больше или равное времени ThisUpdate для добавляемого списка отзыва сертификатов, функция завершается сбоем с getLastError , возвращающим код CRYPT_E_EXISTS.
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не найден в магазине, в магазин добавляется новый список отзыва сертификатов. |
|
Действие такое же, как и для CERT_STORE_ADD_NEWER, за исключением того, что при замене старого списка отзыва сертификатов свойства старого списка отзыва сертификатов включаются в список отзыва сертификатов на замену. |
|
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, существующий список отзыва сертификатов или ссылка удаляются, а новый список отзыва сертификатов создается и добавляется в хранилище. Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не существует, он добавляется. |
|
Если соответствующий список отзыва сертификатов существует в хранилище, существующий контекст удаляется перед созданием и добавлением нового контекста. Новый контекст наследует свойства от существующего списка отзыва сертификатов. |
|
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов существует, используется существующий список отзыва сертификатов и добавляются свойства из нового списка отзыва сертификатов. Функция не завершается ошибкой, но новые списки отзыва сертификатов не добавляются. Если ppCertContext не имеет значение NULL, существующий контекст дублируется.
Если соответствующий список отзыва сертификатов или ссылка на соответствующий список отзыва сертификатов не существует, добавляется новый список отзыва сертификатов. |
[out, optional] ppCrlContext
Указатель на указатель на декодированную структуру CRL_CONTEXT . Это необязательный параметр, который может иметь значение NULL, указывая, что вызывающей приложению не требуется копия нового или существующего списка отзыва сертификатов. Если копия сделана, этот контекст должен быть освобожден с помощью CertFreeCRLContext.
Возвращаемое значение
Если функция выполняется успешно, возвращается значение TRUE.
Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError. Ниже приведены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
CERT_STORE_ADD_NEW задано, и список отзыва сертификатов уже существует в хранилище, или CERT_STORE_ADD_NEWER задан, и в хранилище есть список отзыва сертификатов со временем ThisUpdate , превышающим или равным времени ThisUpdate для добавления списка отзыва сертификатов. |
|
Недопустимое значение перед ликвидации было указано в параметре dwAddDisposition или указан недопустимый тип кодирования. В настоящее время поддерживается только тип кодирования X509_ASN_ENCODING. |
В случае сбоя функции GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |