Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline navrocky  
#1 Оставлено : 12 сентября 2024 г. 18:28:37(UTC)
navrocky

Статус: Участник

Группы: Участники
Зарегистрирован: 19.10.2022(UTC)
Сообщений: 19
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 2 раз в 2 постах
Сейчас открываю ключевой контейнер установленным PIN CryptAcquireContextW с флагом CRYPT_SILENT. Соответственно при дальнейшей попытке использования получаю ошибку
Код:

Provider could not perform the action since the context was acquired as silent. (2148073506)

Хотелось бы после открытия контейнера проверить что там требуется ввод PIN и сругнуться более внятно для пользователя.

Какой функцией это можно выяснить? Сейчас смотрю в CryptGetProvParam и не вижу там ничего похожего на PIN_USED (

Отредактировано пользователем 12 сентября 2024 г. 18:29:24(UTC)  | Причина: Не указана

Offline navrocky  
#2 Оставлено : 13 сентября 2024 г. 0:18:20(UTC)
navrocky

Статус: Участник

Группы: Участники
Зарегистрирован: 19.10.2022(UTC)
Сообщений: 19
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 2 раз в 2 постах
Нашел в функции CPGetProvParam параметер PP_PIN_INFO, в этой структуре есть type, который как раз то что мне нужно, но я работаю с интерфейсом CAPILite. Попробовал его вызвать с функцией CryptGetProvParam тоже сработало, хотя это незадокументировано. Правильно ли я делаю, или есть более верный способ?

Отредактировано пользователем 13 сентября 2024 г. 0:19:45(UTC)  | Причина: Не указана

Offline N.Fomichev  
#3 Оставлено : 18 сентября 2024 г. 16:43:01(UTC)
N.Fomichev

Статус: Новичок

Группы: Участники
Зарегистрирован: 03.05.2024(UTC)
Сообщений: 4
Российская Федерация
Откуда: Москва

Поблагодарили: 4 раз в 3 постах
В общем случае получить от ключевого носителя список имеющихся у него механизмов аутентификаций можно вызовом CryptGetProvParam(PP_AUTH_INFO). Он вернет указатель на структуру CRYPT_AUTH_INFO, в которой описывается основная информация про аутентификацию носителя (предъявление PIN, PUK). Через консоль эту информацию можно, например, запросить командой:
Цитата:
csptest -passwd -authinfo -cont container_name

Что из этого можно и нужно предъявлять, зависит от того, какие механизмы аутентификаций имеются, и что собираетесь дальше делать.
thanks 1 пользователь поблагодарил N.Fomichev за этот пост.
Санчир Момолдаев оставлено 18.09.2024(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.