Контексты поставщика служб шифрования
Первая функция CryptoAPI, вызываемая приложением, использующим любые криптографические API, — это функция CryptAcquireContext. Эта функция возвращает дескриптор определенному поставщику служб CSP, который включает спецификацию конкретного контейнера ключей в CSP. Этот контейнер ключей является либо контейнером ключей, запрашиваемым, либо контейнером ключей по умолчанию для текущего пользователя, вошедшего в систему.
CryptAcquireContext также может создать новый контейнер ключей. Дополнительные сведения см. в разделе Пример программы C: создание контейнера ключей и создание ключей и пример программы C: использованиеCryptAcquireContext.
Поставщик служб шифрования (CSP) имеет имя и тип. Например, имя одного из поставщиков csps, которые в настоящее время поставляется с операционной системой, поставщика шифрования Microsoft Base. Это поставщик типов PROV_RSA_FULL. Имя каждого поставщика уникально; Тип поставщика не является.
Когда приложение вызывает CryptAcquireContext для получения дескриптора CSP, он указывает тип поставщика и, при необходимости, имя поставщика. Если указан тип и имя, функция загружает CSP с соответствующим типом поставщика и именем поставщика. Функция возвращает дескриптор CSP, который предоставляет доступ как к CSP, так и к контейнеру ключей в CSP.
Когда приложение вызывает CryptAcquireContext и указывает тип поставщика, но не имя поставщика, функция ищет именованного поставщика, сначала проверьте список именованных поставщиков по умолчанию, связанных с пользователем, вошедшего в систему, и, если это не удается, из списка именованных поставщиков по умолчанию, связанных с компьютером. После определения имени поставщика функция CryptAcquireContext выполняет поиск CSP для этого поставщика, загружает его и возвращает его дескриптор.
Завершив использование дескриптора CSP, отпустите его, вызвав функциюCryptReleaseContext.