Mimekit 在验证时安装证书

Mimekit installing certificates upon verify

我正在使用 MimeKit 验证 SMIME 多部分签名消息是否由特定实体签名。我有这个实体的 public 证书。在 MultipartSigned 对象上调用 Verify(context) 时,证书正在导入到服务器证书列表中。我想要的是,如果找不到证书,则会出现此错误。否则,如果恶意用户签署了一个文件,它将通过,更糟糕的是,我最终会安装他的证书。

我的推理有问题吗?

这是我正在使用的代码。

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.
        }                    
    }
}

证书存储在您的证书库中并不意味着它是可信的,它只意味着它是已知的。

就这些了。

这允许您稍后将其标记为受信任,还允许您的系统检查吊销。