30.06.2005 14:50:20Диалоговое окно с запросом пароля Ответов: 1
Александр
Привет всем!Подписыаю несколько строк в цикле, т.е для каждой строки своя ЦП а соответственно и несколько раз вызывается фунуция подписывания.При этом ключ содержится в контейнере на дискете и при подписывании каждой из строк вызывается диалоговое окно для ввода пароля.Конечно можно включить кэширование тогда не придеться вводить десятки раз пароль, но мне надо чтобы это кэширование было включено только в пределах моего цикла.То есть после того как группа строк подписана оно отключалось бы и для подписи следующей группы строк опять надо было бы ввести пароль. Я пытался напрямую в начале цикла включать кэширование выставлением соответствующего параметра в реестре, а в конце цикла отключать его, но не получилось(параметр меняется но результата никакого пока не выйдешь из программы)
Может кто сталкивался?Подскажите какие еще могут быть варианты?
 
Ответы:
30.06.2005 18:38:45Василий
Пароль можно задать программно.
Ф-ей CryptSetProvParam, параметр PP_KEYEXCHANGE_PIN - Задаёт пароль (PIN) для доступа к ключу AT_KEYEXCHANGE, в противном случае он запрашивается у пользователя посредством UI (если не был установлен флаг CRYPT_SILENT, см. CPAcquireContext()). Если pbData - NULL, то ранее запомненный пароль забывается (для доступа к ключу потребуется повторный ввод пароля).
Пример можно посмотреть в исходниках csptest-а: http://www.cryptopro.ru/CryptoPro/test/sample2_0.zip