Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша
|
НаталияНаталия |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 4 раз |
Добрый день. Планировалось подписание в браузере с использованием КриптоПро плагина, однако если выставить алогоритм шифрования, отличный от CADESCOM_HASH_ALGORITHM_SHA1, возникает ошибка: Версия плагина: 2.0.14071 Версия криптопровайдера: 5.0.10874 Код:
Может кто-то подсказать как подписать хэш? Отредактировано пользователем 20 июля 2020 г. 19:04:19(UTC) |
![]() |
|
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Здравствуйте. В сертификате — открый ключ по какому алгоритму? |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Цитата: .Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName) А если у меня 2 сертификата и попадётся первый с rsa…? |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
НаталияНаталия |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 4 раз |
Автор: Андрей * Цитата: .Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName) А если у меня 2 сертификата и попадётся первый с rsa…? Это тестовый пример, сертификат точно один Отредактировано пользователем 20 июля 2020 г. 19:26:12(UTC) |
![]() |
|
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Автор: НаталияНаталия Автор: Андрей * Цитата: .Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName) А если у меня 2 сертификата и попадётся первый с rsa…? Это тестовый пример, сертификат точно один. Алгоритм ключа: RSA Разве это как-то влияет на то, каким образом у меня вычислен хэш? Конечно, Подпись вычисляется с учётом хеша — его значения и алгоритма. |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Так что с сертификатомалгоритмом? Делайте правильно, пример будет работать. |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
НаталияНаталия |
|
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 4 раз |
Автор: Андрей * Конечно, Подпись вычисляется с учётом хеша — его значения и алгоритма. Спасибо! Код:
и подписываю ключом с RSA, все равно возникает та же ошибка. |
![]() |
|
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
На тестовой странице — работает подписание этим сертификатом? |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
Автор: НаталияНаталия Автор: Андрей * Конечно, Подпись вычисляется с учётом хеша — его значения и алгоритма. Спасибо! Код:
и подписываю ключом с RSA, все равно возникает та же ошибка. RSA сертификат и алгоритм хеширования MD5… ? Почему бы для начала не получить тестовый сертификат по ГОСТ 2012? |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
|
|
НаталияНаталия
оставлено 20.07.2020(UTC) |
|
Андрей * |
|
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 451 раз |
+ sHashValue — в каком виде? Подпись файла с использованием FileAPI и чтением файла по частям |
|
Техническую поддержку оказываем тут |
|
![]() |
WWW |
| Пользователи, просматривающие эту тему |
|
Guest |
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Ошибка подписи хэша при использовании плагина и кастомного алгоритма хэша
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
/Носитель ключевого контейнера не поддерживается данной лицензией (0x80070057)
Носитель ключевого контейнера не поддерживается данной лицензией (0x80070057)
Текст ошибки:
Носитель ключевого контейнера не поддерживается данной лицензией (0x80070057)
Как выглядит ошибка:

Решение
В сборках, выпущенных ранее, для того чтобы КриптоАРМ мог извлечь сертификат из облачного хранилища, ему нужна была дополнительная лицензия на модуль поддержки КриптоПро 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
Воспроизведение:
- Получаем ArrayBuffer из XML файла
- Передаем ArrayBuffer в функцию createHash
- Полученный хеш и отпечаток ЭЦП передаем в функцию 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», тоже получаем ошибку.
Содержание
- Способ 1: Встроенное средство устранения неполадок
- Способ 2: Директория обновлений в «Проводнике»
- Способ 3: Групповые политики
- Способ 4: Редактирование реестра
- Способ 5: Сброс настроек
- Вопросы и ответы

Ошибка 0x80070057 в Windows 10 обычно возникает при установке или скачивании обновлений ОС, что является следствием некорректных настроек ОС или сбоев в работе.
Способ 1: Встроенное средство устранения неполадок
Поскольку ошибка связана с обновлениями, то есть смысл проверить работу «Центра обновления Windows 10», используя встроенное средство устранения неполадок, которое автоматически обнаруживает и исправляет некоторые распространенные неполадки.
- Щелкните по кнопке «Пуск» на нижней панели и выберите пункт «Параметры» из меню.
- Перейдите в раздел «Обновление и безопасность».
- На панели слева нажмите на вкладку «Устранение неполадок», а в центральной части окна кликните по ссылке «Дополнительные средства устранения неполадок».
- В списке средств отыщите строку «Центр обновления Windows» и кликните по ней. Появится дополнительная кнопка, запускающее средство.



Останется только дождаться, пока средство просканирует систему на наличие ошибок, связанных с работой «Центра обновления Windows». Если таковые окажутся выявлены, они исправятся автоматически или же отобразится инструкция для пользователя с тем, как он может решить проблему.
Способ 2: Директория обновлений в «Проводнике»
Ошибка 0x80070057 часто является следствием повреждения установочного пакета обновлений. В этом случае может помочь удаление того, что было загружено, после чего потребуется снова их скачать. Для этого нужно сделать следующее:
- Чтобы можно было вносить изменения в директории с обновлениями, рекомендуется на время отключить «Центр обновления Windows». Самый простой способ – это использование специальной команды. Запустите «Командную строку» от имени администратора, отыскав приложение в «Пуске».
- Введите команду
net stop wuauserv, останавливающую службу, и нажмите на клавишу «Enter». - Далее нужно через «Проводник» перейти к директории с обновлениями. Просто вставьте
%SystemRoot%в его адресную строку и нажмите на клавишу «Enter» для перехода в системную папку «Windows». Отыщите папку под названием «SoftwareDistribution». Переименуйте ее таким образом, чтобы не потерять. Например, в конце допишите «1» или добавьте расширение «.old». Каталог со старыми данными может пригодиться, если придется вернуть состояние обновлений. - Возобновите работу «Центра обновления Windows» также через «Командную строку». Пропишите
net start wuauservи подтвердите действие, нажав на клавишу «Enter».


Как только служба будет запущена, перезагрузите систему и попытайтесь заново скачать и установить апдейты. Windows автоматически создаст новую папку с обновлениями под таким же названием – «SoftwareDistribution» – в той же директории.
Если это помогло и ошибка не возвращается, удалите переименованный каталог, чтобы он не занимал место на жестком диске.
Способ 3: Групповые политики
Неправильные настройки групповой политики могут препятствовать обновлению системы, вызывая рассматриваемую ошибку. К счастью, исправить ситуацию можно самостоятельно:

- Запустите средство «Редактор локальной групповой политики»: одновременно зажмите клавиши «Win + R» и впишите
gpedit.msc, затем нажмите на кнопку «ОК». - В разделе «Конфигурация компьютера» раскройте папку «Административные шаблоны», а потом – «Компоненты Windows».
- В подразделе отыщите «Центр обновления Windows» и нажмите на него. В главном окне нужно дважды кликнуть ЛКМ по компоненту «Настройка автоматического обновления».
- В новом окне отметьте пункт «Не задано» и примените, затем подтвердите настройку.


Если настройки групповых политик верные, то следующая попытка обновления Windows 10 произойдет без проблем.
Способ 4: Редактирование реестра
Если ошибка с кодом 0x80070057 происходит, когда вы пытаетесь сделать резервное копирование или установить системное обновление, попробуйте вручную сделать резервное копирование через реестр. Внести корректировки можно самостоятельно, используя редактор.
- Запустите «Редактор реестра», используя меню «Пуск».
- Вставьте в адресную строку такой путь:
HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftSystemCertificatesи нажмите «Enter». В центральной части окна щелкните ПКМ по свободной области, в меню наведите курсор на пункт «Создать», затем выберите «Параметр DWORD (32 бита)». - Задайте имя новому параметру – «CopyFileBufferedSynchronousIo». Перейдите в его свойства, кликнув по нему ЛКМ дважды.
- В строке «Значение» напишите «1» и щелкните по «ОК».



После этого перезагрузите Windows и посмотрите, повлияла ли процедура на обновление.
Способ 5: Сброс настроек
Если ни один рассмотренный метод не устранил проблему, скорее всего, придется восстановить состояние системы до предыдущего или даже исходного, то есть сбросить все настройки с сохранением файлов. Встроенные возможности Windows 10 позволяют сделать это в несколько кликов.
Менее радикальный и болезненный вариант — откат до предыдущего состояния, поскольку проблему нередко вызывает недавно установленное программное обеспечение или внесенные настройки. А если выполните возврат к заводским настройкам, то все приложения и пользовательские параметры будут удалены, но при этом вы получите чистую ОС без ошибок и поврежденных файлов. У нас на сайте есть руководство с подробными инструкциями, как это сделать.
Подробнее: Способы восстановления системы Windows 10
Еще статьи по данной теме:

Каждый пользователь компьютера прекрасно знает, насколько важно своевременно обновлять программное обеспечение. Но при установке апдейта нередко выскакивает код ошибки 0x80070057 в операционной системе Windows 10, и не понятно, как исправить возникшую неполадку. Решить проблему можно, определив причину ее возникновения, а также воспользовавшись основными рекомендациями.
Причина ошибки 0x80070057 в Windows 10
Ошибка с кодом 0x80070057 появляется при обновлении операционной системы. Возникновение подобных неполадок прерывает процесс установки апдейта, из-за чего пользователь не может перейти на более актуальную версию Windows 10.

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

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

Устранение неполадок Центра обновлений
Операционная система Виндовс 10 располагает встроенным инструментом устранения неполадок. Специальная программа сама занимается поиском ошибок и предлагает способы их устранения. Поэтому сначала следует обратиться именно к этому инструменту.
Для запуска проверки нужно:
- Через меню Пуск открыть раздел «Параметры».

- Выбрать пункт «Обновления и безопасность», а затем – «Устранение неполадок».

- Нажать кнопку «Запустить средство устранения неполадок».

После выполнения трех простых шагов запускается тест системы. В течение 1-2 минут Windows определит, из-за чего возникла ошибка при обновлении ОС, и, по возможности, устранит неполадки. Пользователю останется перезагрузить компьютер и проверить наличие проблем во время установки апдейта.
Проверка групповых политик
Процессу обновления операционки иногда препятствует неправильная настройка групповых политик. К счастью, такую ошибку может устранить сам пользователь, выполнив несколько действий:
- Откройте меню «Выполнить» с помощью комбинации клавиш «Win + R».

- Введите запрос gpedit.msc и нажмите кнопку «ОК».

- Откройте раздел «Конфигурация компьютера» и перейдите в подраздел «Административные шаблоны».

- В открывшемся справа окне кликните по позиции «Компоненты Windows».

- В настройке автоматического обновления выставите значение «Не задано», нажмите кнопку «ОК» и примените изменения.

Когда будут отмечены требуемые параметры, установка апдейта пройдет безошибочно. А если эта рекомендация не поможет, просто перейдите к следующему методу устранения неполадок.
Переименовать папку с обновлениями
Возможно, появление ошибки 0x80070057 вызвано тем, что на компьютере пользователя установлено неправильное название папки с обновлениями. Эту проблему можно легко решить:
- Зажмите клавиши «Win + R», чтобы открыть меню «Выполнить».

- Введите запрос %SystemRoot%.

- В открывшейся директории допишите к названию папки «SoftwareDistributon» значение «.old».

- Сохраните изменения.

Важно. На всем пути до директории «SoftwareDistributon» должны присутствовать только символы латинского алфавита.
Если при попытке переименовать папку появится сообщение о том, что каталог используется другими программами, необходимо прекратить все задействованные процессы через Диспетчер задач. В завершение останется перезагрузить компьютер и попробовать вновь обновить Виндовс.
Резервное копирование и обновление Windows
Также в решении проблемы может помочь резервирование файлов системы через Редактор реестра. Для этого понадобится выполнить следующие действия:
- Откройте окно «Выполнить» и введите запрос regedit.

- В редакторе укажите путь «HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftSystemCertificates».

- Кликните ПКМ, нажмите кнопку «Создать» и выберете пункт «Параметр DWORD (32 бита)».

- В качестве имени файла используйте название «CopyFileBufferedSynchronousIo» и не забудьте выставить значение «1».
- Нажмите кнопку «ОК» и сохраните изменения.

В конце останется лишь перезагрузить компьютер и узнать, повлияло ли резервирование файлов на процесс обновления операционной системы. Если проблема не была решена, пробуйте следующий метод.
Целостность системных файлов
Причиной многих проблем, включая появление ошибки 0x80070057 в процессе обновления Windows 10, становится наличие битых системных файлов. Чтобы проверить, так ли это на самом деле, необходимо запустить сканирование компьютера:
- Откройте Командную строку.

- Введите команду sfc /scannow.

- После окончания проверки по порядку вбейте запросы «Dism /Online /Cleanup-Image /ScanHealth», «Dism /Online /Cleanup-Image /CheckHealth» и «Dism /Online /Cleanup-Image /RestoreHealth».

Стоит отметить, что ввод каждой команды должен сопровождаться нажатием клавиши «Enter». В противном случае действия не будут выполнены, и придется повторить операции. По завершению процесса следует проверить наличие ошибок при обновлении системы.
Перерегистрация всех UWP приложений
Исправить ошибку можно при помощи сброса параметров встроенных приложений. Операция выполняется через программу PowerShell (предустановлена на ПК) путем ввода команды Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register «$($_.InstallLocation)AppXManifest.xml»}.

На заметку. Также рекомендуется сбросить кэш официального магазина Microsoft. Для этого нужно ввести запрос wsreset в меню «Выполнить».

Возникновения ошибки при установке Windows 10
Ошибка 0x80070057 появляется не только при обновлении системы, но и при установке новой Виндовс 10 на SSD или HDD. Это может быть вызвано поломкой накопителя, неправильной работой BIOS и неисправностью блока питания ПК.
Для устранения неполадки выполняется следующая инструкция:
- Перезагрузите компьютер.
- В процессе повторного запуска удерживайте кнопки «Del + Esc + F2» для перехода в BIOS (исходная комбинация отличается в зависимости от модели материнской платы).

- Перейдите в раздел «Security».
- Напротив пункта «Secure boot» выставите значение «Disabled».

- Перейдите в «Advanced» и откройте раздел «System Configuration».

- Смените параметр «UEFI Boot» на «CSM Boot».

- В открывшемся окне «Sata Controller Mode» установите значение «Compatibility (IDE)».

После изменения параметров не забудьте сохранить новые настройки. Если все сделано верно, можно смело устанавливать операционку Windows 10 на компьютер.




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