Контексты поставщика служб шифрования

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

CryptAcquireContext также может создать новый контейнер ключей. Дополнительные сведения см. в разделах Пример программы C. Создание контейнера ключей и Создание ключей и Пример программы C: использование CryptAcquireContext.

Поставщик служб шифрования (CSP) имеет как имя, так и тип. Например, имя одного из поставщиков служб конфигурации, поставляемых в настоящее время вместе с операционной системой, — Microsoft Base Cryptographic Provider. Это поставщик PROV_RSA_FULL типа. Имя каждого поставщика уникально; Тип поставщика — нет.

Когда приложение вызывает CryptAcquireContext для получения дескриптора CSP, оно указывает тип поставщика и, при необходимости, имя поставщика. Если указаны как тип, так и имя, функция загружает CSP с соответствующим типом поставщика и именем поставщика. Функция возвращает дескриптор CSP, который предоставляет доступ как к поставщику служб конфигурации, так и к контейнеру ключей в рамках CSP.

Когда приложение вызывает CryptAcquireContext и указывает тип поставщика без имени поставщика, функция ищет именованного поставщика, сначала проверив список именованных поставщиков по умолчанию, связанных с вошедшего в систему пользователя, и, в случае сбоя, из списка именованных поставщиков по умолчанию, связанных с компьютером. После определения имени поставщика функция CryptAcquireContext выполняет поиск поставщика CSP, загружает его и возвращает дескриптор.

Завершив использование дескриптора CSP, отпустите его, вызвав функцию CryptReleaseContext .