我使用SignedXml.CheckSignature(X509Certificate2, boolean)方法。我想知道在确定证书的有效性时执行了哪些检查。我已经确认已选中“当前用户/非受信任”列表。文档说它将使用"地址簿"存储,按主题密钥标识符搜索,以构建证书链。我想这意味着本地计算机和当前用户证书存储?
我是否认为不会检查证书撤销和签名时间戳?要对证书撤销进行OCSP检查,我是否有义务使用Bouncy Castle?
答案 0 :(得分:0)
在msdn article you link to的评论中发现:
在.NET Framework 1.1版中,未验证X.509证书。
在2.0及更高版本中,验证了X.509证书。 在.NET Framework 2.0及更高版本中,CheckSignature方法将在“AddressBook”存储中搜索适合验证的证书。例如,如果证书由主题密钥标识符(SKI)引用,则CheckSignature方法将选择具有此SKI的证书并逐个尝试,直到它可以验证证书。
因此,首先,该方法的行为在不同的.NET框架版本中已经发生了变化。因此,对于可重现的结果,您最好不要依赖该方法,甚至根本不检查证书。
此外,制定一个接一个地尝试它们,直到它可以验证证书听起来像是否可能是数学测试证书是否由其所谓的发行人签署。
答案 1 :(得分:0)
检查