Крипто-Про CSP |
BOOL WINAPI CPGetProvParam( HCRYPTPROV hProv, DWORD dwParam, BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags );
Значение dwParam | Содержимое буфера pbData | |||||
---|---|---|---|---|---|---|
PP_CONTAINER | Имя ключевого контейнера вида CONTAINER, если он имеет имя, в противном случае уникальное имя (см. PP_UNIQUE_CONTAINER). Строка, заканчивающаяся нулем, содержащая имя текущего ключевого контейнера. Подробнее см. Дополнительные параметры и определения . | |||||
PP_UNIQUE_CONTAINER | Уникальное имя ключевого контейнера, которое включает тип ключевого носителя и может иметь вид: MEDIA\FOLDER, MEDIA\UNIQUE\FOLDER или MEDIA\UNIQUE. Строка, заканчивающаяся нулем, содержащая имя текущего ключевого контейнера. Подробнее см. Дополнительные параметры и определения . | |||||
PP_ENUMALGS | Поддерживаемые алгоритмы. Подробнее см.
CryptGetProvParam в MS CryptoAPI 2.0 ![]() |
|||||
PP_ENUMALGS_EX | Поддерживаемые алгоритмы. Подробнее см.
CryptGetProvParam в MS CryptoAPI 2.0 ![]() |
|||||
PP_ENUMCONTAINERS | Имя одного из ключевых контейнеров, которые могут быть использованы криптопровайдером, возвращаемое в форме строки, заканчивающейся нулем. Прикладные программы могут вызывать функцию с данным параметром последоватьльно для перечисления всех ключевых контейнеров, поддерживаемых криптопровайдером. Эта функция не является многопоточной, и поэтому при использовании ее в многопоточном контексте есть вероятность, что не все поддерживаемые ключевые контейнеры будут перечислены. | |||||
PP_PROVTYPE | Тип криптопровайдера. Возвращается в виде переменной типа DWORD. | |||||
PP_IMPTYPE | Тип реализации криптопровайдера. Возвращается в виде переменной
типа DWORD. В настоящее время определены следующие типы реализации:
|
|||||
PP_NAME | Имя провайдера в форме строки, заканчивающейся нулем. Это имя соответствует "CSP Name", которое программа setup установила в Windows® Registry. | |||||
PP_VERSION | Версия криптопровайдера. Возвращается в виде переменной типа DWORD. Например, версия 1.0 представляется как 0x00000100. | |||||
PP_KEYSPEC | Тип ключа (всегда либо AT_KEYEXCHANGE, либо AT_SIGNATURE). Возвращается в виде переменной типа DWORD. | |||||
PP_KEYX_KEYSIZE_INC | Размер модуля открытого ключа обмена AT_KEYEXCHANGE. Возвращается в виде переменной типа DWORD. Размер модуля ключа равен 1024 (для ГОСТ Р 34.10-94) либо 512 (для ГОСТ Р 34.10-2001). | |||||
PP_SIG_KEYSIZE_INC | Размер модуля открытого ключа ЭЦП AT_SIGNATURE. Возвращается в виде переменной типа DWORD. Размер модуля ключа равен 1024 (для ГОСТ Р 34.10-94) либо 512 (для ГОСТ Р 34.10-2001). | |||||
PP_KEYSET_SEC_DESCR | Возвращает дескриптор безопасности раздела реестра Windows, где хранятся ключи пользователя. Функция не поддерживается. Возвращает FALSE. | |||||
PP_ENUMOIDS_EX | Поддерживаемые идентификаторы криптографических параметров алгоритмов. Перечисляются строковые величины - OID криптографических параметров алгоритмов. | |||||
PP_HASHOID | OID текущих параметров алгоритма функции хеширования. | |||||
PP_SIGNATUREOID | OID текущих параметров алгоритма подписи. | |||||
PP_DHOID | OID текущих параметров алгоритма Диффи-Хеллмана. | |||||
PP_CIPHEROID | OID текущих параметров алгоритма шифрования. | |||||
PP_CHECKPUBLIC | Передаёт в pbData значение флага проверки открытого ключа. | |||||
PP_RANDOM | Возвращает в pbData последовательность случайных чисел для установки программного ДСЧ криптопровайдера уровня ядра ОС. Если контекст криптопровайдера hProv открыт в режиме CRYPT_VERIFYCONTEXT, то предварительно будут получены случайные числа с физического или клавиатурного ДСЧ. См. описание параметра PP_USE_HARDWARE_RNG CPSetProvParam(). | |||||
PP_LAST_ERROR | Код последней ошибки криптопровайдера. В pbData буфер будет помещена величина DWORD - код последней ошибки, возвращённой одной из функций криптопровайдера. Коды ошибок даны в файле WinCryptEx.h. | |||||
PP_MUTEX_ARG | Только для использования в ядре ОС и в UNIX. Возвращает значение последнего аргумента функции mutex_init (указатель на обработчик прерывания) для всех mutex, используемых при работе CSP. | |||||
PP_DRVCONTAINER | Получает указатель (handle) контейнера в драйвере. | |||||
PP_ENUM_HASHOID | Получает перечень идентификаторов криптографических объектов, связанных с функцией хеширования. | |||||
PP_ENUM_CIPHEROID | Получает перечень идентификаторов криптографических объектов, связанных с функцией шифрования. | |||||
PP_ENUM_SIGNATUREOID | Получает перечень идентификаторов криптографических объектов, связанных с функцией цифровой подписи. | |||||
PP_ENUM_DHOID | Получает перечень идентификаторов криптографических объектов, связанных с алгоритмом Диффи-Хеллмана. | |||||
PP_HCRYPTPROV | Загружает контейнер в память и возвращает DWORD идентифицирующий контейнер. | |||||
PP_SELECT_CONTAINER | Выводит диалоговое окно выбора контейнера и возвращает имя выбраного пользователем контейнера. Если dwFlags & CRYPT_FQCN , то имя контейнера возвращается в формате FQCN (см. PP_FQCN). Имя контейнера возвращается в текущей кодировке. Возвращаемая строка заканчивается нулем. | |||||
PP_FQCN | Возвращает FQCN (Fully Qualified Container Name) конетйнера: \\.\<Reader>\<Name> , где <Reader> имя считывателя, на котором находится контейнер, <Name> имя контейнера в текущей кодировке. Возвращаемая строка заканчивается нулем. | |||||
PP_ENUMREADERS | Имя одного из считывателей ключевых контейнеров, которые могут быть использованы криптопровайдером, возвращаемое в форме строки, заканчивающейся нулем. Прикладные программы могут вызывать функцию с данным параметром последоватьльно для перечисления всех ключевых контейнеров, поддерживаемых криптопровайдером. Эта функция не является многопоточной, и поэтому при использовании ее в многопоточном контексте есть вероятность, что не все поддерживаемые считыватели будут перечислены. | |||||
PP_INFO | Вовращает структуру, содержащую значение таймера криптографического модуля, для недрайвера дополнительно содержит количество ДСРФ, свободное место на файловой системе /var, количество попыток выпусть ключ УЛ, количество успешных смен карт канала "К", количество карт канала выпущенных при последней смене, количество операций подписи | |||||
PP_PIN_INFO | Возвращает структуру пароля для текущего контейнера в виде структуры #CRYPT_PIN_INFO | |||||
PP_PASSWD_TERM | Получает термин пароль ("пароль" / "pin-code") для текущего носителя. Возвращаемое значение содержит строку текущей кодировке заканчивающуюся нулем. | |||||
PP_SAME_MEDIA | Функция проверяет наличие носителя, соответствующего данному контейнеру, в считывателе. | |||||
PP_VERSION_TIMESTAMP | Получение даты и времени завершения компиляции в формате "day month year" "hh:mm:ss". | |||||
PP_SECURITY_LEVEL | Возвращает DWORD уровня сертификации данного криптографического модуля KC1: 1, KC2: 2, KC3: 3, KB1: 4, KB2: 5, KA1: 6 | |||||
PP_FAST_CODE |
Параметр предназначен для определения, какой код - быстрый или медленный - используется в провайдере на компьютерах, оснащенных процессором Intel Pentium 4. В pbData структура типа CSP_FAST_CODE . Параметр dwFlags должен содержать хотя бы один из флагов, указанных ниже.
|
|||||
PP_ENUM_CONTAINER_EXTENSION | Имя одного из расширений ключевого контейнера, возвращаемое в форме структуры #CONTAINER_EXTENSION строки. Прикладные программы могут вызывать функцию с данным параметром последоватьльно для перечисления всех расширений ключевого контейнера. Эта функция не является многопоточной, и поэтому при использовании ее в многопоточном контексте есть вероятность, что не все поддерживаемые считыватели будут перечислены. |
Значение dwFlags | Описание |
---|---|
CRYPT_FIRST | Используется совместно с параметром перечисления (например, PP_ENUMALGS, PP_ENUMALGS_EX или PP_ENUMCONTAINERS). При использовании этого флага возвращается первый элемент в списке перечисления, в противном случае возвращается следующий элемент в списке. Если флаг используется совместно с параметром, не являющимся параметром перечисления, то возвращается код ошибки NTE_BAD_FLAGS. |
CRYPT_UNIQUE | Используется совместно с параметром PP_ENUMCONTAINERS. При использовании этого флага первыми по приоритету перед обычными именами возвращаются уникальные имена контейнеров. Если под уникальный номер выделено достаточно памяти, после уникального номера копируется обычное имя контейнера. |
CRYPT_MACHINE_KEYSET | Используется совместно с параметром PP_ENUMCONTAINERS для перечисления ключевых контейнеров в разделе HKEY_LOCAL_MACHINE, а не в разделе HKEY_CURRENT_USER (значение по умолчанию) системного реестра. |
SECURITY_INFORMATION | Если dwParam установлен в PP_KEYSET_SEC_DESCR, будет
возвращен дескриптор безопасности раздела реестра, содержащего
ключевой контейнер. В этом случе dwFlags используется, чтобы
передать битовые флаги, объединяемые поразрядной операцией OR.
Указатель на дескриптор безопасности возвращается в аргументе
pbData , длина дескриптора безопасности возвращается в
аргументе pcbData . Для получения дополнительной информации,
см. RegGetKeySecurity и RegSetKeySecurity. Следующий список
содержит определенные битовые маски, используемые для возврата
требуемой информации.
|
Коды возврата | Описание |
---|---|
ERROR_MORE_DATA | Размер буфера pbData недостаточен для копирования затребованных данных. |
NTE_BAD_FLAGS | Параметр dwFlags имеет некорректное значение. |
NTE_BAD_TYPE | dwParam определяет неизвестный параметр. |
SCARD_W_CANCELLED_BY_USER | Пользователь прервал операцию нажатием клавиши Cancel. |
SCARD_W_WRONG_CHV | Пользователь ввел неправильный пароль или пароль, установленный функцией SetProvParam, неправильный. |
SCARD_E_INVALID_CHV | Пользователь ввел пароль с нарушением формата или пароль, установленный функцией SetProvParam, имеет неправильный формат. Например, пароль имеет недопустимую длину или содержит недопустимые символы. |
SCARD_W_CHV_BLOCKED | Ввод Pin-кода был заблокирован смарт-картой, т.к. исчерпалось количество попыток, разрешенное картой для ввода. |
NTE_SILENT_CONTEXT | Операция не может быть выполнена без пользовательского интерфейса. |
SCARD_W_REMOVED_CARD | Носитель контейнера был удален из считывателя. |
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() ,CPSetProvParam() ,CPGetProvParam
в MS CSP ,CryptGetProvParam
в MS CryptoAPI 2.0
![]() |
Что Вы
думаете по поводу данной статьи? |
![]() |
Закажите CD c Крипто-Про CSP |