Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline dimzon541  
#1 Оставлено : 6 июня 2022 г. 14:45:20(UTC)
dimzon541

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

Группы: Участники
Зарегистрирован: 06.06.2022(UTC)
Сообщений: 11
Российская Федерация

https://docs.cryptopro.r...-samples-cades-sign-hash

Страничка проверки плагина https://www.cryptopro.ru...ge/cades_bes_sample.html отрабатывает нормально, тестовым сертификатом пoдписывает.

Copy-Past кода из https://docs.cryptopro.r...-samples-cades-sign-hash выдает ошибку
Failed to create signature. Error: The parameter is incorrect. (0x80070057)

Код:
function SignMain_Async() {
    cadesplugin.async_spawn(function* (args) {

        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_HASH_ALGORITHM_CP_GOST_3411 = 100;

        var sCertName = "Test Certificate"; // Здесь следует заполнить SubjectName сертификата
        if ("" === sCertName) {
            alert("Введите имя сертификата (CN).");
            return;
        }
        // Ищем сертификат для подписи
        var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
        yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
            CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

        var oStoreCerts = yield oStore.Certificates;
        var oCertificates = yield oStoreCerts.Find(
            CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, sCertName);
        var certsCount = yield oCertificates.Count;
        if (certsCount === 0) {
            alert("Certificate not found: " + sCertName);
            return;
        }
        var oCertificate = yield oCertificates.Item(1);
        yield oStore.Close();

        // Предварительно вычисленное хэш-значение исходных данных
        // Хэш-значение должно быть представлено в виде строки шестнадцатеричных цифр,
        // группами по 2 цифры на байт, с пробелами или без пробелов.
        // Например, хэш-значение в таком формате возвращают объекты
        // CAPICOM.HashedData и CADESCOM.HashedData.
        var sHashValue = "92CD0CB36B10BFB88DEF198F80B7D2E667DBDA064D346405C25EEF77FFE375D7";

        // Алгоритм хэширования, при помощи которого было вычислено хэш-значение
        // Полный список поддерживаемых алгоритмов указан в перечислении CADESCOM_HASH_ALGORITHM
        var hashAlg = CADESCOM_HASH_ALGORITHM_CP_GOST_3411; // ГОСТ Р 34.11-94

        // Создаем объект CAdESCOM.HashedData
        var oHashedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.HashedData");

        // Инициализируем объект заранее вычисленным хэш-значением
        // Алгоритм хэширования нужно указать до того, как будет передано хэш-значение
        yield oHashedData.propset_Algorithm(hashAlg);
        yield oHashedData.SetHashValue(sHashValue);

        // Создаем подписанное сообщение
        // Такая подпись должна проверяться в КриптоАРМ и cryptcp.exe
        // Создаем объект CAdESCOM.CPSigner
        var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
        yield oSigner.propset_Certificate(oCertificate);
        yield oSigner.propset_CheckCertificate(true);

        // Создаем объект CAdESCOM.CadesSignedData
        var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");

        var sSignedMessage = "";

        // Вычисляем значение подписи
        try {
            sSignedMessage = yield oSignedData.SignHash(oHashedData, oSigner, CADESCOM_CADES_BES);
        } catch (err) {
            alert("Failed to create signature. Error: " + cadesplugin.getLastError(err));
            return;
        }

        document.getElementById("signature").innerHTML = sSignedMessage;

        // Создаем объект CAdESCOM.CadesSignedData
        var oSignedData2 = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");

        // Проверяем подпись
        try {
            yield oSignedData2.VerifyHash(oHashedData, sSignedMessage, CADESCOM_CADES_BES);
            alert("Signature verified");
        } catch (err) {
            alert("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
            return;
        }
    });
}
Offline Андрей *  
#2 Оставлено : 6 июня 2022 г. 14:56:31(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,162
Мужчина
Российская Федерация

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
Здравствуйте.

Цитата:
var hashAlg = CADESCOM_HASH_ALGORITHM_CP_GOST_3411; // ГОСТ Р 34.11-94

потому что пример для 2001 ГОСТ

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 6 июня 2022 г. 14:57:53(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,162
Мужчина
Российская Федерация

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
Автор: dimzon541 Перейти к цитате

Страничка проверки плагина https://www.cryptopro.ru...ge/cades_bes_sample.html отрабатывает нормально, тестовым сертификатом пoдписывает.


И там же в браузере можно посмотреть исходный код ...
Техническую поддержку оказываем тут
Наша база знаний
Offline dimzon541  
#4 Оставлено : 6 июня 2022 г. 16:01:20(UTC)
dimzon541

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

Группы: Участники
Зарегистрирован: 06.06.2022(UTC)
Сообщений: 11
Российская Федерация

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

Страничка проверки плагина https://www.cryptopro.ru...ge/cades_bes_sample.html отрабатывает нормально, тестовым сертификатом пoдписывает.


И там же в браузере можно посмотреть исходный код ...


И там же в браузере НЕТ ПРИМЕРА подписания хэша!


Offline dimzon541  
#5 Оставлено : 6 июня 2022 г. 16:02:14(UTC)
dimzon541

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

Группы: Участники
Зарегистрирован: 06.06.2022(UTC)
Сообщений: 11
Российская Федерация

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

Цитата:
var hashAlg = CADESCOM_HASH_ALGORITHM_CP_GOST_3411; // ГОСТ Р 34.11-94

потому что пример для 2001 ГОСТ



Значит наверное пример надо исправить?
Offline Андрей *  
#6 Оставлено : 6 июня 2022 г. 16:06:17(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,162
Мужчина
Российская Федерация

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
Автор: dimzon541 Перейти к цитате
Автор: Андрей * Перейти к цитате
Автор: dimzon541 Перейти к цитате

Страничка проверки плагина https://www.cryptopro.ru...ge/cades_bes_sample.html отрабатывает нормально, тестовым сертификатом пoдписывает.


И там же в браузере можно посмотреть исходный код ...


И там же в браузере НЕТ ПРИМЕРА подписания хэша!




Так определите пул задач и смотрите в примерах.
Вычисление хеша для начала, если оно действительно нужно отдельно.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#7 Оставлено : 6 июня 2022 г. 16:07:50(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,162
Мужчина
Российская Федерация

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
Вычисление хэш-значения бинарных данных

Вычисление подписи по хэш-значению

Техническую поддержку оказываем тут
Наша база знаний
Offline dimzon541  
#8 Оставлено : 6 июня 2022 г. 16:17:31(UTC)
dimzon541

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

Группы: Участники
Зарегистрирован: 06.06.2022(UTC)
Сообщений: 11
Российская Федерация

Автор: Андрей * Перейти к цитате
Вычисление хэш-значения бинарных данных

Вычисление подписи по хэш-значению



Это Ваш пример? С Вашего сайта? И он НЕ РАБОТАЕТ. Что не так? Устарел пример?
https://docs.cryptopro.r...-samples-cades-sign-hash

Отредактировано пользователем 6 июня 2022 г. 16:18:25(UTC)  | Причина: Не указана

Offline Андрей *  
#9 Оставлено : 6 июня 2022 г. 16:35:57(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,162
Мужчина
Российская Федерация

Сказал «Спасибо»: 618 раз
Поблагодарили: 2389 раз в 1880 постах
Автор: dimzon541 Перейти к цитате
Автор: Андрей * Перейти к цитате
Вычисление хэш-значения бинарных данных

Вычисление подписи по хэш-значению



Это Ваш пример? С Вашего сайта? И он НЕ РАБОТАЕТ. Что не так? Устарел пример?
https://docs.cryptopro.r...-samples-cades-sign-hash


он работает,
если используется другой алгоритм (сертификат) - будет ошибка. Если это не понятно, нужно начинать с теории, а не с копипаста.

Аналогичные проблемы и с RSA.
Для этого есть примечания\примеры и где смотреть.

Это смотрели?
Техническую поддержку оказываем тут
Наша база знаний
Offline dimzon541  
#10 Оставлено : 6 июня 2022 г. 17:19:24(UTC)
dimzon541

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

Группы: Участники
Зарегистрирован: 06.06.2022(UTC)
Сообщений: 11
Российская Федерация

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

он работает,
если используется другой алгоритм (сертификат) - будет ошибка. Если это не понятно, нужно начинать с теории, а не с копипаста.

Аналогичные проблемы и с RSA.
Для этого есть примечания\примеры и где смотреть.

Это смотрели?

Смотрели естественно.
Тестовый сертификат который выдается и устанавливается "по умолчанию" когда ни одного нет не работает с данным примером.
Проблема решена использованием другого хэша.

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.