Kaonasi Опубликовано 29 Декабря 2010 Жалоба Поделиться Опубликовано 29 Декабря 2010 Доброго времени суток всем!Есть проблема.Установлен ViPNet Client 3.1(2.6263) и eToken PKI Client 5.1 SP1(5.1.66.0). Задача заключается в том, чтобы пин-код на токен можно было задать только один раз, либо при входе в приложение (которое использует ЭЦП), либо где-нибудь ещё. Приложение собственной разработки, с ним работают люди, которые каждые 5 или 10 минут должны подписывать с помощью ЭЦП электронные документы. Ввод пин-кода каждый раз категорически исключается, иначе вся работа только и будет заключаться во вводе пин-кода.Приложение пытается открыть контекст криптопровайдера на сертификате, в CryptAcquireContext передаются имя контейнера, имя провайдера и флаг CRYPT_SILENT. В такой конфигурации пароль через CryptSetProvParam (флаг PP_KEYEXCHANGE_PIN) задать можно и он работает (документы корректно подписываются), но при освобождении контекста криптопровайдера в CryptReleaseContext приложение намертво повисает.Можно ли программно решить проблему корректного задания пин-кода? Или проще посоветовать переписать ключи на токены с пустым пин-кодом? (во втором случае придётся снова ездить по всей области ). Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Echo Опубликовано 29 Декабря 2010 Жалоба Поделиться Опубликовано 29 Декабря 2010 Доброго времени суток всем!Есть проблема.Установлен ViPNet Client 3.1(2.6263) и eToken PKI Client 5.1 SP1(5.1.66.0). Задача заключается в том, чтобы пин-код на токен можно было задать только один раз, либо при входе в приложение (которое использует ЭЦП), либо где-нибудь ещё. Приложение собственной разработки, с ним работают люди, которые каждые 5 или 10 минут должны подписывать с помощью ЭЦП электронные документы. Ввод пин-кода каждый раз категорически исключается, иначе вся работа только и будет заключаться во вводе пин-кода.Приложение пытается открыть контекст криптопровайдера на сертификате, в CryptAcquireContext передаются имя контейнера, имя провайдера и флаг CRYPT_SILENT. В такой конфигурации пароль через CryptSetProvParam (флаг PP_KEYEXCHANGE_PIN) задать можно и он работает (документы корректно подписываются), но при освобождении контекста криптопровайдера в CryptReleaseContext приложение намертво повисает.Можно ли программно решить проблему корректного задания пин-кода? Или проще посоветовать переписать ключи на токены с пустым пин-кодом? (во втором случае придётся снова ездить по всей области ).Насколько я знаю, при использовании еТокена в ViPNet Клиенте, его pin-код молжно сохранить, есть соответствующий чекбокс в окне запроса pin-кода. Возможно, для ее активации Вам нужен пароль Администратора сетевого узла, с которым она будет доступна.Рекомендую, если Вы используете библиотеки для встраивания в прикладное ПО, которые устанавливаете из ViPNet Клиента, напишите подробнее о проблеме и постановке задачи на hotline@infotecs.ru, возможно, потребуется взаимодействие с разработчиками ПО ViPNet Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Kaonasi Опубликовано 29 Декабря 2010 Автор Жалоба Поделиться Опубликовано 29 Декабря 2010 Насколько я знаю, при использовании еТокена в ViPNet Клиенте, его pin-код молжно сохранить, есть соответствующий чекбокс в окне запроса pin-кода. Возможно, для ее активации Вам нужен пароль Администратора сетевого узла, с которым она будет доступна.Рекомендую, если Вы используете библиотеки для встраивания в прикладное ПО, которые устанавливаете из ViPNet Клиента, напишите подробнее о проблеме и постановке задачи на hotline@infotecs.ru, возможно, потребуется взаимодействие с разработчиками ПО ViPNetСпасибо! Чекбокс попробуем вывести. Насчёт встраивания: я использую только функции Windows CryptoAPI, библиотеки ViPNet не подключаю. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Kaonasi Опубликовано 12 Января 2011 Автор Жалоба Поделиться Опубликовано 12 Января 2011 С проблемой разобрались. Мы используем DLL для функций подписания. Выяснилось, что нельзя вызывать функцию CryptReleaseContext во время выгрузки библиотеки (DllEntryPoint с параметром reason = DLL_PROCESS_DETACH). Как только разделили вызов CryptReleaseContext с выгрузкой динамической библиотеки, приложение перестало зависать в процессах и завершается корректно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.