Крипто-Про CSP |
BOOL WINAPI CPAcquireContext( HCRYPTPROV * phProv, CHAR * pszContainer, DWORD dwFlags, PVTABLEPROVSTRUC pVTable );
Значение dwFlags | Описание |
---|---|
CRYPT_VERIFYCONTEXT | Приложение не имеет доступа к закрытым ключам ключевого контейнера. Флаг используется в приложениях, в которых требуется только проверка цифровой подписи. Операции, обычно необходимые в этом случае, – получение дескрипторов открытых ключей, хеширование и проверка подписи. При вызове функции CryptAcquireContext в MS CryptoAPI 2.0 с этим флагом криптопровайдер не требует от пользователя ввода ключевой информации. |
CRYPT_NEWKEYSET | Если флаг установлен, то будет создан новый ключевой контейнер с именем, соответствующим pszContainer . Если pszContainer - NULL, то в качестве имени контейнера используется имя пользователя, вошедшего в систему. |
CRYPT_MACHINE_KEYSET | Флаг может использоваться при вызове функции CryptAcquireContext в MS CryptoAPI 2.0 c CRYPT_NEW_KEYSET или флагом CRYPT_DELETE_KEYSET. В этом случае ключи будут сохранены в ключе HKEY_LOCAL_MACHINE системного реестра. Флаг предназначен для использования криптопровайдера в составе приложений, не имеющих доступа к пользовательскому разделу реестра (сервис, драйвер и т.д.). |
CRYPT_DELETEKEYSET | Ключевой контейнер, соответствующий pszContainer , удаляется. Если pszContainer - NULL, то удаляется ключевой контейнер, заданный по умолчанию (см. Дополнительные параметры и определения ). Все ключевые пары в ключевом контейнере также уничтожаются. Когда флаг CRYPT_DELETEKEYSET установлен, значение, возвращенное в phProv , не определено и повторный вызов функции CPReleaseContext() с тем же дескриптором phProv также не определен. |
CRYPT_SILENT | Флаг, запрещающий криптопровайдеру "КриптоПро CSP" использовать какой-либо пользовательский интерфейс (UI) при выполнении операций с данным контекстом. Если дальнейщие вызовы функций криптопровайдера требуют отображения графического интерфейса, то криптопровайдер возвратит ошибку NTE_SILENT_CONTEXT. |
Коды возврата | Описание |
---|---|
ERROR_BUSY | Ключевой контейнер с данным именем был создан иным процессом и в настоящее время не может использоваться данным поцессом. Если эта ошибка возникает при обработке контейнера в одном процессе, разрешить коллизию можно вызвав функцию CPReleaseContext(). |
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 | Пользователь прервал операцию. |
Windows
2000/XP/2003: Необходимо Windows 2000 SP4 или старше с Internet
Explorer 6.0 или старше.
Windows
NT/95/98/ME: CSP 3.0 не поддерживает (см. КриптоПро CSP
2.0 ).
Solaris: 9
Update 4 или выше.
FreeBSD:
FreeBSD 5.2 или выше
Linux: RedHat
7.3, RedHad 9.0.
Файл описания:
Прототип описан в файле wincsp.h.
Ядро Windows
NT: IRQL < DISPATCH_LEVEL
Ядро ОС: При
использовании в ядре ОС CPAcquireContext допустимо вызывать только
с флагами CRYPT_VERIFYCONTEXT|CRYPT_SILENT.
CPReleaseContext() ,CPAcquireContext в MS CSP ,CryptAcquireContext в MS CryptoAPI 2.0 ,CryptSetProvParam в MS CryptoAPI 2.0
Что Вы
думаете по поводу данной статьи? |
Закажите CD c Крипто-Про CSP |