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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline igor_st  
#1 Оставлено : 17 июня 2025 г. 15:28:53(UTC)
igor_st

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2020(UTC)
Сообщений: 9

Здравствуйте! С помощью cades плагина получаем список сертификатов из хранилища "My" и "AddressBook"(Other people). Согласно документации
https://docs.cryptopro.r...b5%d0%ba%d1%82-publickey можно получить открытый ключ выбранного сертификата, используя свойство EncodedKey метода PublicKey. Это отлично работает для Algorithm.Name, Algorithm.Value. EncodedKey почему-то нет. Подскажите пожалуйста, что не так делаем? Или что-то недокручено?

Пример кода:

yield oStore.Open(cadesplugin.CAPICOM_CURRENT_USER_STORE, "AddressBook", cadesplugin.CAPICOM_STORE_OPEN_READ_WRITE);

var oCertificates = yield oStore.Certificates;
var count = yield oCertificates.Count;
var select = document.querySelector('#selectNumber');
for (i = 1; i <= count; i++) {

var cert = yield oCertificates.Item(i);

let SubjectName = yield cert.SubjectName;
let Issuer = yield cert.IssuerName;
let certPublicKey = yield cert.PublicKey();
let certAlgorithm = yield certPublicKey.Algorithm;
let PubKeyValueL = yield certPublicKey.Length;
let PubKeyValueOK = yield certPublicKey.EncodedKey;

let AlgorithmValue = yield certAlgorithm.Value;
let AlgorithmName = yield certAlgorithm.Name;
let certPubKey = yield PubKeyValueOK.Value;

var element = document.createElement('option');
element.textContent = SubjectName;
element.value = SubjectName;
select.appendChild(element);

console.log(SubjectName);
console.log(AlgorithmValue);
console.log(AlgorithmName);
console.log(certPubKey);

Отредактировано пользователем 17 июня 2025 г. 15:36:17(UTC)  | Причина: Не указана

Offline igor_st  
#2 Оставлено : 19 июня 2025 г. 10:46:23(UTC)
igor_st

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2020(UTC)
Сообщений: 9

Добрый день! Большая просьба прокомментировать вопрос, если вопрос задан не туда - прошу направить в нужную ветку.
Offline Ситдиков Денис  
#3 Оставлено : 19 июня 2025 г. 11:24:34(UTC)
Ситдиков Денис

Статус: Администратор

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

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 50 раз в 36 постах
Добрый день!
В асинхронной версии плагина свойство EncodedData.Value реализовано как метод (документация).

В Вашем коде нужно добавить скобки после вызова PubKeyValueOK.Value:
Код:
let certPubKey = yield PubKeyValueOK.Value();


Offline igor_st  
#4 Оставлено : 25 июня 2025 г. 9:42:52(UTC)
igor_st

Статус: Новичок

Группы: Участники
Зарегистрирован: 09.11.2020(UTC)
Сообщений: 9

Заработало, спасибо! Applause
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.