Меню

80070057 код ошибки криптопро

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
КриптоПро CSP 5.0
 » 
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша


Offline

НаталияНаталия

 


#1
Оставлено
:

20 июля 2020 г. 19:03:49(UTC)

НаталияНаталия

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

Группы: Участники

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

Сказал(а) «Спасибо»: 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)
Сообщений: 11,736
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Здравствуйте.

В сертификате — открый ключ по какому алгоритму?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

Андрей *

 


#3
Оставлено
:

20 июля 2020 г. 19:12:14(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,736
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Цитата:

.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName)

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

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

НаталияНаталия

 


#4
Оставлено
:

20 июля 2020 г. 19:25:30(UTC)

НаталияНаталия

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

Группы: Участники

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

Сказал(а) «Спасибо»: 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)
Сообщений: 11,736
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Автор: НаталияНаталия Перейти к цитате

Автор: Андрей * Перейти к цитате

Цитата:

.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName)

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

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

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

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

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

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

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

Андрей *

 


#6
Оставлено
:

20 июля 2020 г. 19:34:00(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,736
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Так что с сертификатомалгоритмом?

Делайте правильно, пример будет работать.

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

НаталияНаталия

 


#7
Оставлено
:

20 июля 2020 г. 19:35:38(UTC)

НаталияНаталия

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

Группы: Участники

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

Сказал(а) «Спасибо»: 4 раз

Автор: Андрей * Перейти к цитате

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

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

Спасибо!
Но у меня все равно недопонимание, если я указываю:

Код:

yield oHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_MD5);

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


Вверх


Offline

Андрей *

 


#8
Оставлено
:

20 июля 2020 г. 19:45:16(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,736
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

На тестовой странице — работает подписание этим сертификатом?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

Андрей *

 


#9
Оставлено
:

20 июля 2020 г. 19:47:03(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,736
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Автор: НаталияНаталия Перейти к цитате

Автор: Андрей * Перейти к цитате

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

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

Спасибо!
Но у меня все равно недопонимание, если я указываю:

Код:

yield oHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_MD5);

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

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

Почему бы для начала не получить тестовый сертификат по ГОСТ 2012?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

thanks 1 пользователь поблагодарил Андрей * за этот пост.

НаталияНаталия

оставлено 20.07.2020(UTC)


Offline

Андрей *

 


#10
Оставлено
:

20 июля 2020 г. 19:54:58(UTC)

Андрей *

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

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,736
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

+ sHashValue — в каком виде?

Подпись файла с использованием FileAPI и чтением файла по частям
смотрели?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

Пользователи, просматривающие эту тему

Guest

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
КриптоПро CSP 5.0
 » 
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

/Носитель ключевого контейнера не поддерживается данной лицензией (0x80070057)

Носитель ключевого контейнера не поддерживается данной лицензией (0x80070057)

Текст ошибки

Носитель ключевого контейнера не поддерживается данной лицензией (0x80070057)

Как выглядит ошибка:

2022-05-06_15-22-02.png

Решение

В сборках, выпущенных ранее, для того чтобы КриптоАРМ мог извлечь сертификат из облачного хранилища, ему нужна была дополнительная лицензия на модуль поддержки КриптоПро DSS. Ошибка “Носитель ключевого контейнера не поддерживается данной лицензией (0x80070057)” возникает в том случае, если лицензии нет. 

В КриптоАРМе сборки 5.4.4.4 отдельная лицензия на модуль КриптоПро DSS не нужна, в связи с этим она была снята с продаж. Поддержка модуля КриптоПро DSS включена в состав лицензии на версию КриптоАРМ Стандарт Плюс 5.

Добрый день, @vgoma.
Спасибо за разработанную библиотеку.

Есть проблемы с подписанием XML отделенной подписью.

Окружение:
OS Astra Linux (Smolensk) 1.6 64bit
Browser Firefox 72.0.1 (64bit)
cadesVersion 2.0.13642
cspVersion 5.0.11998

Воспроизведение:

  1. Получаем ArrayBuffer из XML файла
  2. Передаем ArrayBuffer в функцию createHash
  3. Полученный хеш и отпечаток ЭЦП передаем в функцию createDetachedSignature

Результат:
Подпись не создана, в консоли браузера ошибка:
«The parameter is incorrect (0x80070057)»

Ожидаемый результат:
Получаем подпись в формате PKCS7

Дополнительная информация:
Пробовали подписывать на MacOS 10.15.4 на cadesVersion 2.0.13642 (сертифицированная), получаем ошибку.
Пробовали подписывать на MacOS 10.15.4 на cadesVersion 2.0.14071, ошибки нет, подпись работает.
Версии CSP на MacOS и на Astra Linux идентичные.

Возможно Вы сталкивались с похожими проблемами, что можно предпринять в данном случае ? Не уверен что мы можем использовать версию 2.0.14071 т.к. она не сертифицирована.

Готов предоставить любую дополнительную информацию которая может потребоваться для разрешения данной проблемы.

Заранее благодарен.
С Уважением.

UPD:
Пробовали на версии CSP «5.0.11944», тоже получаем ошибку.

Здравия желаю, коллеги!
На чистой системе Windows 10 установили Vipnet Client версии 4.5.2.58444 и КРиптоПро 4.0.9963
Вначале всё было хорошо, сотрудник успешно подписывал Электронной подписью документы в своих бухгалтерских программах.
Через сутки при процедуре подписывания документов стала появляться ошибка типа «80070057: CryptMsgOpenToEncode»
Если удалить и переустановить криптоПро, то подписывание документов опять проходит успешно, но уже через несколько часов опять возникает вышеназванная ошибка. Не совсем понял, либо это ломается после перезагрузки, либо просто через несколько часов, может быть ставится какое-то обновление винды?
И вот уже пятый день подряд, переустановка КриптоПро помогает, но ненадолго. Каждый день переустанавливаем КриптоПро.
Пробовал также ставить криптоПро версии 5 — то же самое!


Вопрос в том, может ли данная проблема быть связана с тем, что по факту в системе свтоят 2 криптопровайдера (VipNet CSP и КриптоПРо CSP) и ВИнда 10-ка этого не приемлет?

Я понимаю, что, с одной стороны, это больше похоже на проблемы КриптоПро, а не Випнета, но всё же, может быть доблестные разработчики VipNet решили данную проблему в более новых версиях?

У винды есть своя ошибка 0х80070057 — не знаю, здесь совпадение или прямая связь между этими ошибками.
Кто стакивался, как лечил?

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • 8007003b непредвиденная сетевая ошибка
  • 80070035 ошибка windows 10 сетевой доступ к сетевой