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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Александр_Pyankov_  
#1 Оставлено : 24 октября 2024 г. 13:06:02(UTC)
Александр_Pyankov_

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

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

Сказал(а) «Спасибо»: 4 раз
С недавнего времени для запросов в ФССП через СМЭВ стало обязательным требование наличия штампа времени в подписи

Для этого мы на сервер, который занимается подписью - установили компоненты tspsdk.msi и ocspsdk.msi

Подписывает у нас приложение на .net

подскажите пожалуйста, есть ли примеры кода, в которых раскрывается способ добавления штампа времени в подписи SignedXml или SignedCms?

не могу найти рабочие примеры, как подружить результат TspRequest с созданием подписи

Заранее спасибо!
Offline Александр_Pyankov_  
#2 Оставлено : 24 октября 2024 г. 13:09:39(UTC)
Александр_Pyankov_

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

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

Сказал(а) «Спасибо»: 4 раз
Если что, то вот как происходит подписание самого запроса

Код:
 			KeyInfo key = new KeyInfo();
			key.AddClause(new KeyInfoX509Data(cert));

			SignedXml signedXml = new SignedXml(doc);
			
			signedXml.SigningKey = cert.PrivateKey;
			signedXml.KeyInfo = key;

			Reference refNode = new Reference();
			refNode.Uri = $"#{forSignNodeId}";
			refNode.DigestMethod = CPSignedXml.XmlDsigGost3411_2012_256Url;
			refNode.AddTransform(new XmlDsigExcC14NTransform());
			refNode.AddTransform(new XmlDsigSmevTransform());
			signedXml.AddReference(refNode);

			signedXml.SafeCanonicalizationMethods.Add("urn://smev-gov-ru/xmldsig/transform");
			signedXml.SignedInfo.CanonicalizationMethod = SignedXml.XmlDsigExcC14NTransformUrl;
			signedXml.SignedInfo.SignatureMethod = CPSignedXml.XmlDsigGost3410_2012_256Url;

			signedXml.ComputeSignature();

			XmlElement xmlDigitalSignature = signedXml.GetXml();



а вот как происходит создание detached подписи для вложения

Код:
			ContentInfo contentInfo = new ContentInfo(fileContent);
			CmsSigner cmsSigner = new CmsSigner(cert);

			SignedCms signedCms = new SignedCms(contentInfo, true);

			signedCms.ComputeSignature(cmsSigner);

			return signedCms.Encode();
Offline Александр_Pyankov_  
#3 Оставлено : 30 октября 2024 г. 10:20:39(UTC)
Александр_Pyankov_

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

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

Сказал(а) «Спасибо»: 4 раз
В итоге помогла вот эта статья https://habr.com/ru/articles/771162/

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