そのため、ユーザーが選択した 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 を取得するにはどうすればよいですか?