Я пытаюсь обновить функцию, которая выполняет цифровую подпись, я хочу перейти с SHA1 SHA256
это текущая функция:
private byte[] zSignData(Byte[] msg, X509Certificate2 signerCert)
{
ContentInfo contentInfo = new ContentInfo(msg);
SignedCms signedCms = new SignedCms(contentInfo, false);
CmsSigner cmsSigner = new CmsSigner(signerCert);
cmsSigner.DigestAlgorithm = new Oid("1.3.14.3.2.26"); //SHA1
signedCms.ComputeSignature(cmsSigner, false);
return signedCms.Encode();
}
эта функция хорошо работает
Чтобы обновить до SHA256, я изменил
cmsSigner.DigestAlgorithm = new Oid("1.3.14.3.2.26"); //SHA1
с
cmsSigner.DigestAlgorithm = new Oid("2.16.840.1.101.3.4.2.1");//SHA256
но на
signedCms.ComputeSignature(cmsSigner, false);
Я получаю следующее исключение
System.Security.Cryptography.CryptographicException
Сообщение = Произошла внутренняя ошибка.
У кого-то есть предложение?
Я работаю с VS2010 Professional 64 и win7 professional 64