MimeKit
SMIME マルチパート署名付きメッセージが特定のエンティティによって署名されていることを確認するために使用しています。このエンティティの公開証明書を持っています。オブジェクトを呼び出すVerify(context)
とMultipartSigned
、証明書がサーバーの証明書リストにインポートされます。私が望むのは、証明書が見つからない場合にこのエラーが発生することです。そうしないと、悪意のあるユーザーがファイルに署名した場合にファイルが通過し、さらに悪いことに、彼の証明書がインストールされてしまうことになります。
ここで私の推論に欠陥がありますか?
これは私が使用しているコードです。
var signed =(MultipartSigned)MimeEntity.Load(ParserOptions.Default,@"C:\mysignedfile.txt");
using (var context = new WindowsSecureMimeContext(StoreLocation.LocalMachine))
{
foreach (var signature in signed.Verify(context))// This install the certificate!
{
try
{
bool valid = signature.Verify();
}
catch (DigitalSignatureVerifyException)
{
throw;
// There was an error verifying the signature.
}
}
}