X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindBySerialNumber, "1200647108d32ff1de1bbe07cf000200647108", false);
X509Certificate2 c = certificates.First();
//var pKey = c.GetGost3410_2012_256PublicKey();
//var pKey = c.GetGost3410_2012_256PrivateKey();
var pdfBytes = File.ReadAllBytes(GetFullPath("Files\\report.pdf"));
ContentInfo contentInfo = new ContentInfo(pdfBytes);
// Создаем объект SignedCms по только что созданному
// объекту ContentInfo.
// SubjectIdentifierType установлен по умолчанию в
// IssuerAndSerialNumber.
// Свойство Detached устанавливаем явно в true, таким
// образом сообщение будет отделено от подписи.
SignedCms signedCms = new SignedCms(contentInfo, true);
// Определяем подписывающего, объектом CmsSigner.
CmsSigner cmsSigner = new CmsSigner(c);
// Подписываем CMS/PKCS #7 сообение.
Console.Write("Вычисляем подпись сообщения для субъекта " +
"{0} ... ", c.SubjectName.Name);
signedCms.ComputeSignature(cmsSigner);
Console.WriteLine("Успешно.");
// Кодируем CMS/PKCS #7 подпись сообщения.
var sign = signedCms.Encode();
File.WriteAllBytes(GetFullPath("Files\\report.pdf.sig"), sign);
на строке signedCms.ComputeSignature(cmsSigner);
System.Security.Cryptography.CryptographicException: 'Could not determine signature algorithm for the signer certificate.'
удалял старые версии КриптоПро.NET и устанавливал заново, не помогло
при обращении к c.PrivateKey
System.NotSupportedException: 'The certificate key algorithm is not supported.'
Отредактировано пользователем 9 июля 2024 г. 21:37:44(UTC)
| Причина: Не указана