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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline marcello  
#1 Оставлено : 10 февраля 2024 г. 12:17:09(UTC)
marcello

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

Группы: Участники
Зарегистрирован: 10.03.2009(UTC)
Сообщений: 6

Сказал(а) «Спасибо»: 1 раз
Добрый день!

Есть действующий сертификат, выданный ФНС. От этого сертификата строится цепочка: ФНС (до 15.11.2037) и Минцифры России (до 08.01.2040).

На Windows 10 cоздаю открепленную подпись для строки xString (WideString) в Delphi 10.1 Berlin.

Код:
var
	Certificate, Signer, SignedData : OleVariant;
	Result : WideString;
begin
	...
	Signer := CreateOleObject('CAdESCOM.CPSigner');
	Signer.Certificate := Certificate;
	Signer.Options := 0;

	SignedData := CreateOleObject('CAdESCOM.CadesSignedData');
	SignedData.Content := xString;
	Result := SignedData.SignCades( Signer, 1, true );

    TFile.WriteAllText( fileIn, xString );
    TFile.WriteAllText( fileOut, Result );
	...
end


Делаю проверку на Госуслугах https://www.gosuslugi.ru/eds, получаю ответ
Цитата:
Статус подписи - Подпись НЕДЕЙСТВИТЕЛЬНА
Статус сертификата подписи - Не проверялся
Проверка на https://dss.cryptopro.ru/verify выдает
Цитата:
Формат подписи - CAdES-BES
Результат проверки - Подпись недействительна
Подпись не соответствует документу. Возможно, на проверку был передан неправильный документ или документ был изменён. Ошибка: [Неправильное значение хеша] (0x80091007).Сообщение содержит неверную подпись

Тем же сертификатом делаю подпись файла с той же строкой xString утилитой csptest.exe

c:\Program Files\Crypto Pro\CSP\csptest.exe -sfsign -sign -detached -in ...body.txt -out ...body.txt.sig -my <thumbprint> -base64 -add


На этот раз проверка на Госуслугах выдает
Цитата:
Статус подписи - Подпись ДЕЙСТВИТЕЛЬНА
Статус сертификата подписи - ДЕЙСТВИТЕЛЕН, сертификат выдан аккредитованным удостоверяющим центром для юридического лица
cryptopro.ru/verify выдает
Цитата:
Формат подписи - CAdES-BES
Результат проверки - Подпись действительна

Полагаю, что для получения подписи использовать csptest.exe не совсем правильно. Что я делаю не так с CADESCOM? В какую сторону копать, чтобы оно заработало?

P.S. Через CADESCOM выходной файл с подписью весит 7582 байт, а csptest.exe выдает файл в 4828 байт.
Offline Андрей *  
#2 Оставлено : 10 февраля 2024 г. 14:25:52(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Здравствуйте

Не использовать widestring, передавать в base64, предварительно указав на кодировку данных.

Смотреть пример и примечание в примерах для плагина, через js
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 10 февраля 2024 г. 14:29:11(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Вот готовый пример

https://www.cryptopro.ru...&m=107336#post107336
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
marcello оставлено 10.02.2024(UTC)
Offline marcello  
#4 Оставлено : 10 февраля 2024 г. 17:32:56(UTC)
marcello

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

Группы: Участники
Зарегистрирован: 10.03.2009(UTC)
Сообщений: 6

Сказал(а) «Спасибо»: 1 раз
Спасибо, все получилось.

В моем случае требовалась подпись строки, так что заполнение буфера сделал через
Код:
StringStream := TStringStream.Create(xString, TEncoding.UTF8);
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.