Добрый день.
Нужна помощь новичку в такой ситуации.
Дано: 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)
| Причина: Не указана