【发布时间】:2012-05-30 00:42:45
【问题描述】:
我有以下代码,但是当我运行代码时收到错误 System.Security.Cryptography.CryptographicException: 找不到原始签名者。, 为什么会这样?是不是因为我的证书设置不正确?
public byte[] GetSignature(string message, X509Certificate2 signingCertificate,
X509Certificate2 encryptionCertificate)
{
byte[] messageBytes = Encoding.ASCII.GetBytes(message);
SignedCms signedCms = new SignedCms(new ContentInfo(messageBytes), true);
CmsSigner cmsSigner = new CmsSigner(SubjectIdentifierType.IssuerAndSerialNumber, signingCertificate);
cmsSigner.IncludeOption = X509IncludeOption.WholeChain;
if (encryptionCertificate != null)
{
cmsSigner.Certificates.Add(encryptionCertificate);
}
Pkcs9SigningTime signingTime = new Pkcs9SigningTime();
cmsSigner.SignedAttributes.Add(signingTime);
signedCms.ComputeSignature(cmsSigner, false);
return signedCms.Encode();
}
【问题讨论】:
标签: .net x509certificate