Mimekit在验证时安装证书

时间:2017-03-07 08:30:10

标签: c# smime mimekit

我正在使用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.
        }                    
    }
}

1 个答案:

答案 0 :(得分:1)

将证书放在证书库中并不意味着它是受信任的,只是意味着它已知。

就是这样。

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