【问题标题】:Given two certificates, how can I verify that one was signed with the other's private key?给定两个证书,我如何验证一个是用另一个的私钥签名的?
【发布时间】:2012-09-13 06:16:19
【问题描述】:

我有两个X509Certificate2s。打电话给他们toCheckcheckWith

如何检查toCheck 是否由checkWith 的私钥签名?

基本上,我想要 Java 的 C# 等价物

toCheck.verify(checkWith.getPublicKey());

谢谢

【问题讨论】:

    标签: c# certificate x509certificate x509certificate2


    【解决方案1】:

    我不确定那会有什么价值。如果用于签名 (checkWith) 的证书被吊销怎么办?听起来你会有一种错误的确认感。

    如果你想验证一个证书,你可以使用X509Certificate2.Verify方法

    【讨论】:

    • 价值在于确认 toCheck 是由 checkWith 签名的。也就是说,除了普通的验证(cert是合法的,dates是合法的,signer not revoked等)之外,我还想知道checkWith签名了。
    • 验证验证证书是否由有效证书签名...仅检查证书是否由另一个签名并不意味着签名证书有效...验证验证整个证书链.
    • 我明白这一点。但是检查证书是否“由有效证书签名”不足以满足我的目的。我想知道它是由这个有效的证书签名的。
    • 据我所知,签名不可用。虽然您可以根据 GetRawCertData 的结果计算签名,但没有什么可以与之比较的。验证证书的推荐方法是使用 X509Chain。如果您从 DER 数据创建证书,您可以手动提取签名,计算与其他证书的签名并比较...
    猜你喜欢
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 2022-07-25
    • 2011-05-05
    • 2020-04-23
    • 1970-01-01
    相关资源
    最近更新 更多