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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline festvtteam  
#1 Оставлено : 22 июля 2026 г. 12:58:13(UTC)
festvtteam

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день! формирую sig для больших файлов (2+Гб). Подписываю их хэши. Но при проверке КриптоАрм получаю что подпись не действительна.

Код:

var cert = InstanceTemplate.Invoke("ChooseSertificate", null) as X509Certificate2;
if (cert == null)
    return null;

//------------------------

//считаем хэш файла
byte[] hashValue;
using (var gostHashAlg = CryptoPro.Sharpei.Gost3411_2012_256.Create())
using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
    hashValue = gostHashAlg.ComputeHash(fs);

//------------------------

//формируем ASN строку
var res = new byte[2 + hashValue.Length];
res[0] = 0x04;
res[1] = (byte)hashValue.Length;
Buffer.BlockCopy(hashValue, 0, res, 2, hashValue.Length);

//Создаем подпись
var contentInfo = new ContentInfo(new Oid("1.2.840.113549.1.7.1"), res);
var signer = new SignedCms(contentInfo, true);

var cmsSigner = new CmsSigner(SubjectIdentifierType.IssuerAndSerialNumber, cert)
{
    IncludeOption = X509IncludeOption.WholeChain,
    DigestAlgorithm = new Oid("1.2.643.7.1.1.1.1")
};

//Добавляем Digest
var messageDigestOID = new Oid("1.2.840.113549.1.9.4");
var asnHashData = new AsnEncodedData(messageDigestOID, res);

var asnCollection = new AsnEncodedDataCollection();
asnCollection.Add(asnHashData);

var messageDigestAttr = new CryptographicAttributeObject(messageDigestOID, asnCollection);
cmsSigner.SignedAttributes.Add(messageDigestAttr);

//------------------------

//Установка времени
var signedDate = DateTime.Now;
var pkcs9_time = new Pkcs9SigningTime(signedDate);
cmsSigner.SignedAttributes.Add(pkcs9_time);

signer.ComputeSignature(cmsSigner, true);
var signedCmsEncode = signer.Encode();
File.WriteAllBytes(filePath + ".sig", signedCmsEncode);


Подскажите что не так?

Отредактировано пользователем 22 июля 2026 г. 21:28:31(UTC)  | Причина: Не указана

Offline festvtteam  
#2 Оставлено : 22 июля 2026 г. 21:29:33(UTC)
festvtteam

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

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

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