Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Узнать тип провайдера по алиасу контейнера для подстановки в CryptAcquireContext
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.12.2021(UTC) Сообщений: 36 Сказал(а) «Спасибо»: 5 раз
|
При использовании метода CryptAcquireContext ему необходимо указывать тип провайдера. Возможно ли каким-нибудь образом узнать этот тип программно? Ведь для подписи через инструменты КриптоПро не нужно явное указание провайдера.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,425
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 570 раз в 397 постах
|
Вероятно, вы спрашиваете о том, что вам не нужно (см. проблема XY). Какую вы пытаетесь решить задачу? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.12.2021(UTC) Сообщений: 36 Сказал(а) «Спасибо»: 5 раз
|
В проекте на java при работе с КриптоПро csp для доступа к контейнеру необходимы только алиас и пароль. Соответственно, в проекте на C++ требования изначально такие же. Но я не могу найти способ получения дескриптора провайдера, не зная типа провайдера
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
Здравствуйте. А доступ к контейнеру зачем потребовался в таком виде? Через контекст личного сертификата не тот путь? CertGetCertificateContextProperty ( сертификат, CERT_KEY_PROV_INFO_PROP_ID .. ) выделить память для KeyInfo CertGetCertificateContextProperty ( сертификат, CERT_KEY_PROV_INFO_PROP_ID .. KeyInfo ) и получаем необходимое: Цитата:KeyInfo.dwProvType KeyInfo.pwszProvName KeyInfo.pwszContainerName |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.12.2021(UTC) Сообщений: 36 Сказал(а) «Спасибо»: 5 раз
|
Цитата:А доступ к контейнеру зачем потребовался в таком виде? Потому что сертификата нет при запросе - есть только алиас
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,322 Сказал «Спасибо»: 549 раз Поблагодарили: 2208 раз в 1723 постах
|
Автор: astarukhin Цитата:А доступ к контейнеру зачем потребовался в таком виде? Потому что сертификата нет при запросе - есть только алиас при запросе... сертификата? Задача какая? По имени выбранного СКЗИ подставить тип? В чем сложность возникла? 80 или 81? Или другие csp еще будут? |
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,425
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 570 раз в 397 постах
|
Автор: astarukhin В проекте на java при работе с КриптоПро csp для доступа к контейнеру необходимы только алиас и пароль. Соответственно, в проекте на C++ требования изначально такие же. Java API сильно отличается от CryptoAPI, поэтому повторение решений для одного API в другом - это напрасная трата сил. "Только alias и пароль" - это неудачная часть Java API, поэтому повторять именно её не стоит. И на самом деле параметров больше: вы в коде зашиваете ещё KeyStore. Так и в CryptoAPI, кроме типа провайдера, вообще говоря важно его имя (это сразу почувствуют те, кто работают, например, с КриптоПро HSM). И чтобы не перегружать сложной логикой прикладное ПО, имя контейнера, тип провайдера и имя провайдера стали атрибутом сертификата - ссылкой на закрытый ключ. Формирование корректной ссылки - это сложная задача, которая решается либо средствами выпуска сертификата, либо нашим ПО - Инструментами КриптоПро (cptools) или certmgr. А сам приклад по сертификату делает CryptAcquireCertificatePrivateKey, либо сразу создаёт или проверяет CMS-сообщения. Если делать спустя рукава, то можно использовать CryptAcquireContext(PROV_GOST_2012_256). |
|
1 пользователь поблагодарил Русев Андрей за этот пост.
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Узнать тип провайдера по алиасу контейнера для подстановки в CryptAcquireContext
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close