Ошибка при проверке 0x80091007 неправильное значение хеша


Offline

sergey.kosta

 


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

26 ноября 2020 г. 15:30:01(UTC)

sergey.kosta

Статус: Новичок

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

Зарегистрирован: 25.11.2020(UTC)
Сообщений: 4
Российская Федерация

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

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

Работаю с криптопро через cryptopro browser plugin, необходимо подписать XML открепленной подписью (Сам base64 этой XML находится в скрытом текстовом блоке на странице в браузере т.е. это не файл) . Подписание проходит нормально , но функция Verify говорит

Цитата:

«Неправильное значение хеша. (0x80091007)», requestid: 56

, так же о том что проблема с подписью говорит КриптоАрм (если сохранить данные для подписи и саму подпись в файлы и передать КриптоАрм). Работаю таким образом:

1. Вызываю SignCreate и передаю в dataToSign base64-кодированную XML. Код:

Код:

var CADESCOM_CADES_BES = 1;
var CAPICOM_CURRENT_USER_STORE = 2;
var CAPICOM_MY_STORE = "My";
var CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;
var CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;
var CADESCOM_BASE64_TO_BINARY = 1;
function SignCreate(certSubjectName, dataToSign, id) {
    certSubjectName = $("#cert_info #subject b").text().replace("CN=", "");
    return new Promise(function (resolve, reject) {
        cadesplugin.async_spawn(function* (args) {
            try {
                if (certSubjectName === "") {
                    alert("Не выбран сертификат");
                    return;
                }
                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);
                var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
                yield oSigner.propset_Certificate(oCertificate);

                var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
                yield oSignedData.propset_Content(dataToSign);

                var sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);

                yield oStore.Close();

                args[2](sSignedMessage);
                Verify(sSignedMessage, dataToSign); //Здесь вызываю проверку
                $("#SignatureTxtBox").html(sSignedMessage);

                SendSigninData(sSignedMessage, id);

            }
            catch (e) {
                args[3]("Failed to create signature. Error: " + cadesplugin.getLastError(err));
            }
        }, certSubjectName, dataToSign, resolve, reject);
    });
}

2.Сама функция Verify

Код:

function Verify(sSignedMessage, dataToVerify) {
    var oSignedData = cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
    try {
        // Значение свойства ContentEncoding должно быть задано
        // до заполнения свойства Content
        oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
        oSignedData.Content = dataToVerify;
                oSignedData.then(function (data) {
            data.VerifyCades(sSignedMessage, CADESCOM_CADES_BES, true);
        });
    } catch (err) {
        alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
        return false;
    }

    return true;
}

Её ответ

Цитата:

{message: «Неправильное значение хеша. (0x80091007)», requestid: 56, type: «error»}

Подскажите пожалуйста в чем может быть проблема ?

Файл данных : data.txt (1kb) загружен 1 раз(а). , Файл подписи: sign.txt (3kb) загружен 1 раз(а).

PS если набор подписываемых данных (xml) положить в файл и подписать той же подписью в КриптоАРМ, то проверка подписи в криптоАРМ проходит корректно

Отредактировано пользователем 26 ноября 2020 г. 15:58:50(UTC)
 | Причина: Не указана


Вверх


Offline

Андрей *

 


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

26 ноября 2020 г. 17:26:18(UTC)

Андрей *

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

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

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

Сказал «Спасибо»: 457 раз
Поблагодарили: 1912 раз в 1478 постах

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

dataToSign — в base64.
Чтобы подписался именно XML (который был закодирован) — необходимо сообщить об этом до присвоения данных.

Выставить для ContentEncoding — CADESCOM_BASE64_TO_BINARY
и только потом oSignedData.propset_Content(dataToSign);

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


Вверх

WWW

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

sergey.kosta

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


Offline

sergey.kosta

 


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

26 ноября 2020 г. 18:08:22(UTC)

sergey.kosta

Статус: Новичок

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

Зарегистрирован: 25.11.2020(UTC)
Сообщений: 4
Российская Федерация

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

Сделал как Вы сказали, однако ошибка осталась.

Код:

var CADESCOM_CADES_BES = 1;
var CAPICOM_CURRENT_USER_STORE = 2;
var CAPICOM_MY_STORE = "My";
var CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;
var CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;
var CADESCOM_BASE64_TO_BINARY = 1;

function SignCreate(certSubjectName, dataToSign, id) {
    //dataToSign = $("#DataToSignTxtBox").val();
    certSubjectName = $("#cert_info #subject b").text().replace("CN=", "");
    return new Promise(function (resolve, reject) {
        cadesplugin.async_spawn(function* (args) {
            try {
                if (certSubjectName === "") {
                    alert("Не выбран сертификат");
                    return;
                }
                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);
                var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
                yield oSigner.propset_Certificate(oCertificate);

                var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
                oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
                yield oSignedData.propset_Content(dataToSign);

                var sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);

                yield oStore.Close();

                args[2](sSignedMessage);
                Verify(sSignedMessage, dataToSign);
                $("#SignatureTxtBox").html(sSignedMessage);

                SendSigninData(sSignedMessage, id);

            }
            catch (e) {
                args[3]("Failed to create signature. Error: " + cadesplugin.getLastError(err));
            }
        }, certSubjectName, dataToSign, resolve, reject);
    });
}

Вверх


Offline

Андрей *

 


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

26 ноября 2020 г. 18:28:18(UTC)

Андрей *

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

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

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

Сказал «Спасибо»: 457 раз
Поблагодарили: 1912 раз в 1478 постах

это не правильно:

Цитата:

oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;

должно быть так:
yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);

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


Вверх

WWW

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

4ebur@shk@

оставлено 26.11.2020(UTC),

sergey.kosta

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


Offline

Андрей *

 


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

26 ноября 2020 г. 18:30:52(UTC)

Андрей *

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

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

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

Сказал «Спасибо»: 457 раз
Поблагодарили: 1912 раз в 1478 постах

Используйте документацию https://docs.cryptopro.ru
Создание и проверка отделенной подписи

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


Вверх

WWW

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

4ebur@shk@

оставлено 26.11.2020(UTC),

sergey.kosta

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


Offline

sergey.kosta

 


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

26 ноября 2020 г. 19:03:24(UTC)

sergey.kosta

Статус: Новичок

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

Зарегистрирован: 25.11.2020(UTC)
Сообщений: 4
Российская Федерация

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

Внутри Verify теперь не входит в блок catch, означает ли это что проверка прошла успешно ?

Отредактировано пользователем 26 ноября 2020 г. 19:09:27(UTC)
 | Причина: Не указана


Вверх


Offline

Андрей *

 


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

26 ноября 2020 г. 19:40:27(UTC)

Андрей *

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

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

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

Сказал «Спасибо»: 457 раз
Поблагодарили: 1912 раз в 1478 постах

Автор: sergey.kosta Перейти к цитате

Внутри Verify теперь не входит в блок catch, означает ли это что проверка прошла успешно ?

Да, можете перепроверить ещё в сторонних утилитах

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


Вверх

WWW

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

sergey.kosta

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


Offline

sergey.kosta

 


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

26 ноября 2020 г. 20:15:40(UTC)

sergey.kosta

Статус: Новичок

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

Зарегистрирован: 25.11.2020(UTC)
Сообщений: 4
Российская Федерация

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

Спасибо. Все работает


Вверх

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

Guest

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

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

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

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

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

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

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

Доброе время суток, уже близок к усуществению отсоединённой подписи, присоединённая уже получается и проходит проверку на сайте Сервер электронной подписи КриптоПро DSS.
Возможно Вы сможете помочь с решением вопроса: «Отсоединённой подпись не проходит проверку, а присоединённая подпись проходит»

Вот этим кодом я делаю подпись:


function SignCreate(thumbprint, dataToSign) {

    let oCertificate;
    let oSigner;
    let oSignedData;
    let sSignedMessage;

    let oStore = cadesplugin.CreateObject("CAPICOM.Store");
    oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

    let oCertificates = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);

    if (oCertificates.Count == 0) {
        return "Certificate not found: " + thumbprint;
    }

    oCertificate = oCertificates.Item(1);
    oSigner = cadesplugin.CreateObject("CAdESCOM.CPSigner");
    oSigner.Certificate = oCertificate;
    oSigner.TSAAddress = "http://testca.cryptopro.ru/tsp/tsp.srf";

    oSignedData = cadesplugin.CreateObject("CAdESCOM.CadesSignedData");
    oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
    oSignedData.Content = dataToSign.replace('data:application/pdf;base64,', '');

    try {
        sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);
    } catch (err) {
        return "Failed to create signature. Error: " + GetErrorMessage(err);
    }

    try {
        oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1, true);
    } catch (err) {
        alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
        return false;
    }

    oStore.Close();
    return sSignedMessage;
}

Пробую два варианта:
Вариант отсоединённой подписи не проходит проверку ЭП в КриптоПро DSS:
Код:
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);

Цитата:
Результат проверки
Название документа spravka_soc_viplaty_09.08.2017.pdfОП.p7s
Подпись 1
Результат проверки
Подпись не действительна
Дополнительная информация
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Сообщение содержит неверную подпись.
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/8/2017 8:20:37 AM
Время подписи
9/8/2017 8:20:21 AM
Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

Вариант присоединённой подписи проверку проходит:
Код:
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, false);

Цитата:

Сервер электронной подписи КриптоПро DSS
Результат проверки
Название документа spravka_soc_viplaty_09.08.2017.pdfПП.p7s
Подпись 1
Результат проверки
Подпись действительна
Дополнительная информация
Отсутствует
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/8/2017 8:39:21 AM
Время подписи
9/8/2017 8:39:00 AM
Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

Оба варианта отрабатывают без ошибок и возвращают на выходе файл
Во вложении оба варианта рассмотрены
sign.zip

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
КриптоПро ЭЦП (усовершенствованная ЭЦП)
 » 
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Соо


Offline

pavenko_sv

 


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

7 сентября 2017 г. 14:46:00(UTC)

pavenko_sv

Статус: Активный участник

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

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

Сказал «Спасибо»: 39 раз

Проверяю получившуюся электронную подпись в КриптоПро DSS:

Цитата:

Документ для проверки
C:fakepathspravka_soc_viplaty_09.08.2017.pdf(IE).p7s

Не удалось определить формат подписи, выберите требуемый формат в разделе Формат подписи
Формат подписи
Подпись в формате CMS

Параметры
Подпись данных

Отсоединённая подпись

Исходный документ
C:fakepathspravka_soc_viplaty_09.08.2017.pdf

Результат проверки

Цитата:

Название документа spravka_soc_viplaty_09.08.2017.pdf(IE).p7s
Подпись 1
Результат проверки
Подпись не действительна
Дополнительная информация
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Сообщение содержит неверную подпись.
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/7/2017 1:37:18 PM
Время подписи
9/7/2017 1:37:02 PM
Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

Пример документа и схормированной подписи:
sign.zip (36kb) загружен 5 раз(а).

Код формирования:

Код:

let oStore = yield cadesplugin.CreateObjectAsync("CAPICOM.Store");
yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
                
let CertificatesObj = yield oStore.Certificates;
let oCertificates = yield CertificatesObj.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);
                
let Count = yield oCertificates.Count;
let oCertificate = yield oCertificates.Item(1);
let oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
yield oSigner.propset_Options(CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);
/*
                
-если тестовый личный сертификат выпускали здесь https://www.cryptopro.ru/ui/
то используйте стенд http://www.cryptopro.ru/tsp/tsp.srf

-если тестовый личный сертификат выпускали здесь https://www.cryptopro.ru/certsrv/
используйте стенд http://testca.cryptopro.ru/tsp/tsp.srf
                
*/
let tspService = "http://testca.cryptopro.ru/tsp/tsp.srf";
yield oSigner.propset_TSAAddress(tspService);

let oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(CADESCOM_ENCODE_BASE64);
yield oSignedData.propset_Content(dataToSign);

let sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);
                
yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1, true);

yield oStore.Close();
args[2](sSignedMessage);
return true;

Вверх

WWW


Offline

Андрей Емельянов

 


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

8 сентября 2017 г. 14:47:58(UTC)

Андрей Емельянов

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

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

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

Сказал «Спасибо»: 4 раз
Поблагодарили: 148 раз в 144 постах

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

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


Вверх

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

pavenko_sv

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


Offline

Андрей Писарев

 


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

8 сентября 2017 г. 14:58:12(UTC)

Андрей *

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

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

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

Сказал «Спасибо»: 457 раз
Поблагодарили: 1912 раз в 1478 постах

Автор: eav Перейти к цитате

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Проблема в двойном кодировании.

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


Вверх

WWW

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

Андрей Емельянов

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


Offline

pavenko_sv

 


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

8 сентября 2017 г. 15:16:58(UTC)

pavenko_sv

Статус: Активный участник

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

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

Сказал «Спасибо»: 39 раз

Автор: eav Перейти к цитате

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Спасибо. Починил!

было:
//Задание кодировки подписываемых данных
var CADESCOM_STRING_TO_UCS2LE = 0x00 //Данные будут перекодированы в UCS-2 little endian.
var CADESCOM_BASE64_TO_BINARY = 0x01 //Данные будут перекодированы из Base64 в бинарный массив.

стало:
//Задание кодировки подписываемых данных
var CADESCOM_STRING_TO_UCS2LE = 0; //Данные будут перекодированы в UCS-2 little endian.
var CADESCOM_BASE64_TO_BINARY = 1; //Данные будут перекодированы из Base64 в бинарный массив.


Вверх

WWW


Offline

Андрей Писарев

 


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

8 сентября 2017 г. 15:33:41(UTC)

Андрей *

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

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

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

Сказал «Спасибо»: 457 раз
Поблагодарили: 1912 раз в 1478 постах

Понятно.
Об этом есть здесь.

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


Вверх

WWW

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

pavenko_sv

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


Offline

Андрей Писарев

 


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

8 сентября 2017 г. 15:36:02(UTC)

Андрей *

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

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

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

Сказал «Спасибо»: 457 раз
Поблагодарили: 1912 раз в 1478 постах

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

Автор: eav Перейти к цитате

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Проблема в двойном кодировании.

Цитата:

0x01 <> 1

Плагину не сообщалось, что нужно декодировать предварительно данные в памяти и он подписывал как есть — т.е. base64 вариант.

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


Вверх

WWW

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

pavenko_sv

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

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

Guest

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
КриптоПро ЭЦП (усовершенствованная ЭЦП)
 » 
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Соо

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

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

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

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

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

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

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

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
КриптоПро ЭЦП (усовершенствованная ЭЦП)
 » 
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Соо


Offline

pavenko_sv

 


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

7 сентября 2017 г. 14:46:00(UTC)

pavenko_sv

Статус: Активный участник

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

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

Сказал «Спасибо»: 39 раз

Проверяю получившуюся электронную подпись в КриптоПро DSS:

Цитата:

Документ для проверки
C:fakepathspravka_soc_viplaty_09.08.2017.pdf(IE).p7s

Не удалось определить формат подписи, выберите требуемый формат в разделе Формат подписи
Формат подписи
Подпись в формате CMS

Параметры
Подпись данных

Отсоединённая подпись

Исходный документ
C:fakepathspravka_soc_viplaty_09.08.2017.pdf

Результат проверки

Цитата:

Название документа spravka_soc_viplaty_09.08.2017.pdf(IE).p7s
Подпись 1
Результат проверки
Подпись не действительна
Дополнительная информация
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Сообщение содержит неверную подпись.
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/7/2017 1:37:18 PM
Время подписи
9/7/2017 1:37:02 PM
Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

Пример документа и схормированной подписи:
sign.zip (36kb) загружен 5 раз(а).

Код формирования:

Код:

let oStore = yield cadesplugin.CreateObjectAsync("CAPICOM.Store");
yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
                
let CertificatesObj = yield oStore.Certificates;
let oCertificates = yield CertificatesObj.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);
                
let Count = yield oCertificates.Count;
let oCertificate = yield oCertificates.Item(1);
let oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
yield oSigner.propset_Options(CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);
/*
                
-если тестовый личный сертификат выпускали здесь https://www.cryptopro.ru/ui/
то используйте стенд http://www.cryptopro.ru/tsp/tsp.srf

-если тестовый личный сертификат выпускали здесь https://www.cryptopro.ru/certsrv/
используйте стенд http://testca.cryptopro.ru/tsp/tsp.srf
                
*/
let tspService = "http://testca.cryptopro.ru/tsp/tsp.srf";
yield oSigner.propset_TSAAddress(tspService);

let oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(CADESCOM_ENCODE_BASE64);
yield oSignedData.propset_Content(dataToSign);

let sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);
                
yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1, true);

yield oStore.Close();
args[2](sSignedMessage);
return true;

Вверх

WWW


Offline

Андрей Емельянов

 


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

8 сентября 2017 г. 14:47:58(UTC)

Андрей Емельянов

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

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

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

Сказал «Спасибо»: 4 раз
Поблагодарили: 148 раз в 144 постах

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

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


Вверх

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

pavenko_sv

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


Offline

Андрей Писарев

 


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

8 сентября 2017 г. 14:58:12(UTC)

Андрей *

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

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

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

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

Автор: eav Перейти к цитате

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Проблема в двойном кодировании.

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


Вверх

WWW

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

Андрей Емельянов

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


Offline

pavenko_sv

 


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

8 сентября 2017 г. 15:16:58(UTC)

pavenko_sv

Статус: Активный участник

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

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

Сказал «Спасибо»: 39 раз

Автор: eav Перейти к цитате

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Спасибо. Починил!

было:
//Задание кодировки подписываемых данных
var CADESCOM_STRING_TO_UCS2LE = 0x00 //Данные будут перекодированы в UCS-2 little endian.
var CADESCOM_BASE64_TO_BINARY = 0x01 //Данные будут перекодированы из Base64 в бинарный массив.

стало:
//Задание кодировки подписываемых данных
var CADESCOM_STRING_TO_UCS2LE = 0; //Данные будут перекодированы в UCS-2 little endian.
var CADESCOM_BASE64_TO_BINARY = 1; //Данные будут перекодированы из Base64 в бинарный массив.


Вверх

WWW


Offline

Андрей Писарев

 


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

8 сентября 2017 г. 15:33:41(UTC)

Андрей *

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

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

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

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

Понятно.
Об этом есть здесь.

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


Вверх

WWW

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

pavenko_sv

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


Offline

Андрей Писарев

 


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

8 сентября 2017 г. 15:36:02(UTC)

Андрей *

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

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

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

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

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

Автор: eav Перейти к цитате

Добрый день.
В архиве две подписи, не проверяется только отсоединенная подпись, проблема может быть в этом:
http://cpdn.cryptopro.ru…es/content-encoding.html

Проблема в двойном кодировании.

Цитата:

0x01 <> 1

Плагину не сообщалось, что нужно декодировать предварительно данные в памяти и он подписывал как есть — т.е. base64 вариант.

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


Вверх

WWW

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

pavenko_sv

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

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

Guest

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
КриптоПро ЭЦП (усовершенствованная ЭЦП)
 » 
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Соо

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

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

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

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

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

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

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

Доброе время суток, уже близок к усуществению отсоединённой подписи, присоединённая уже получается и проходит проверку на сайте Сервер электронной подписи КриптоПро DSS.
Возможно Вы сможете помочь с решением вопроса: «Отсоединённой подпись не проходит проверку, а присоединённая подпись проходит»

Вот этим кодом я делаю подпись:


function SignCreate(thumbprint, dataToSign) {

    let oCertificate;
    let oSigner;
    let oSignedData;
    let sSignedMessage;

    let oStore = cadesplugin.CreateObject("CAPICOM.Store");
    oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

    let oCertificates = oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);

    if (oCertificates.Count == 0) {
        return "Certificate not found: " + thumbprint;
    }

    oCertificate = oCertificates.Item(1);
    oSigner = cadesplugin.CreateObject("CAdESCOM.CPSigner");
    oSigner.Certificate = oCertificate;
    oSigner.TSAAddress = "http://testca.cryptopro.ru/tsp/tsp.srf";

    oSignedData = cadesplugin.CreateObject("CAdESCOM.CadesSignedData");
    oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
    oSignedData.Content = dataToSign.replace('data:application/pdf;base64,', '');

    try {
        sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);
    } catch (err) {
        return "Failed to create signature. Error: " + GetErrorMessage(err);
    }

    try {
        oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1, true);
    } catch (err) {
        alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
        return false;
    }

    oStore.Close();
    return sSignedMessage;
}

Пробую два варианта:
Вариант отсоединённой подписи не проходит проверку ЭП в КриптоПро DSS:
Код:
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, true);

Цитата:
Результат проверки
Название документа spravka_soc_viplaty_09.08.2017.pdfОП.p7s
Подпись 1
Результат проверки
Подпись не действительна
Дополнительная информация
Не удалось проверить подпись CAdES-XLT1. Ошибка: [Неправильное значение хеша]. Код: [0x80091007].Сообщение содержит неверную подпись.
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/8/2017 8:20:37 AM
Время подписи
9/8/2017 8:20:21 AM
Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

Вариант присоединённой подписи проверку проходит:
Код:
sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1, false);

Цитата:

Сервер электронной подписи КриптоПро DSS
Результат проверки
Название документа spravka_soc_viplaty_09.08.2017.pdfПП.p7s
Подпись 1
Результат проверки
Подпись действительна
Дополнительная информация
Отсутствует
Дополнительная информация о подписи
Формат подписи CAdES
Подпись в формате XLT1
Время подписи, полученное из штампа
9/8/2017 8:39:21 AM
Время подписи
9/8/2017 8:39:00 AM
Информация о сертификате
Субъект
C=RU, S=Нижегородская Область, L=Нижний Новгород, O=»ООО «»КазАУП»»», OU=Отдел разработки, CN=Stanislav, E=pavenko_sv@mail.ru
Издатель
CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, E=support@cryptopro.ru
Срок действия
07.09.2017 09:43:43 — 07.12.2017 09:53:43

Оба варианта отрабатывают без ошибок и возвращают на выходе файл
Во вложении оба варианта рассмотрены
sign.zip

  • Remove From My Forums
  • Question

  • SCCM 1902

    Peer-Caching Turned On

    Action in SCCM: Created a new application called “Zoom Client for Meetings V1.0” and deployed to “All Windows 10” collection.

    The installation worked on about 1500 devices and caused errors on about 600.

    What I’m seeing on the device:

    Currently what I’m seeing is the device pulls the content from a peer device and creates a temp folder in ccmcache and then the folder disappears from the ccmcache leaving the application not installed.

    CAS log error:

    Failed to do hash verification with preference : 4. Try to verify at next hash algorithm

    Tried these things:

            • Update Content on original Zoom package 
            • Created a copy of the SCCM package and uploaded content – “Zoom Client for Meetings and redeployed to collection.
            • Application Revision History – deleted one of the 2 revisions
          • Re-created brand new source and package in “Zoom Client for Meetings
        • Deleted all content from all 3 x DP’s and re-distributed new package.
      • Excluded files and folders set >included %windir%CCMCache for AV
    • Added 8 machines to test collection this has the client setting for the peer cache turned off — to see if it will force the devices to go to the main dp’s instead
      of the peer devices — still same errors.

    Help?? Something so simple is giving me so much grief this week.

    Any logs on the SCCM server I can check?

    Anything to do with superpeers in the SCCM database?

    • Edited by

      Thursday, December 5, 2019 3:24 AM

  • Remove From My Forums
  • Question

  • SCCM 1902

    Peer-Caching Turned On

    Action in SCCM: Created a new application called “Zoom Client for Meetings V1.0” and deployed to “All Windows 10” collection.

    The installation worked on about 1500 devices and caused errors on about 600.

    What I’m seeing on the device:

    Currently what I’m seeing is the device pulls the content from a peer device and creates a temp folder in ccmcache and then the folder disappears from the ccmcache leaving the application not installed.

    CAS log error:

    Failed to do hash verification with preference : 4. Try to verify at next hash algorithm

    Tried these things:

            • Update Content on original Zoom package 
            • Created a copy of the SCCM package and uploaded content – “Zoom Client for Meetings and redeployed to collection.
            • Application Revision History – deleted one of the 2 revisions
          • Re-created brand new source and package in “Zoom Client for Meetings
        • Deleted all content from all 3 x DP’s and re-distributed new package.
      • Excluded files and folders set >included %windir%CCMCache for AV
    • Added 8 machines to test collection this has the client setting for the peer cache turned off — to see if it will force the devices to go to the main dp’s instead
      of the peer devices — still same errors.

    Help?? Something so simple is giving me so much grief this week.

    Any logs on the SCCM server I can check?

    Anything to do with superpeers in the SCCM database?

    • Edited by

      Thursday, December 5, 2019 3:24 AM


15 фев 2019 03:42 #10601
от bugzi

танцы продолжаются, с того ни с чего начала вылетать ошибка ошибки при доведение до уэп неправильное значение хэша. пока ничего путнего не нарыл.
браузер ie11 и ff нижние версии. почитав в сети и тут на форуме ничего пока не помогло.дохожу до утверждения и вылетает ошибка.

Утвердить главным бухгалтером
Ошибки при доведение до УЭП. Неправильное значение хэша (неудавшееся преобразование [xmldsig-05e4a6e4-3c15-499d-be3c-2881720f2da9-ref] [] : );


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


15 фев 2019 04:50 #10608
от bigvolga

такая же проблема с вечера 14 февраля.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


15 фев 2019 04:57 #10609
от igor1806

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


15 фев 2019 05:11 #10613
от bigvolga

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


15 фев 2019 05:34 #10615
от bugzi

bigvolga пишет: Да, в IE11 утвердили.

ошибка во всех браузерах. я в основном и ia11 и настраиваю, просто если чего не растет пробую и вдругих.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 фев 2019 20:39 #10691
от bugzi

кто нибудь победил? написал в тех.поддержку, пока жду.


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 фев 2019 21:1317 фев 2019 21:13 #10692
от Wmffre

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 фев 2019 21:35 #10693
от bugzi

ответ тех. поддержки

Добрый день! Для устранения ошибки доведения до УЭП необходимо отключить плагин ЭЦП Browser plug-in версии 2.0 и использовать Jinn плагин. Ошибка доведения до УЭП появляется только при использовании ЭЦП Browser plug-in. Необходимо настроить АРМ согласно требованиям на портале: elearning.otr.ru/mod/page/view.php?id=1719 Дополнительная информация по работе в подсистеме «Учет и отчетность» Электронного бюджета находится на обучающем портале: elearning.otr.ru/course/view.php?id=27


Не я такой, а жизнь этому учит..

Спасибо сказали: sedkazna

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


17 фев 2019 22:44 #10694
от bugzi


Не я такой, а жизнь этому учит..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

При установке NokiaSoftwareRecoveryToolInstaller на ваш компьютер возникла проблема. Попробовал другой, ситуация не изменилась. Пишет ошибку 0x80091007 неправильное значение хеша

Привет, Алессандро!

По-видимому, загруженный вами установочный файл Windows Device Recovery Tool был поврежден, поэтому я рекомендую вам убедиться, что интернет-соединение на вашем компьютере стабильно, и снова загрузить Windows Device Recovery Tool с официального сайта Microsoft.

Искренне Ваш,
Серж.

Источник: https://answers.microsoft.com/ru-ru/mobiledevices/forum/all/bug/c6fb078d-7d73-4b77-b36d-b0f4078cc254

  • Ошибка при проведении транзакции варфрейм
  • Ошибка при проведении растирания
  • Ошибка при проведении платежа мы вернем вам деньги yandex money
  • Ошибка при проведении платежа 5012 2can
  • Ошибка при проведении документа деление на 0