Ошибка подписи хэша с помощью алгоритма 32798

Обновлено: 06.07.2024

Подскажите пожалуйста в каком случае может возникать ошибка "Дублирование хэш-объекта", при использовании didgcrypto.dll
Весь текст:

Dim CryptoARM As Object
Set CryptoARM = CreateObject("DigtCrypto.HashedData")
CryptoARM.Algorithm = "1.2.643.2.2.9"
CryptoARM.HashFile "c:\q1.txt"
MsgBox CryptoARM.Value(0)

В момент попытки исполнения оператора CryptoARM.Value(0)
появляется ошибка:

Run time error -2147467259(80004005)
Ошибка дублирование хэш-объекта
Не поддерживается(0х80004001)

Оказывается эта ошибка возникает при использовании Сигнал-Ком.
При использовании Крипто-Про её нет.
Ув. специалисты Сигнал-Ком, может дадите пример расчета хэш по тому же алгоритму, но при использовании Сигнал-Кома?
Спасибо. Уточните, пожалуйста версии криптопровайдера, операционной системы, программы CryptoARM

Криптопровайдер Signal-COM CSP поддерживает оба алгоритма хэширования. Дело, скорее всего в том, что указанный компонент CryptoARM использует функцию CryptoAPI CryptDuplicateHash, которую наш криптопровайдер не поддерживает (поддержка данной функции не обязательна).
Представляется целесообрзным связаться с разработчиком компонента CryptoARM и выяснить, действительно ли они используют функцию CryptDuplicateHash. Если это так, то могут ли они при хэшировании файла обойтись без функции CryptDuplicateHash. Если не могут, то мы будем решать, есть ли необходимость реализовывать данную функцию в нашем криптопровайдере.


Изменено SC Admin в 19.07.2010 12:22:45

Мне не кажется целесообразным со своей стороны устраивать согласование реализаций компонент для двух монстров криптографии.
Достаточно того, что проблема мной обнаружена и озвучена.
А будете вы (или крипто-арм) её решать или нет это неважно.
Я пользователь и выбираю то, что будет работать.
Понятно, что Сигнал-Ком в настоящем виде не подойдет для САБЖ.


Изменено Garry в 19.07.2010 16:38:26

Конечно, к разработчикам КриптоАРМ не Вам предлагается обращаться. Это план наших действий. В любом случае мы с ними свяжемся и попытаемся выяснить, зачем они используют CryptDuplicateHash при вычислении хэш. Данная функция используется при передаче хэш между функциями и зачем она нужна в случае, когда нужно просто вычислить хэш и вывести результат - пока не очень понятно. Так это совсем другое дело
Не могли бы вы сообщить о том, чем закончатся взаимные консультации.
Наверное прямо в этой теме.
Спасибо.

Разработчики КриптоАРМ из Цифровых технологий подтвердили использование в в текущей версии компоненты CryptoARM функции CryptDuplicateHash при хэшировании.
Они сделали это для того, чтобы сторонним программистам, желающим иметь промежуточный результат, не пришлось создавать 2 объекта вместо одного. В каких именно ситуациях это может потребоваться – неясно, сделано на всякий случай.

Поскольку пока нет реальных клиентов, для которых проблема вычисления хэш с помощью компоненты CryptoARM и Signal-COM CSP была бы актуальна, поддержка CryptDuplicateHash в нашем криптопровайдере поставлена на низкий приоритет но, возможно, будет решена в каком-нибудь ближайшем релизе.

Просьба уточнить, насколько задача вычисления хэш с помощью COM-компоненты CryptoARM актуальна именно для Вас. М.б. мы могли бы предложить Вам иной вариант рншения.

Разумеется можно обойтись и иным решением.
Можно ли сделать все описанное мной выше без применения Крипто-Арм?
Только с помощью библиотек Сигнал-Ком, или (рассуждаю вслух) с помощью связки Сигнал-Ком_ capicom.dll (нет, не каписом, есть у MS какая-то иная библиотека, не вспомню на память)?
Поскольку я работаю в среде VB, VBA, то наверное это стоит учесть.


Изменено Garry в 22.07.2010 15:55:35

Без применения КриптоАРМ это можно сделать с помощью Signal-COM CSP и CryptoAPI (функции CryptCreateHash; CryptHashData;
CryptGetHashParam).

А можно попросить пример
Поскольку я пытался так делать, но не очень успешно.
Потому и подался к КриптоАрму.

Вот мой пример для MD5, SHA и прочих буржуйских алгоритмов работает, а для ГОСТ не хочет.
Как заставить нижеприведенный пример работась с алгоритмом по ГОСТ (Id=32798, если я не ошибаюсь)

Const CALG_MD2 = 32769
Const CALG_MD4 = 32770
Const CALG_MD5 = 32771
Const CALG_SHA = 32772
Const CALG_SHA1 = 32772

Function HashString(ByVal Str As String, sType As String) As String

Dim hCtx As Long
Dim hHash As Long
Dim lRes As Long
Dim lLen As Long
Dim lIdx As Long
Dim abData() As Byte

' Get default provider context handle
'lRes = CryptAcquireContext(hCtx, vbNullString, _
vbNullString, PROV_RSA_FULL, 0)

If sType = "MD5" Then
lRes = CryptCreateHash(hCtx, CALG_MD5, 0, 0, hHash)
ElseIf sType = "SHA1" Then
lRes = CryptCreateHash(hCtx, CALG_SHA1, 0, 0, hHash)
Else
lRes = CryptCreateHash(hCtx, 32798, 0, 0, hHash)
End If

' Hash the string
lRes = CryptHashData(hHash, ByVal Str, Len(Str), 0)

' Get the hash lenght
lRes = CryptGetHashParam(hHash, HP_HASHSIZE, lLen, 4, 0)

If lRes 0 Then
' Initialize the buffer
ReDim abData(0 To lLen - 1)

' Get the hash value
lRes = CryptGetHashParam(hHash, HP_HASHVAL, abData(0), lLen, 0)

If lRes 0 Then
' Convert value to hex string
For lIdx = 0 To UBound(abData)
HashString = HashString & Right$("0" & Hex$(abData(lIdx)), 2)
Next
End If
End If

Файл lmtools_1842532d0ad344708e32798bb63ef496.exe из Acresso Software Inc является частью InstallShield. lmtools_1842532d0ad344708e32798bb63ef496.exe, расположенный в c:windowsinstaller\ lmtools_1842532d0ad344708e32798bb63ef496 .exe с размером файла 50592 байт, версия файла 16.0, подпись 8226a1720a7cad30482fa010fda25448.

  1. Запустите приложение Asmwsoft Pc Optimizer.
  2. Потом из главного окна выберите пункт "Clean Junk Files".
  3. Когда появится новое окно, нажмите на кнопку "start" и дождитесь окончания поиска.
  4. потом нажмите на кнопку "Select All".
  5. нажмите на кнопку "start cleaning".

Clean Registry to fix lmtools_1842532d0ad344708e32798bb63ef496.exe has stopped working error

  1. Запустите приложение Asmwsoft Pc Optimizer.
  2. Потом из главного окна выберите пункт "Fix Registry problems".
  3. Нажмите на кнопку "select all" для проверки всех разделов реестра на наличие ошибок.
  4. 4. Нажмите на кнопку "Start" и подождите несколько минут в зависимости от размера файла реестра.
  5. После завершения поиска нажмите на кнопку "select all".
  6. Нажмите на кнопку "Fix selected".
    P.S. Вам может потребоваться повторно выполнить эти шаги.

3- Настройка Windows для исправления критических ошибок lmtools_1842532d0ad344708e32798bb63ef496.exe:

Clean Registry to fix lmtools_1842532d0ad344708e32798bb63ef496.exe has stopped working error

  1. Нажмите правой кнопкой мыши на «Мой компьютер» на рабочем столе и выберите пункт «Свойства».
  2. В меню слева выберите " Advanced system settings".
  3. В разделе «Быстродействие» нажмите на кнопку «Параметры».
  4. Нажмите на вкладку "data Execution prevention".
  5. Выберите опцию " Turn on DEP for all programs and services . " .
  6. Нажмите на кнопку "add" и выберите файл lmtools_1842532d0ad344708e32798bb63ef496.exe, а затем нажмите на кнопку "open".
  7. Нажмите на кнопку "ok" и перезагрузите свой компьютер.
Как другие пользователи поступают с этим файлом?

Всего голосов ( 181 ), 115 говорят, что не будут удалять, а 66 говорят, что удалят его с компьютера.

Обновили ЭЦП, т.к. истек срок. Новый ключ с шифрованием GOST R 34.10-2012. Установил в Розницу (2.2.11.16) платформа 8.3.13.1644. Проверил этот ключ в 1С всё норм. Но при передачи документов в ГИСМ выдаёт ошибку. Скрины прилагаю.

КриптоПро обновил до последней версии 4.0.9963.

Уже и не знаю где смотреть, куда копать. помогите плз.

Нет. Обновили ключ. Поставили. Возникла проблема. Начал искать решение. Одно из них обновление КриптоПро. Только после этого обновил. До этого КриптоПро 4.0.9944 была. Удалось ли вам побороть проблему? У меня УТ11, обновление на самую свежую версию не исправило проблему.
Различные "махинации" с программой (ниже) привели к ответу от сервера "подпись не верна".
ПараметрыXMLDSig.ИмяАлгоритмаПодписи = "GR 34.10-2012 256";
ПараметрыXMLDSig.OIDАлгоритмаПодписи = "1.2.643.7.1.1.3.2";
ПараметрыXMLDSig.ИмяАлгоритмаХеширования = "GR 34.11-2012 256";
ПараметрыXMLDSig.OIDАлгоритмаХеширования = "1.2.643.7.1.1.2.2";

(7) в актуальной УТ (от 20.02) есть изменения в алгоритмах (хотя и закомментировано и мне не помогло), при подписи автоматом определяется нужный алгоритм:

ПараметрыXMLDSig.ИмяАлгоритмаПодписи = "GOST R 34.10-2001" + Символы.ПС + "GOST R 34.11-2012";
ПараметрыXMLDSig.OIDАлгоритмаПодписи = "1.2.643.2.2.3" + Символы.ПС + "1.2.643.7.1.1.3.2"; // ГОСТ R 34.11/34.10-2001
ПараметрыXMLDSig.ИмяАлгоритмаХеширования = "GOST R 34.11-94" + Символы.ПС + "GOST R 34.11-12";
ПараметрыXMLDSig.OIDАлгоритмаХеширования = "1.2.643.2.2.9" + Символы.ПС + "1.2.643.7.1.1.2.2"; // ГОСТ R 34.11-94

(9) У вас в чем проявляется проблема?
Запрашивал свой УЦ - сказали что сертификаты с этого года могут выпускаться только с актуальным (2012) ГОСТом. Добрый день. Возникла такая же проблема после обновления розницы до релиза Розница, редакция 2.2 (2.2.11.29)
Кто-нибудь решил эту проблему?

Получен ответ отдела разработки.

В ближайшем релизе выйдет исправление.

Тоска тоскливая. Сейчас та же проблема с конфигурацией "Медицина. Больничные", точь в точь.

(12) dishik , а розница часто обновляется? Можно попросить вас маякнуть в этой ветке, когда выйдет обновление?

Важные изменения работы игр на Windows 7

В мае 2021 года запуск игры станет невозможен без поддержки цифровой подписи на основе хеш-алгоритма SHA-2. Если у вашей операционной системы не установлены все обновления в "Центре обновления Windows", то можно подключить поддержку SHA-2 вручную или обновить свою Windows 7 до Windows 8 или более поздней версии. Чтобы активировать поддержку SHA-2 следуйте инструкции.

Ваша версия Windows 7 без установленного Service Pack 1:

2. Нажмите на кнопку "Запустить", чтобы начать скачивание этого файла. Если у вас браузер отличный от Internet Explorer, то перейдите сразу к следующему пункту.



3. После того как вы скачаете Service Pack 1, появится следующее диалоговое окно, где необходимо нажать кнопку "Запустить".


4. Ознакомьтесь с подробностями перед установкой Service Pack 1 и нажмите "Далее". Обратите внимание, что компьютер может несколько раз перезагрузиться во время установки.


5. Сохраните все проекты и закройте программы, чтобы ничего не потерять, и установка прошла быстрее. Также рекомендуем нажать галочку "Автоматически перезагрузить компьютер". Установка Service Pack 1 начнется только после того, как вы нажмете на кнопку "Установить".




6. Когда установка будет завершена и ваш компьютер автоматически перезагрузится, Service Pack 1 будет полностью установлен. В некоторых случаях поддержка хеш-алгоритма цифровой подписи SHA-1 может автоматически не обновиться до SHA-2 — тогда при следующем запуске игры у вас появится инструкция, как его обновить вручную.


Ваша версия Windows 7 с установленным Service Pack 1:

1. Перейдите по ссылке, чтобы скачать обновление хеш-алгоритма цифровой подписи с SHA-1 до SHA-2.

2. Чтобы начать скачивание этого файла, нажмите на кнопку "Открыть". Если у вас браузер отличный от Internet Explorer, то перейдите сразу к следующему пункту.



3. После того как вы запустите установщик, выдайте доступ на открытие web-контента кнопкой "Разрешить".


4. Следующим шагом будет установка обновления. Выберите вариант "Да" и ожидайте полной установки.



5. После завершения обновления и перезагрузки компьютера хеш-алгоритм SHA-2 станет активным — теперь вы можете продолжить играть.

Магазин

Войти


Текст ошибки:

Произошла ошибка при сохранении данных

Ошибка загрузки данных

Указан неправильный алгоритм. (0x80090008)

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

В большинстве случаев ошибка Указан неправильный алгоритм (0x80090008) решается переустановкой сертификата подписи. Переустановить сертификат можно несколькими способами:

В программе КриптоАРМ так, как показано в видео инструкции.

В личном хранилище сертификатов КриптоАРМа найдите ваш сертификат, выделите нажав на него курсором мыши. Нажмите на кнопку Экспорт , в открывшемся окне мастера нажмите Далее, в следующем окне обязательно укажите НЕТ НЕ ЭКСПОРТИРОВАТЬ ЗАКРЫТЫЙ КЛЮЧ , в мастере экспорта выберите кодировку DER , нажав кнопку Обзор поместите его на рабочий стол под любым именем. Удалять сертификат из личного хранилища при этом не нужно. Затем снова импортируйте его в личное хранилище, используя кнопку Импорт на панели инструментов, в мастере импорта сертификатов установите чекбоксы Установить личный сертификат и Поместить сертификат в контейнер . Далее понадобится выбрать криптопровайдер и контейнер вручную. После успешного импорта сертификата повторите подписание.

Также переустановку сертификата можно выполнить через КриптоПро CSP. Для этого откройте программу КриптоПро CSP и перейдите во вкладку Сервис . Затем нажмите на кнопки Просмотреть сертификаты в контейнере и Обзор . Выберите нужный контейнер и нажмите кнопку Ok , а после Установить . Снова повторите подписание.

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

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