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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline НаталияНаталия  
#1 Оставлено : 20 июля 2020 г. 19:03:49(UTC)
НаталияНаталия

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

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

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

Планировалось подписание в браузере с использованием КриптоПро плагина, однако если выставить алогоритм шифрования, отличный от CADESCOM_HASH_ALGORITHM_SHA1, возникает ошибка:
Failed to create signature. Error: Параметр задан неверно. (0x80070057)

Версия плагина: 2.0.14071 Версия криптопровайдера: 5.0.10874
Криптопровайдер: Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider

Код:
var CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = 101;

function CreateSignature(sHashValue, certSubjectName) {
    return new Promise(function(resolve, reject){
        cadesplugin.async_spawn(function *(args) {
            try {
	        // Создаем объект CAdESCOM.HashedData
		var oHashedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.HashedData");

		// Инициализируем объект заранее вычисленным хэш-значением
		// Алгоритм хэширования нужно указать до того, как будет передано хэш-значение
		yield oHashedData.propset_Algorithm(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256);
		yield oHashedData.SetHashValue(sHashValue);
			
		// Создаем объект CAdESCOM.RawSignature
		var oRawSignature = yield cadesplugin.CreateObjectAsync("CAdESCOM.RawSignature");

		var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
                yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

                var CertificatesObj = yield oStore.Certificates;
                var oCertificates = yield CertificatesObj.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName);

                var Count = yield oCertificates.Count;
                if (Count == 0) {
                    throw("Certificate not found: " + args[0]);
                }
                var oCertificate = yield oCertificates.Item(1);
		// Создаем объект CAdESCOM.CPSigner
		var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
		yield oSigner.propset_Certificate(oCertificate);

		// Создаем объект CAdESCOM.CadesSignedData
		var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");

                var sSignedMessage = yield oSignedData.SignHash(oHashedData, oSigner, CADESCOM_CADES_BES);
						
		yield oStore.Close();

                args[2](sSignedMessage);
            } catch (e) {
                args[3]("Failed to create signature. Error: " + cadesplugin.getLastError(e));
            }
        }, sHashValue, certSubjectName, resolve, reject);
     });
		
}


Может кто-то подсказать как подписать хэш?
Заранее спасибо

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

Offline Андрей *  
#2 Оставлено : 20 июля 2020 г. 19:11:06(UTC)
Андрей *

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

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

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

В сертификате - открый ключ по какому алгоритму?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 20 июля 2020 г. 19:12:14(UTC)
Андрей *

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

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

Сказал «Спасибо»: 547 раз
Поблагодарили: 2196 раз в 1714 постах
Цитата:
.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName)


А если у меня 2 сертификата и попадётся первый с rsa...?
Техническую поддержку оказываем тут
Наша база знаний
Offline НаталияНаталия  
#4 Оставлено : 20 июля 2020 г. 19:25:30(UTC)
НаталияНаталия

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

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

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей * Перейти к цитате
Цитата:
.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName)


А если у меня 2 сертификата и попадётся первый с rsa...?


Это тестовый пример, сертификат точно один

Отредактировано пользователем 20 июля 2020 г. 19:26:12(UTC)  | Причина: Не указана

Offline Андрей *  
#5 Оставлено : 20 июля 2020 г. 19:27:07(UTC)
Андрей *

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

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

Сказал «Спасибо»: 547 раз
Поблагодарили: 2196 раз в 1714 постах
Автор: НаталияНаталия Перейти к цитате
Автор: Андрей * Перейти к цитате
Цитата:
.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName)


А если у меня 2 сертификата и попадётся первый с rsa...?


Это тестовый пример, сертификат точно один.

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

Разве это как-то влияет на то, каким образом у меня вычислен хэш?



Конечно,
ГОСТ хеш => ГОСТ подпись.

Подпись вычисляется с учётом хеша - его значения и алгоритма.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#6 Оставлено : 20 июля 2020 г. 19:34:00(UTC)
Андрей *

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

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

Сказал «Спасибо»: 547 раз
Поблагодарили: 2196 раз в 1714 постах
Так что с сертификатом\алгоритмом?

Делайте правильно, пример будет работать.
Техническую поддержку оказываем тут
Наша база знаний
Offline НаталияНаталия  
#7 Оставлено : 20 июля 2020 г. 19:35:38(UTC)
НаталияНаталия

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

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

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей * Перейти к цитате


Конечно,
ГОСТ хеш => ГОСТ подпись.

Подпись вычисляется с учётом хеша - его значения и алгоритма.


Спасибо!
Но у меня все равно недопонимание, если я указываю:
Код:
yield oHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_MD5);


и подписываю ключом с RSA, все равно возникает та же ошибка.
Offline Андрей *  
#8 Оставлено : 20 июля 2020 г. 19:45:16(UTC)
Андрей *

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

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

Сказал «Спасибо»: 547 раз
Поблагодарили: 2196 раз в 1714 постах
На тестовой странице - работает подписание этим сертификатом?
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#9 Оставлено : 20 июля 2020 г. 19:47:03(UTC)
Андрей *

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

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

Сказал «Спасибо»: 547 раз
Поблагодарили: 2196 раз в 1714 постах
Автор: НаталияНаталия Перейти к цитате
Автор: Андрей * Перейти к цитате


Конечно,
ГОСТ хеш => ГОСТ подпись.

Подпись вычисляется с учётом хеша - его значения и алгоритма.


Спасибо!
Но у меня все равно недопонимание, если я указываю:
Код:
yield oHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_MD5);


и подписываю ключом с RSA, все равно возникает та же ошибка.



RSA сертификат и алгоритм хеширования MD5... ?

Почему бы для начала не получить тестовый сертификат по ГОСТ 2012?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
НаталияНаталия оставлено 20.07.2020(UTC)
Offline Андрей *  
#10 Оставлено : 20 июля 2020 г. 19:54:58(UTC)
Андрей *

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

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

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