如何为开发适合于MimeKit消息签名的自签名证书?
MimeKit具有自己的CmsSigner。当我尝试将证书加载到MimeKit CmsSigner中时:
X509Certificate2 cert = new X509Certificate2(@"cert.pfx", "xpto", X509KeyStorageFlags.Exportable);
var signer = new MimeKit.Cryptography.CmsSigner(cert);
它抛出:
“证书不能用于签名。”
答案 0 :(得分:0)
问题在于,CmsSign使用的默认算法必须与用于创建证书密钥的算法(在我的情况下为SHA1)相同。
这里是如何加载S / MIME证书的:
X509Certificate2 cert = new X509Certificate2(@"ca.p12", "xpto", X509KeyStorageFlags.Exportable);
var signer = new CmsSigner(cert);
signer.DigestAlgorithm = DigestAlgorithm.Sha1;
MultipartSigned.Create( signer, mimeMessage.Body);