Статус: Новичок
Группы: Участники
Зарегистрирован: 27.11.2013(UTC) Сообщений: 1  Откуда: Мск
|
добрый день. пишу утилиту для создания ЭЦП для файлов. файлов может быть много, утилита вызывается из другого приложения для каждого файла отдельно, пин-код токена передаётся утилите этим приложением через командную строку. подписываемые файлы могут быть довольно объемными, поэтому используется CryptMsgUpdate. т.е. схема примерно такая: CryptAcquireContextA(&tmpProv, containerName, NULL, PROV_GOST_2001_DH, 0); CryptSetProvParam(tmpProv,PP_SIGNATURE_PIN,(BYTE *)pinCode,0); CryptGetUserKey(tmpProv, AT_SIGNATURE, &hKey); ... while(!feof(hFile)) { cbRead = (DWORD)fread(buffer, 1, BUFSIZE, hFile); CryptMsgUpdate(hMsg, buffer, cbRead, feof(hFile)); } ... имеется следующая проблема, - если пользователь промазал по клавише и ввёл неверный пин, то CryptMsgUpdate автоматом вызывает стандартный диалог ввода пин-кода. вопрос, - как отловить неправильный пин, т.е. вместо вызова диалога, например, вернуть вызывающему приложению код ошибки? Отредактировано пользователем 27 ноября 2013 г. 17:41:51(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 09.11.2012(UTC) Сообщений: 36 Откуда: Zel
Сказал(а) «Спасибо»: 4 раз
|
Автор: galitsky  добрый день. пишу утилиту для создания ЭЦП для файлов. файлов может быть много, утилита вызывается из другого приложения для каждого файла отдельно, пин-код токена передаётся утилите этим приложением через командную строку.
подписываемые файлы могут быть довольно объемными, поэтому используется CryptMsgUpdate. т.е. схема примерно такая: CryptAcquireContextA(&tmpProv, containerName, NULL, PROV_GOST_2001_DH, 0); CryptSetProvParam(tmpProv,PP_SIGNATURE_PIN,(BYTE *)pinCode,0); CryptGetUserKey(tmpProv, AT_SIGNATURE, &hKey);
... while(!feof(hFile)) { cbRead = (DWORD)fread(buffer, 1, BUFSIZE, hFile); CryptMsgUpdate(hMsg, buffer, cbRead, feof(hFile)); } ...
имеется следующая проблема, - если пользователь промазал по клавише и ввёл неверный пин, то CryptMsgUpdate автоматом вызывает стандартный диалог ввода пин-кода.
вопрос, - как отловить неправильный пин, т.е. вместо вызова диалога, например, вернуть вызывающему приложению код ошибки? Может у Вас из 3х первых функций, где то false возвращает при неправильном пин-коде. и это можно отловить Отредактировано пользователем 16 января 2014 г. 7:00:59(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,457  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 39 раз Поблагодарили: 750 раз в 645 постах
|
Открыть контекст в сайлент режиме и ловить ошибки. |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close