logo Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

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

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

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

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

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

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

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

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

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

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


Особенности создания подписанных 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
Мужчина
Российская Федерация
Откуда: Россия

Спасибо за совет. Данная информация в работе с 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();
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.