我正在使用WinTrust.dll的WinVerifyTrust方法来验证我的dll的数字签名是否有效。但是,如果我创建自己的证书和自签名证书颁发机构并将其添加到我的计算机上的根存储中,WinVerifyTrust()仍然会返回true。
是否有其他选项可以验证我的数字签名是否有效?
P.S。不能使用X509Certificates.Verify()方法。
答案 0 :(得分:2)
WinVerifyTrust将始终检查商店以验证数字签名。将根和证书添加到TRUSTED根存储意味着您信任这些证书,因此信任签名。如果要从受信任存储中删除这些证书,则验证将失败(取决于您设置的标志)。试着看WinVerifyTrustEx
答案 1 :(得分:0)
如果您不介意使用外部工具,建议您使用sysinternal的sigcheck。它很小,可靠且易于使用。如果愿意,它可以将结果导出到csv文件中。