如何使用证书和私钥对电子邮件进行签名?

时间:2015-05-01 03:45:08

标签: c# winforms ssl smime mimekit

所以我正在尝试使用已由用户选择的X509Certificate2签署电子邮件。我一直在尝试使用MimeKit来做这个,但是这个文档看起来很旧。

这就是他们告诉你在github页面上做到这一点的方法(找到here

using (var ctx = new MySecureMimeContext ()) {
    var certificate = GetJoeysX509Certificate ();
    var signer = new CmsSigner (certificate);
    signer.DigestAlgorithm = DigestAlgorithm.Sha1;

    message.Body = MultipartSigned.Create (ctx, signer, body);
}

我遇到的第一个问题是以上是使用

Org.BouncyCastle.X509.X509Certificate 

我从X509Store()获取证书,该证书使用

System.Security.Cryptography.X509Certificates.X509Certificate2

X509Store store = new X509Store("My");

store.Open(OpenFlags.ReadOnly);

// bind to dropdownlist for user to select...

store.Close();

这表明我应该使用其他方法检索我的证书列表(我无法找到任何文档)。

我的第二个问题是,CmsSigner需要第二个参数(AsymmetricKeyParameter),而不是一个,如示例中所示。

所以我的问题是:

  • 如何使用MimeKit获取证书列表?
  • 如何获得AsymmetricKeyParameter?

0 个答案:

没有答案