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

Важно Этот API является устаревшим. Новое и существующее программное обеспечение должно начать использовать API-интерфейсы шифрования следующего поколения. Корпорация Майкрософт может удалить этот API в будущих выпусках.
 
Функция CryptInstallDefaultContext устанавливает определенный поставщик, который будет поставщиком контекста по умолчанию для указанного алгоритма.

Синтаксис

BOOL CryptInstallDefaultContext(
  [in]  HCRYPTPROV           hCryptProv,
  [in]  DWORD                dwDefaultType,
  [in]  const void           *pvDefaultPara,
  [in]  DWORD                dwFlags,
  [in]  void                 *pvReserved,
  [out] HCRYPTDEFAULTCONTEXT *phDefaultContext
);

Параметры

[in] hCryptProv

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

[in] dwDefaultType

Указывает тип устанавливаемого контекста. Это должно быть одно из следующих значений.

Значение Значение
CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID
Устанавливает поставщик по умолчанию, используемый для проверки одного типа подписи сертификата.

Параметр pvDefaultPara — это адрес строки ANSI, завершаемой null, которая содержит идентификатор объекта алгоритма подписи сертификата для установки поставщика, например для szOID_OIWSEC_md5RSA. Если параметр pvDefaultPara имеет значение NULL, для проверки всех подписей сертификатов используется указанный поставщик. Параметр pvDefaultPara не может иметь значение NULL , если установлен флаг CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG .

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

Параметр pvDefaultPara — это адрес структуры CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA , содержащей массив идентификаторов объектов, определяющих алгоритмы подписи сертификата для установки указанного поставщика.

[in] pvDefaultPara

Указывает объект или объекты для установки поставщика контекста по умолчанию. Формат этого параметра зависит от содержимого параметра dwDefaultType .

[in] dwFlags

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

Значение Значение
CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG
Дескриптор поставщика, указанный параметром hCryptProv , освобождается автоматически по завершении процесса или потока. Если этот флаг не указан, вызывающий объект отвечает за освобождение дескриптора поставщика с помощью функции CryptReleaseContext , когда дескриптор больше не нужен. Дескриптор поставщика не освобождается, если функция CryptUninstallDefaultContext вызывается до завершения процесса или потока.
CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG
Поставщик применяется ко всем потокам в процессе. Если этот флаг не указан, поставщик применяется только к вызывающей цепочке. Параметр pvDefaultPara не может иметь значение NULL , если установлен этот флаг.

[in] pvReserved

Этот параметр зарезервирован для использования в будущем.

[out] phDefaultContext

Адрес переменной HCRYPTDEFAULTCONTEXT , которая получает дескриптор контекста по умолчанию. Этот дескриптор передается функции CryptUninstallDefaultContext для удаления поставщика контекста по умолчанию.

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

Если функция выполнена успешно, возвращаемое значение не равно нулю (TRUE). Если функция завершается ошибкой, возвращаемое значение равно нулю (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Комментарии

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

Установленный дескриптор поставщика должен оставаться доступным для использования до вызова CryptUninstallDefaultContext или завершения потока или процесса .

Требования

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

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

CryptUninstallDefaultContext