Крипто-Про CSP |
BOOL WINAPI CPSetProvParam( HCRYPTPROV hProv, DWORD dwParam, BYTE * pbData, DWORD dwFlags );
Значение dwParam | Содержимое буфера pbData |
---|---|
PP_KEYSET_SEC_DESCR | Устанавливает дескриптор безопасности раздела реестра Windows, где хранятся ключи пользователя. Значение дескриптора передаётся в pbData . Функция не поддерживается. Возвращает TRUE. |
PP_HASHOID | Устанавливает идентификатор алгоритма функции хеширования. |
PP_CIPHEROID | Устанавливает идентификатор алгоритма шифрования. |
PP_SIGNATUREOID | Устанавливает идентификатор алгоритма подписи. |
PP_DHOID | Устанавливает идентификатор алгоритма Диффи-Хеллмана. |
PP_KEYEXCHANGE_PIN | Задаёт пароль (PIN) для доступа к ключам AT_SIGNATURE и
AT_KEYEXCHANGE. Если пароль не задан этой функцией или задан этой
функцией неверно, то он запрашивается у пользователя посредством UI
перед первым обращением к носителю (если не был установлен флаг
CRYPT_SILENT, см. CPAcquireContext()).
Если pbData - NULL, то существующий пароль для этого контейнера
забывается и для доступа к ключу потребуется повторный ввод
пароля. В КриптоПро CSP используется единый пароль (PIN) для доступа к ключам AT_SIGNATURE и AT_KEYEXCHANGE. Параметры PP_KEYEXCHANGE_PIN и PP_SIGNATURE_PIN эквивалентны. |
PP_SIGNATURE_PIN | Задаёт пароль (PIN) для доступа к ключам AT_SIGNATURE и
AT_KEYEXCHANGE. Если пароль не задан этой функцией или задан этой
функцией неверно, то он запрашивается у пользователя посредством UI
перед первым обращением к носителю (если не был установлен флаг
CRYPT_SILENT, см. CPAcquireContext()).
Если pbData - NULL, то запомненный ранее пароль для этого
контейнера забывается и для доступа к ключу потребуется повторный
ввод пароля. В КриптоПро CSP используется единый пароль (PIN) для доступа к ключам AT_SIGNATURE и AT_KEYEXCHANGE. Параметры PP_KEYEXCHANGE_PIN и PP_SIGNATURE_PIN эквивалентны. |
PP_CHANGE_PIN | Задаёт новый пароль для контейнера hProv. |
PP_SET_PIN | Устанавливает пароль на контейнер hProv в случае зашифрования его на другом контейнере или на нескольких контейнерах для схемы n из k. Этот пароль будет использован при последующем открытии контейнера hProv на чтение. Если контейнер hProv был создан при помощи функции CPAcquireContext() с флагом CRYPT_NEWKEYSET, то пароль, устанавливаемый на него, также будет установлен на доступ к ключу этого контейнера. Если функция CPSetProvParam() не вызывалась, то при доступе к ключу выдается UI (если не был установлен флаг CRYPT_SILENT, см. CPAcquireContext()). При открытии контейнера в SILENT-режиме возвращается ошибка. |
PP_USE_HARDWARE_RNG | Иницирует добавление к ДСЧ контекста криптопровайдера
hProv значения с физического или БиоДСЧ. В случае, если в
данной системе поддерживается только БиоДСЧ, то выдаётся UI для
ввода событий мыши и/или клавиатуры (если не был установлен флаг
CRYPT_SILENT, см. CPAcquireContext()). При вызове функции CPSetProvParam() с параметром PP_USE_HARDWARE_RNG параметр pbData не используется. Обычно, при отсуствии в системе физического ДСЧ, данные с БиоДСЧ добавляются в обязательном порядке к контексту криптопровайдера (в контейнер ключевой информации) только при создании постоянных ключей AT_KEYEXCHANGE или AT_SIGNAUTURE функцией CPGenKey(). |
PP_RANDOM | Устанавливает в pbData ключевой блоб типа SIMPLEBLOB (см. CRYPT_SIMPLEBLOB ), содержащий последовательность случайных чисел, необходимую для установки программного ДСЧ уровня ядра ОС. См. описание параметра PP_RANDOM функции CPGetProvParam(). |
PP_CHECKPUBLIC | Получает из pbData значение флага проверки открытого ключа. Если значение pbData равно 1, при импорте открытого ключа проверяется его корректность, если 0, проверка производится, если флаг установлен по параметру PP_ADMIN_CHECKPUBLIC. Открытый ключ, соответствующий ГОСТ 34.10-2001, проверяется всегда. |
PP_ADMIN_CHECKPUBLIC | Получает из pbData значение флага проверки открытого ключа и устанавливает его в реестр. Если значение установленного в реестре флага равно 1, при импорте открытого ключа проверяется его корректность независимо от установки пользователя по параметру PP_CHECKPUBLIC, если установленного в реестре флага равно 0, проверка производится в зависимости от установки по параметру PP_CHECKPUBLIC. Открытый ключ, соответствующий ГОСТ 34.10-2001, проверяется всегда. |
PP_MUTEX_ARG | Только для использования в ядре ОС и в UNIX. Устанавливает значение последнего аргумента функции mutex_init (указатель на обработчик прерывания) для всех mutex, используемых при работе CSP. Этот параметр необходимо установить до первого вызова CPAcquireContext(). Значение hProv при этом должно быть установлено в NULL. |
PP_FAST_CODE | Параметр предназначен для управления подключением быстрых функций на компьютерах, оснащенных процессором Intel Pentium 4. Применяется для установки функций захвата и освобождения регистров расширений MMX, SSE2. Определен только в KC1. В pbData структура типа CSP_FAST_CODE . |
PP_NK_SYNC | Производит запись одной из частей контейнера разделенного по схеме K из N. В качестве pbData должен быть передан DWORD полученный функцией GetProvParam с параметром PP_HCRYPTPROV. Функция используется для содания контейнера разделеноого на части без выдачи окон. |
PP_DELETE_KEYSET | Удаляет текущий контейнер с носителя. Функция используется для удаления контейнеров, требующих для очистки пароля, в SILENT режиме. Контейнер после успешного завершения данной операции больше не может быть использован ни в одной функции провайдера, исключая CPReleaseContext (CryptReleaseContext). |
PP_DELETE_SAVED_PASSWD | Удаляет сохраненные на диске пароли для заданного параметром контейнера или для всех контейнеров. Если в качестве pbData передан NULL, то функция производит удаление всех сохраненных паролей. Если в качестве pbData передано имя контейнера, то функция удаляет сохраненный пароль для этого контейнера. Имя контейнера должно быть задано в текущей кодировке и заканчиваться нулем. При удалении сохраненного пароля так же производится удаление связки между именем контейнера и уникальным именем контейнера. |
PP_CONTAINER_EXTENSION | Устанавливает extension для контейнера. Если extension уже был задан в контейнере, то функция заменяет этот extension в контейнере. В качестве pbData должен быть передан etxnsion в формате #CERT_EXTENSION. |
PP_CONTAINER_EXTENSION_DEL | Удаляет из контейнера extension, заданный строковым представлением OID. |
PP_CONTAINER_DEFAULT | Устанавливает текущий контейнер - контейнером по умолчанию на текущем носителе. |
Значение dwFlags | Описание |
---|---|
SECURITY_INFORMATION | Флаг устанавливается,если dwParam установлен в
дескриптор безопасности раздела реестра
PP_KEYSET_SEC_DESCR,содержащего ключевой контейнер. Указатель на
дескриптор безопасности передаётся в аргументе pbData , его
длина передаётся в аргументе pcbData . Используются
следующие битовые флаги:
|
Коды возврата | Описание |
---|---|
NTE_BAD_DATA | Длина идентификатора главного ключа пользователя превышает максимально допустимую. |
NTE_BAD_FLAGS | Величина dwFlags имеет ненулевое значение. |
NTE_BAD_TYPE | dwParam определяет неизвестный параметр. |
NTE_KEYSET_ENTRY_BAD | Нарушение целостности ключей в ОЗУ. |
NTE_FAIL | Ошибка при считывании данных из системного реестра. |
SCARD_W_CANCELLED_BY_USER | Пользователь прервал операцию нажатием клавиши Cancel |
SCARD_W_WRONG_CHV | Пользователь ввел неправильный пароль или пароль, установленный функцией SetProvParam, неправильный |
SCARD_E_INVALID_CHV | Пользователь ввел пароль с нарушением формата или пароль, установленный функцией SetProvParam(), имеет неправильный формат. Например, пароль имеет недопустимую длину или содержит недопустимые символы. |
SCARD_W_CHV_BLOCKED | Ввод Pin-кода был заблокирован смарт-картой, т.к. исчерпалось количество попыток разрешенное картой для ввода. |
NTE_TOKEN_KEYSET_STORAGE_FULL | Недостаточно места на носителе для сохранения информации. |
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() ,CPGetProvParam() ,CPSetProvParam в MS CSP ,CryptSetProvParam в MS CryptoAPI 2.0
Что Вы
думаете по поводу данной статьи? |
Закажите CD c Крипто-Про CSP |