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