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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Andreev_Igor  
#1 Оставлено : 9 февраля 2017 г. 18:27:28(UTC)
Andreev_Igor

Статус: Участник

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

Сказал «Спасибо»: 2 раз
Добрый день.

Возможно ли, получить закрытый ключ из хранилища, если сертификат не установлен? Интересует с точки зрения получения его свойства UniqueContainerName.

Исходный целевой вопрос был: как при генерации запроса на получение сертификата получить UniqueContainerName, если используется CryptoPro Browser plug-in?

Генерирую запрос при помощи:
Цитата:

var objRequest = cadesplugin.CreateObject("X509Enrollment.CX509CertificateRequestPkcs10");
...
var objEnroll = cadesplugin.CreateObject("X509Enrollment.CX509Enrollment");
objEnroll.InitializeFromRequest(objRequest);
var pkcs10 = objEnroll.CreateRequest(0x1);


После этого необходимо получить UniqueContainerName. Как это можно сделать?

Отредактировано пользователем 13 февраля 2017 г. 12:03:26(UTC)  | Причина: Не указана

Offline Andreev_Igor  
#2 Оставлено : 13 февраля 2017 г. 12:04:44(UTC)
Andreev_Igor

Статус: Участник

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

Сказал «Спасибо»: 2 раз
Если сертификат в хранилище есть, то все просто:
Цитата:
var oStore = cadesplugin.CreateObject("CAPICOM.Store");
oStore.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE, cadesplugin.CAPICOM_MY_STORE, cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
var all_certs = oStore.Certificates;
var oCertificates = all_certs.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, "отпечаток");
var uniqueContainerName = oCertificates.Item(1).PrivateKey.UniqueContainerName;
oStore.Close();

Но как быть, когда сертификата еще нет?
Offline cross  
#3 Оставлено : 13 февраля 2017 г. 18:54:56(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Простого перечисления закрытых ключей в API плагине нет. Можно найти контейнер по сертификатку (он не обязательно должен быть в хранилище.)
CPCertificate.FindPrivateKey()
установит ссылку на закрытый ключ у обьекта сертификата - дальше можно уже спросить свойство с именем.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
thanks 1 пользователь поблагодарил Анатолий Беляев за этот пост.
Andreev_Igor оставлено 16.02.2017(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.