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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline NewToCrypt  
#1 Оставлено : 23 ноября 2016 г. 16:33:15(UTC)
NewToCrypt

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

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

Добрый день.
Нужна помощь новичку в такой ситуации.
Дано: CryptoPro CSP 4, социальная карта с криптоконтейнером в котором сертификат, доступ к контейнеру по пину.
1 Требуется передать пин контейнеру и проверить его не вызывая стандартных окон CryptoPro.
2 Требуется создать отсоединенную подпись(.sig) файла и проверить её. Проверяю в триале КриптоАрм последней версии.

Вариант 1: Использую Delphi 2009+Capicom 2.1.0.3 и модуль для примера отсюда http://www.cryptopro.ru/...ts&m=29591#post29591
открывается диалог с перечнем сертфикатов и создается подпись, проверяется в криптоарм успешно

1) Вопрос первый, как заставить Capicom вместо My, открыть контейнер на карте и выбрать из него сертификат?
oStore.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_READ_ONLY);
Пробовал подставлять 'CAPICOM_SMART_CARD_USER_STORE' и имя контейнера напрямую, ничего не выходит.
А дальше встают проблемы:
2) тихой передачи пина и
3) выбора сертификата из контейнера на карте без открытия окошек.

Вариант 2: Delphi 2009 + JwaWinCrypt.pas v 1.17
Удалось: получить перебрать список всех провайдеров, список всех контейнеров, возможно правильно
передать пин CryptSetProvParam(hProv, PP_KEYEXCHANGE_PIN , PBYTE(THEPIN), 0) и получить контекст ключа пользователя CryptGetUserKey(hProv, AT_KEYEXCHANGE, hKey), правда не знаю нужен ли он.
Перебрать все сертификаты и вывести их названия CertEnumCertificatesInStore, но опять таки как и в случае с Capicom только в системном хранилище 'My' через функцию CertOpenSystemStore

Тут нужна подсказка куда дальше двигаться, понимаю что когда-нибудь изучу и нагуглю всё сам, но время поджимает, поэтому решил обратиться к форуму.

Отредактировано пользователем 23 ноября 2016 г. 16:34:12(UTC)  | Причина: Не указана

Offline NewToCrypt  
#2 Оставлено : 24 ноября 2016 г. 15:35:57(UTC)
NewToCrypt

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

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

Удалось создать подпись CryptSignMessage и успешно проверить её в КриптоАрм.
Удалось подавить всплывавшее окно ввода пина, путем передачи CryptSetProvParam(hProv, PP_SIGNATURE_PIN , PBYTE(THEPIN), 0)

Было бы неплохо получить помощь в двух следующих вопросах:
1 При неправильном пине снова выплывает окошко ввода. Подавить его, передав CRYPT_SILENT в CryptAcquireContext, не удалось.
2 Забуксовал на получении контекста сертификата из конкретного контейнера. Пока пользуюсь CertOpenSystemStore и CertEnumCertificatesInStore. Как бы обратится к контейнеру на карте?

Был бы очень признателен за подсказки.
Offline NewToCrypt  
#3 Оставлено : 25 ноября 2016 г. 9:25:29(UTC)
NewToCrypt

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

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

Удалось подавить всплывающее окошко повторного ввода пина передав флаг CRYPT_SILENT структуре CRYPT_SIGN_MESSAGE_PARA
Контекст сертификата получил через CryptGetUserKey(hProv, AT_SIGNATURE, hKey), затем CryptGetKeyParam и CertCreateCertificateContext
Offline NewToCrypt  
#4 Оставлено : 21 декабря 2016 г. 10:17:03(UTC)
NewToCrypt

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

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

Подскажите, пожалуйста, как выудить информацию о числе оставшихся попыток ввода пина? Если можно дайте пример на любом языке.

Отредактировано пользователем 21 декабря 2016 г. 10:17:59(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.