gpt4 book ai didi

c# - 比较 bouncycaSTLe x509 与 x509certificate2

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:49 25 4
gpt4 key购买 nike

我的用例:我收到来自各个交易对手的电子邮件,它们总是签名的。在我们开始沟通之前我已经收到了他们的证书,因此我有正确的证书。

我需要用他们在向我发送签名电子邮件时使用的证书来验证他们最初发送给我的证书。

我浏览了 stackoverflow 和其他论坛,他们似乎都建议指纹或“GetEncoded”(与 DEREncoded 相同?!)

但是我没能找到任何声明这是正确的“官方来源”。

所以我需要的是一些官方来源,说明 X509Certificate2.GetRawCertData 或 Org.BouncyCaSTLe.X509.X509Certificate 是唯一的,因此可以进行比较以检查正确的证书。

我所说的官方资源是指书籍、标准、Microsoft 网站等。

这是我使用 System.Security.Cryptography.X509Certificates.X509Certificate2 验证 Org.BouncyCaSTLe.X509.X509Certificate 的代码:

Org.BouncyCastle.X509.X509Certificate signerCertificate = ((SecureMimeDigitalCertificate)signature.SignerCertificate).Certificate;
System.Security.Cryptography.X509Certificates.X509Certificate2 localCertificate = new X509Certificate2(@"xxx.crt");
bool areEqual =
StructuralComparisons.StructuralEqualityComparer.Equals(signerCertificate.GetEncoded(),
localCertificate.GetRawCertData());

你能帮我找到这样的资源或给我指明正确的方向吗?

最佳答案

比较证书的具体用例是什么?

接收签名电子邮件时的正常用例是您想要验证签名以确保邮件是真实的。这不是通过将收到的证书与您存储的证书进行比较来完成的。您应该做的是验证数字签名,验证它们链接到受信任的(由您)根的证书。如果您事先有发件人证书,您当然可以认为这是可信的,只需使用您存储的证书来验证收到的消息的签名。在这种情况下,您可以忽略签名电子邮件中的证书。

您所做的就是通过使用您信任的公钥(在证书中)验证数字签名来验证用于签署消息的私钥实际上属于您认为它属于的人。

关于c# - 比较 bouncycaSTLe x509 与 x509certificate2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23929708/

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