DWORD CPCAPI CPCAcquireContext( HCRYPTMODULE hCSP, HCRYPTPROV * phProv, CHAR * pszContainer, DWORD dwFlags, PVTABLEPROVSTRUC pVTable );
Значение dwFlags | Описание |
---|---|
CRYPT_VERIFYCONTEXT | Приложение не имеет доступа к закрытым ключам ключевого контейнера. Флаг используется в приложениях, в которых требуется только проверка цифровой подписи. Операции, обычно необходимые в этом случае, получение дескрипторов открытых ключей, хэширование и проверка подписи. При вызове функции CryptAcquireContext в MS CryptoAPI 2.0 с этим флагом криптопровайдер не требует от пользователя ввода ключевой информации. Параметр pszContainer игнорируется, но рекомендуется устанавливать его значение в NULL. |
CRYPT_SILENT | Флаг, запрещающий криптопровайдеру "КриптоПро CSP 3.9" использовать какой-либо пользовательский интерфейс (UI) при выполнении операций с данным контекстом. Если дальнейшие вызовы функций криптопровайдера требуют отображения графического интерфейса, то криптопровайдер возвратит ошибку NTE_SILENT_CONTEXT. |
CRYPT_NOSERIALIZE | Флаг, запрещающий криптопровайдеру "КриптоПро CSP 3.9" использовать ждущие блокировки при операциях создания/удаления объектов в данном контексте. При этом ответственность за недопущение параллельного вызова таких функций берёт на себя приложение. Параллельные обращения к таким функциям над одним и тем же контекстом возвращают ошибку. |
CRYPT_TOKEN_SHARED | Флаг контекста взаимодействия с ключевым носителем в режиме разделения секрета, флаг предназначен для взаимодействия с функциональными ключевыми носителями по протоколам, разработанным ООО КриптоПРО. |
Коды возврата | Описание |
---|---|
ERROR_INVALID_PARAMETER | Один из параметров содержит некорректное значение. Чаще всего это некорректный указатель. |
ERROR_BUSY | Ключевой контейнер с данным именем был создан иным процессом и в настоящее время не может использоваться данным процессом. Если эта ошибка возникает при обработке контейнера в одном процессе, разрешить коллизию можно вызвав функцию CPCReleaseContext(). |
NTE_BAD_FLAGS | Некорректное значение параметра dwFlags. |
NTE_BAD_KEYSET | Ключевой контейнер не был открыт или не существует. |
NTE_BAD_KEYSET_PARAM | Используется некорректное значение параметра pszContainer. Ошибка также может возникнуть при открытии с флагом CRYPT_SILENT и неоднозначности в выборе носителя. |
NTE_BAD_SIGNATURE | Не прошла проверка цифровой подписи DLL криптопровайдера. DLL или цифровая подпись искажены. |
NTE_EXISTS | Параметр dwFlags установлен в CRYPT_NEWKEYSET, а ключевой контейнер уже существует. |
NTE_KEYSET_ENTRY_BAD | Ключевой контейнер, соответствующий pszContainer найден, но искажён. |
NTE_KEYSET_NOT_DEF | Ключевой контейнер, соответствующий pszContainer, не существует. |
NTE_NO_MEMORY | Криптопровайдер во время операции исчерпал память. |
NTE_TOKEN_KEYSET_STORAGE_FULL | Недостаточно места на носителе для сохранения информации. |
NTE_SILENT_CONTEXT | Операция не может быть выполнена без пользовательского интерфейса. |
SCARD_W_REMOVED_CARD | Носитель контейнера был удалён из считывателя. |
SCARD_W_CANCELLED_BY_USER | Пользователь прервал операцию. |
Ядро FreeBSD: 7/8/9 или выше
Ядро Linux: ядро 2.4.x/2.6.x/3.0.х/3.2.х или выше
Ядро Solaris: 10/11 или выше.
Ядро Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше.
Файл описания: Прототип описан в файле wincspc.h.
Ядро ОС: При использовании в ядре ОС CPCAcquireContext допустимо вызывать только с флагами CRYPT_VERIFYCONTEXT|CRYPT_SILENT.
CPCReleaseContext() ,CPAcquireContext в MS CSP ,CryptAcquireContext в MS CryptoAPI 2.0 ,CryptSetProvParam в MS CryptoAPI 2.0