Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша
Статус: Участник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,276 Сказал «Спасибо»: 547 раз Поблагодарили: 2196 раз в 1714 постах
|
Здравствуйте.
В сертификате - открый ключ по какому алгоритму? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,276 Сказал «Спасибо»: 547 раз Поблагодарили: 2196 раз в 1714 постах
|
Цитата:.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName) А если у меня 2 сертификата и попадётся первый с rsa...? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.07.2020(UTC) Сообщений: 19 Откуда: Москва Сказал(а) «Спасибо»: 4 раз
|
Автор: Андрей * Цитата:.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName) А если у меня 2 сертификата и попадётся первый с rsa...? Это тестовый пример, сертификат точно один Отредактировано пользователем 20 июля 2020 г. 19:26:12(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,276 Сказал «Спасибо»: 547 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: НаталияНаталия Автор: Андрей * Цитата:.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName) А если у меня 2 сертификата и попадётся первый с rsa...? Это тестовый пример, сертификат точно один. Алгоритм ключа: RSA Разве это как-то влияет на то, каким образом у меня вычислен хэш? Конечно, ГОСТ хеш => ГОСТ подпись. Подпись вычисляется с учётом хеша - его значения и алгоритма. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,276 Сказал «Спасибо»: 547 раз Поблагодарили: 2196 раз в 1714 постах
|
Так что с сертификатом\алгоритмом?
Делайте правильно, пример будет работать. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.07.2020(UTC) Сообщений: 19 Откуда: Москва Сказал(а) «Спасибо»: 4 раз
|
Автор: Андрей *
Конечно, ГОСТ хеш => ГОСТ подпись.
Подпись вычисляется с учётом хеша - его значения и алгоритма.
Спасибо! Но у меня все равно недопонимание, если я указываю: Код:yield oHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_MD5);
и подписываю ключом с RSA, все равно возникает та же ошибка.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,276 Сказал «Спасибо»: 547 раз Поблагодарили: 2196 раз в 1714 постах
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,276 Сказал «Спасибо»: 547 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: НаталияНаталия Автор: Андрей *
Конечно, ГОСТ хеш => ГОСТ подпись.
Подпись вычисляется с учётом хеша - его значения и алгоритма.
Спасибо! Но у меня все равно недопонимание, если я указываю: Код:yield oHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_MD5);
и подписываю ключом с RSA, все равно возникает та же ошибка. RSA сертификат и алгоритм хеширования MD5... ? Почему бы для начала не получить тестовый сертификат по ГОСТ 2012? |
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,276 Сказал «Спасибо»: 547 раз Поблагодарили: 2196 раз в 1714 постах
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close