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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline alexf25  
#1 Оставлено : 18 июля 2018 г. 19:39:43(UTC)
alexf25

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

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

Добрый день, коллеги!

Создаю cadesplugin.CreateObject('CAPICOM.Store'), вызываю Open и достаю из коллекции нужный сертификат (oStore.Certificates.Item(i) ), однако у полученных таким способом сертификатов не хватает некоторых свойств и методов, описанных в MSDN: https://msdn.microsoft.c...p/aa376092(v=vs.85).aspx

Мне нужно прочитать у сертификата SignatureAlgorithm, и оно по-видимому должно лежать в ExtendedProperties, который определён на ICertificate2. Но как его достать в Java Script - непонятно.

Код выполняется в Хроме с установленным плагином Crypto PRO под Win10.

С уважением,
Алексей

Отредактировано пользователем 18 июля 2018 г. 19:41:59(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#2 Оставлено : 18 июля 2018 г. 20:36:13(UTC)
Андрей *

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

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

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

Есть примеры на демо-страницах, смотрели Code.js?

Алгоритм ключа:
Код:

 var certObj = new CertificateObj(certificate);

certObj.GetPubKeyAlgorithm()
Техническую поддержку оказываем тут
Наша база знаний
Offline alexf25  
#3 Оставлено : 18 июля 2018 г. 22:32:41(UTC)
alexf25

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

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

Да, спасибо, Андрей!

Код работает:
Код:
const pk = yield cert.PublicKey();
const algo = yield pk.Algorithm;
const algoDetails = {name: yield algo.FriendlyName, code: yield algo.Value};
console.log(algoDetails);


{code: "1.2.643.7.1.1.1.1", name: "GOST R 34.10-2012 256 bit"}

Однако, возвращает другой атрибут: алгоритм для ключа, который соответствует:
Цитата:
szOID_CP_GOST_R3410_12_256 "1.2.643.7.1.1.1.1" Алгоритм ГОСТ Р 34.10-2012 для ключей длины 256 бит, используемый при экспорте/импорте ключей


А надо: SignatureAlgorithm.Value и SignatureAlgorithm.FriendlyName, которые можно получить через PowerShell:
Цитата:
Get-ChildItem -Recurse -DNSName "My Certificate" | select @{n="SignatureAlgorithm";e={$_.SignatureAlgorithm.Value, $_.SignatureAlgorithm.FriendlyName}}


И соответствует:
Цитата:
szOID_CP_GOST_R3411_12_256 "1.2.643.7.1.1.2.2" Функция хэширования ГОСТ Р 34.11-2012, длина выхода 256 бит


Групповые идентификаторы криптографических параметров алгоритмов

Можно конечно вручную составить таблицу перекодировки value для ключей в value для хешэй: 1.2.643.7.1.1.1.1 --> 1.2.643.7.1.1.2.2.

Отредактировано пользователем 18 июля 2018 г. 22:39:10(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#4 Оставлено : 18 июля 2018 г. 23:27:01(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2045 раз в 1586 постах
Это разные алгоритмы,
подписи и хеширования.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.