0

そのため、ユーザーが選択した X509Certificate2 を使用して電子メールに署名しようとしています。私は MimeKit を使用してこれを実行しようとしましたが、これに関するドキュメントは古いようです。

これは、githubページでこれを行うように指示する方法です(ここにあります

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();

これは、他の方法 (ドキュメントを見つけることができなかった方法) を使用して、証明書のリストを取得する必要があることを示唆しています。

私の 2 番目の問題は、例に示すように、CmsSigner が 1 つではなく 2 番目の引数 (AsymmetricKeyParameter) を必要とすることです。

だから私の質問は:

  • MimeKit を使用して証明書のリストを取得するにはどうすればよいですか?
  • AsymmetricKeyParameter を取得するにはどうすればよいですか?
4

1 に答える 1