我试图更新进行数字签名的功能,我想从SHA1 SHA256 切换这是当前功能:数字标牌从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专业64工作,Win7专业版64
CryptographicException是否存在InnerException?事件日志中的任何内容? – paulmey 2011-04-18 16:44:30
InnerException为空,事件日志中没有消息 – 2011-04-19 09:26:34