gpt4 book ai didi

c# - 在 .NET 中解密和检查签名时如何忽略系统存储?

转载 作者:太空狗 更新时间:2023-10-29 23:51:58 27 4
gpt4 key购买 nike

我需要在 .NET 应用程序中解密消息并验证签名。

我尝试使用 EnvelopedCms.Decrypt(X509Certificate2Collection) 和 SignedCms.CheckSignature(X509Certificate2Collection, bool)。这些方法运行良好,但是它们将证书集合视为附加 证书;他们也总是使用系统商店的证书。

是否有一种标准方法可以提供的证书集合来解密和验证签名?我在系统存储中有多个证书,如果来自客户端 B 的客户端 A 签名的消息应该被拒绝。

最佳答案

您可能需要定义自定义验证方法:

检查此链接:http://8r13n.wordpress.com/2007/07/24/bypassing-certificate-validation-in-net/

一个虚拟的实现是这样的:

public static bool TrustAllCertificatesCallback(
object sender, X509Certificate cert,
X509Chain chain, SslPolicyErrors errors)
{
return true;
}

然后您将设置 ServerCertificateValidationCallback 的值:

// Call this at the start of your app
ServicePointManager.ServerCertificateValidationCallback =
TrustAllCertificatesCallback;

更新

如果您想检查 SignedCms 的发件人,您可以使用 Certificates property ,它将保存客户的证书。

关于c# - 在 .NET 中解密和检查签名时如何忽略系统存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563432/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com