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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline astarukhin  
#1 Оставлено : 20 августа 2024 г. 8:47:39(UTC)
astarukhin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 5 раз
При использовании метода CryptAcquireContext ему необходимо указывать тип провайдера. Возможно ли каким-нибудь образом узнать этот тип программно? Ведь для подписи через инструменты КриптоПро не нужно явное указание провайдера.
Offline Русев Андрей  
#2 Оставлено : 20 августа 2024 г. 16:12:37(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,389

Сказал(а) «Спасибо»: 30 раз
Поблагодарили: 547 раз в 382 постах
Вероятно, вы спрашиваете о том, что вам не нужно (см. проблема XY). Какую вы пытаетесь решить задачу?
Официальная техподдержка. Официальная база знаний.
Offline astarukhin  
#3 Оставлено : 21 августа 2024 г. 6:43:45(UTC)
astarukhin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 5 раз
В проекте на java при работе с КриптоПро csp для доступа к контейнеру необходимы только алиас и пароль. Соответственно, в проекте на C++ требования изначально такие же. Но я не могу найти способ получения дескриптора провайдера, не зная типа провайдера
Offline Андрей *  
#4 Оставлено : 21 августа 2024 г. 10:25:26(UTC)
Андрей *

Статус: Сотрудник

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

Сказал «Спасибо»: 538 раз
Поблагодарили: 2181 раз в 1705 постах
Здравствуйте.

А доступ к контейнеру зачем потребовался в таком виде?

Через контекст личного сертификата не тот путь?

CertGetCertificateContextProperty ( сертификат, CERT_KEY_PROV_INFO_PROP_ID .. )
выделить память для KeyInfo
CertGetCertificateContextProperty ( сертификат, CERT_KEY_PROV_INFO_PROP_ID .. KeyInfo )

и получаем необходимое:
Цитата:
KeyInfo.dwProvType
KeyInfo.pwszProvName
KeyInfo.pwszContainerName
Техническую поддержку оказываем тут
Наша база знаний
Offline astarukhin  
#5 Оставлено : 21 августа 2024 г. 13:23:38(UTC)
astarukhin

Статус: Активный участник

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

Сказал(а) «Спасибо»: 5 раз
Цитата:
А доступ к контейнеру зачем потребовался в таком виде?

Потому что сертификата нет при запросе - есть только алиас
Offline Андрей *  
#6 Оставлено : 21 августа 2024 г. 13:32:23(UTC)
Андрей *

Статус: Сотрудник

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

Сказал «Спасибо»: 538 раз
Поблагодарили: 2181 раз в 1705 постах
Автор: astarukhin Перейти к цитате
Цитата:
А доступ к контейнеру зачем потребовался в таком виде?

Потому что сертификата нет при запросе - есть только алиас


при запросе... сертификата?

Задача какая?
По имени выбранного СКЗИ подставить тип?
В чем сложность возникла? 80 или 81? Или другие csp еще будут?
Техническую поддержку оказываем тут
Наша база знаний
Offline Санчир Момолдаев  
#7 Оставлено : 21 августа 2024 г. 13:59:48(UTC)
Санчир Момолдаев

Статус: Сотрудник

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

Сказал(а) «Спасибо»: 93 раз
Поблагодарили: 249 раз в 234 постах
https://cpdn.cryptopro.r...37718acf2094bbd89df.html
CRYPT_FILTER_PROVIDER_TYPE

мне кажется вам это подойдет.
а так указывайте 80 и не мучайтесь
Техническую поддержку оказываем тут
Наша база знаний
Offline Русев Андрей  
#8 Оставлено : 21 августа 2024 г. 16:50:32(UTC)
Русев Андрей

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,389

Сказал(а) «Спасибо»: 30 раз
Поблагодарили: 547 раз в 382 постах
Автор: astarukhin Перейти к цитате
В проекте на java при работе с КриптоПро csp для доступа к контейнеру необходимы только алиас и пароль. Соответственно, в проекте на C++ требования изначально такие же.
Java API сильно отличается от CryptoAPI, поэтому повторение решений для одного API в другом - это напрасная трата сил. "Только alias и пароль" - это неудачная часть Java API, поэтому повторять именно её не стоит. И на самом деле параметров больше: вы в коде зашиваете ещё KeyStore. Так и в CryptoAPI, кроме типа провайдера, вообще говоря важно его имя (это сразу почувствуют те, кто работают, например, с КриптоПро HSM). И чтобы не перегружать сложной логикой прикладное ПО, имя контейнера, тип провайдера и имя провайдера стали атрибутом сертификата - ссылкой на закрытый ключ. Формирование корректной ссылки - это сложная задача, которая решается либо средствами выпуска сертификата, либо нашим ПО - Инструментами КриптоПро (cptools) или certmgr. А сам приклад по сертификату делает CryptAcquireCertificatePrivateKey, либо сразу создаёт или проверяет CMS-сообщения. Если делать спустя рукава, то можно использовать CryptAcquireContext(PROV_GOST_2012_256).

Официальная техподдержка. Официальная база знаний.
thanks 1 пользователь поблагодарил Русев Андрей за этот пост.
astarukhin оставлено 22.08.2024(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.