Меню

Ошибка 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
 » 
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша

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

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

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

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

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

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

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

Добрый день, @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», тоже получаем ошибку.

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

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

Текст ошибки

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

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

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

Решение

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

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

Что такое ошибка 0x80070057 и как её исправить

Error 0x80070057 — распространенная проблема, с которой сталкиваются многие пользователи Windows при очередном обновлении операционной системы. Неисправность мешает установке и вызвана несколькими причинами: например, повреждены компоненты обновления или системные файлы. Далее мы расскажем, как исправить ошибку 0x80070057 на Windows 10 и избежать ее появления в будущем.

Инструкции по исправлению ошибки 0x80070057

Код ошибки Windows 0x80070057 в первую очередь связан с проблемами хранения. Обычно неполадка возникает, когда вы пытаетесь обновить ОС или установить новое программное обеспечение. Это также может произойти при обновлении Виндовс со старой версии до новой. Существует несколько способов исправить ошибку:

Устраните неполадки с помощью встроенного средства

Самый распространенный и эффективный метод — использование средства устранения неполадок Центра обновления. Чтобы выполнить необходимую диагностику, следуйте инструкции:

1. Нажмите одновременно клавиши Win и I для открытия меню «Параметры». Выберите категорию «Обновление и безопасность», а затем перейдите на вкладку «Устранение неполадок».

как исправить ошибку 0x80070057 на Windows 10

Она расположена в левом блоке

2. Нажмите на «Центр обновления Windows».

Центр обновления Windows

Начните диагностику

3. По завершении процесса перезагрузите компьютер, а затем проверьте наличие неполадки.

Изменение параметров десятичного символа

Когда вы получаете сообщение с текстом: «Произошла внутренняя ошибка: параметр задан неверно: 0x80070057», у вас есть возможность настроить параметры десятичного символа. Для этого выполните несколько простых действий:

1. С помощью меню «Пуск» откройте «Параметры». В поиске задайте «Панель управления» и откройте предложенный вариант.

меню «Пуск»

Он отобразится в результатах поиска

2. Перейдите в раздел «Часы и регион» — «Изменение форматов даты, времени и чисел».

новое окно

Возникнет новое окно

3. Нажмите «Дополнительные параметры». В блоке «Разделитель целой и дробной части» установите точку.

Дополнительные параметры

Примените изменения

4. Перезагрузите ПК, чтобы проверить, исчезла ли ошибка.

Сканирование компьютера на наличие вирусов

Иногда вирус или вредоносный софт также могут вызывать ошибки с кодом 0x80070057 при установке операционной системы Windows. Запустите антивирусную программу, чтобы начать полное сканирование устройства. После завершения обработки удалите обнаруженные вирусы или поместите их в карантин.

антивирусная программа

Пример антивирусной программы

Переименуйте папку распространения ПО

Для исправления проблемы вы можете переименовать папку распространения ПО. Следуйте простой инструкции:

1. Зажмите клавиши Win + R. Затем введите «%systemroot%» в диалоговом окне «Выполнить».

Нажмите Enter на клавиатуре

Нажмите Enter на клавиатуре или «ОК» на экране

2. Найдите папку под именем «Software Distribution». Щелкните по ней правой кнопкой мыши и в выпадающем списке выберите опцию «Переименовать». Смените исходное название на «Old».

Software Distribution

При запросе разрешения администратора нажмите кнопку «Да»

3. Откройте «Пуск» и найдите строку «Средства администрирования». Выберите «Службы» и откройте их.

Средства администрирования

Расположение службы в списке ПО

4. Найдите «Центр обновления Windows» и убедитесь, что служба работает. Для этого правой кнопки откройте «Свойства».

Центр обновления Windows

В разделе «Состояние» должен быть статус: «Выполняется»

5. Перезапустите систему, чтобы сохранить изменения.

Причины возникновения ошибки

Неисправность может показывать различные сообщения: об остановке служб, неверно заданном параметре или проблемах при установке ПО. Также может возникнуть сообщение: «Не удалось создать подпись: ошибка 0x80070057». Неполадка имеет широкий спектр причин, например, она может быть связана с проблемами программирования страницы, а также с несовместимостью между браузером и веб-страницей.

Также частыми причинами появления кода 0x80070057 являются:

  • Проблемы с устройством хранения: внешние накопители или жесткий диск. У вас может не хватать свободной памяти или отсутствовать драйвера для работы внешнего устройства.
  • Использование неправильной файловой системы.
  • Повреждение раздела жесткого диска. Такое может произойти при форматировании данных.
  • Раздел System Reserved поврежден при попытке установить систему Windows.
  • Поврежденные записи реестра.

Чтобы предотвратить возникновение неисправности в будущем, вам следует очищать память устройства, проводить сканирование реестра и оптимизировать систему. Вы можете сделать это с помощью простого программного обеспечения для улучшения производительности ПК. Приложение «Ускоритель Компьютера» позволит вовремя обнаружить ошибки в реестре, удалить лишние файлы, а также следить за загруженностью системы.

Ускоритель отличается удобным русскоязычным интерфейсом и предлагает следующие функции:

  • Быстрая очистка жесткого диска: удаление лишних и больших файлов, кэша, дубликатов.
  • Поиск и исправление ошибок в работе реестра: удаление неверных расширений и отсутствующих приложений.
  • Настройка автозагрузки приложений при запуске оборудования.
  • Регулярная оптимизация устройства и системный мониторинг.

Читайте так же:

Как очистить оперативную память компьютера
Что делать, если компьютер тормозит и зависает?
Как найти дубликаты файлов

Hi,

I have purchased a certificate for code signing and managed to follow the process for signing the EXE and MSI files.  Most of them work fine — but there are several that fail at the cross-signing stage.

Thie is the command line that I am using.  I am using this after successfully signing the file with our own certificate.  The paths must be correct, otherwise it would not work on some of the EXE files.

signtool.exe sign /v /ac «C:CERTIFICATEMSCV-VSClass3.cer» /s MY /n «Sedao Ltd» /t
http://timestamp.verisign.com/scripts/timstamp.dll «filename.exe»

The error message I am getting is:

——
Done Adding Additional Store
SignTool Error: SignedCode::Sign returned error: 0x80070057
        The parameter is incorrect.
SignTool Error: An error occurred while attempting to sign:
Filename.exe

Number of files successfully Signed: 0
Number of warnings: 0
Number of errors: 1
——

I have tried to get support from the certificate company but they won’t comment — saying it’s not a tool they can provide support on.

Do you have any suggestions?

Thanks.

Hi,

I have purchased a certificate for code signing and managed to follow the process for signing the EXE and MSI files.  Most of them work fine — but there are several that fail at the cross-signing stage.

Thie is the command line that I am using.  I am using this after successfully signing the file with our own certificate.  The paths must be correct, otherwise it would not work on some of the EXE files.

signtool.exe sign /v /ac «C:CERTIFICATEMSCV-VSClass3.cer» /s MY /n «Sedao Ltd» /t
http://timestamp.verisign.com/scripts/timstamp.dll «filename.exe»

The error message I am getting is:

——
Done Adding Additional Store
SignTool Error: SignedCode::Sign returned error: 0x80070057
        The parameter is incorrect.
SignTool Error: An error occurred while attempting to sign:
Filename.exe

Number of files successfully Signed: 0
Number of warnings: 0
Number of errors: 1
——

I have tried to get support from the certificate company but they won’t comment — saying it’s not a tool they can provide support on.

Do you have any suggestions?

Thanks.

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

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

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

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка 80072efe windows 7 при установке обновлений как исправить
  • Ошибка 80070057 при копировании файла