Статус: Новичок
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 03.12.2022(UTC) Сообщений: 4
Сказал(а) «Спасибо»: 1 раз
|
Поправил, картинкой выкладывать не хорошо. Наверно и не в ту ветку создал вопрос
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close