我試圖更新進行數字簽名的功能,我想從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