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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline IgorDID  
#1 Оставлено : 26 марта 2020 г. 6:34:02(UTC)
IgorDID

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

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

Поблагодарили: 1 раз в 1 постах
Добрый день!
Подскажите, существует ли возможность создать чистую (не PKCS#7) подпись данных (например 512 бит на выходе для ГОСТ 2012-256) на C#
не используя дополнительных компонентов кроме чистого .NET и имеющихся в системе API ?
И как это сделать ?

Используется .NET Framework 4.0, КриптоПРО CSP 4.0

P.S.
Обычную подпись PKCS#7 создать получается. Она содержит подписанные атрибуты (как минимум дату подписи).
Как альтернативу, рассматривали идею создания PKCS#7 без подписанных атрибутов с последующим извлечением блока данных подписи из ASN.1,
но пока тоже не понял, как можно создать подпись без подписанных атрибутов. Может быть этот вариант возможен и проще ?

Online Андрей *  
#2 Оставлено : 26 марта 2020 г. 7:43:54(UTC)
Андрей *

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

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

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


Особенности создания подписанных CMS сообщений в КриптоПро CSP 3.6 и выше

Цитата:
Добавление атрибутов на всём компьютере регулируется параметром реестра AddEsAttribute. Если данный параметр отсутствует, то добавление дополнительных атрибутов будет производиться. Для того, чтобы отключить добавление атрибутов, нужно добавить параметр AddEsAttribute типа DWORD и значением 0 в ветку реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Cryptography\CurrentVersion\Parameters".
Техническую поддержку оказываем тут
Наша база знаний
Offline IgorDID  
#3 Оставлено : 27 марта 2020 г. 12:59:29(UTC)
IgorDID

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

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

Поблагодарили: 1 раз в 1 постах
Спасибо за совет. Данная информация в работе с C# к сожалению не помогла,
удалось найти решение, как создать подпись без подписанных атрибутов и вложенного сертификата,
чтобы далее извлечь из PKCS#7 структуры чистые байты подписи.

Код:

ContentInfo contentInfo 		= new ContentInfo(content);
SignedCms signedCms 			= new SignedCms(contentInfo, separateSign);	//separateSign = true
// X509Certificate2 cert
var cmsSigner 					= new CmsSigner(cert);
cmsSigner.IncludeOption 		= X509IncludeOption.None;
cmsSigner.SignerIdentifierType 	= SubjectIdentifierType.SubjectKeyIdentifier;
signedCms.ComputeSignature(cmsSigner);
byte[] result = signedCms.Encode();
thanks 1 пользователь поблагодарил IgorDID за этот пост.
dimabrn оставлено 16.01.2023(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.