Статус: Участник
Группы: Участники
Зарегистрирован: 14.10.2021(UTC) Сообщений: 13  Сказал(а) «Спасибо»: 9 раз
|
Требуется получить криптопровайдер при наличии контекста сертификата, можно ли впринципе его так получить? В примерах в документации вроде всё просмотрел Изначально имеется файл .pfx с ключами и сертификатами, после считывания дайнного файла получаю HCERTSTORE pfxStore = PFXImportCertStore(&blob, pass, PKCS12_IMPORT_SILENT); Далее необходимо скопировать сертификаты в системное хранилище(с ключами без учёта промежуточных и рутовых сертификатов), для этого пробегаюсь по pfxStore: while(0 != (pCertContext = CertEnumCertificatesInStore(hdStore, pCertContext))) { ... } Вот тут требуется получить криптопровайдер(например для определения пользовательский это сертификат или промежуточный), но криптопровайдер можно получить по имени контейнера(pszContainer), однако как определить имя контейнера по pCertContext непонятно. Ещё с такой же проблемой думаю столкнусь и при подписи хэшей, так как там тоже требуется криптопровайдер, а при выборе сертификата для подписи изначально буду иметь тот же pCertContext пробежавшись через CertEnumCertificatesInStore Отредактировано пользователем 19 октября 2021 г. 18:37:59(UTC)
| Причина: Не указана
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 396 раз в 366 постах
|
Добрый день. Когда контейнер привязан к сертификату в хранилище Личные контейнер по сертификату можно получить 2 способами: 1) из соседней темы: https://www.cryptopro.ru...spx?g=posts&m=128137CryptAcquireCertificatePrivateKey(context, 0, 0, &hProv, &dwKeySpec, &mustFree) Данное действие разрешено с версии 4.0 R3 если не ошибаюсь. 2) Во всех версиях можно получить свойство контекста сертификата со ссылкой на контейнер (имя контейнера), затем использовать для получения через имя контейнера. Неудобство этого способа в в том что операций больше и приходится отдельно хранить dwKeySpec - он не нужен для получения контейнера, но внезапно нужен при подписании. Обратите внимание, что сертификат вне хранилища не содержит ссылки на контейнер. Другими словами, даже создав контекст из такого файла сертификата ссылка там сама собой не появится - ее надо будет либо задать, либо найти такой же сертификат с проставленной ссылкой в хранилище. Мне сложно сказать сработает ли получение ссылки для хранилища полученного командой PFXImportCertStore.
|
 1 пользователь поблагодарил two_oceans за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close