我需要在 .NET 应用程序中解密消息并验证签名。
我尝试使用 EnvelopedCms.Decrypt(X509Certificate2Collection) 和 SignedCms.CheckSignature(X509Certificate2Collection, bool)。这些方法效果很好,但是它们将证书集合视为附加证书;他们也总是使用来自系统存储的证书。
是否有仅使用提供的证书集合来解密和验证签名的标准方法?我在系统存储中有几个证书,如果客户端 A 签名的消息来自客户端 B,则它们应该被拒绝。