1

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

1 回答 1

1

在证书存储中拥有证书并不意味着它是受信任的,它只是意味着它是已知的。

就这样。

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

于 2017-03-07T15:02:46.020 回答