【问题标题】:TimeStampResponse时间戳响应
【发布时间】:2011-05-24 21:35:29
【问题描述】:

我正在使用 Bouncy Castle 从 .NET 中的时间戳服务器读取响应。现在我想向客户端显示时间戳服务器证书,如何从响应中读取时间戳服务器证书?

提前致谢。

【问题讨论】:

    标签: c# .net bouncycastle trusted-timestamp rfc3161


    【解决方案1】:

    RFC 3161 的相关部分:

    如果 certReq 字段存在并设置为 true,则 TSA 的公钥 由 ESSCertID 标识符引用的证书 响应中的 SigningCertificate 属性必须由 来自 SignedData 结构的证书字段中的 TSA 回复。该字段还可能包含其他证书。

    因此,首先,您需要确保请求中的 certReq 为 true。这是 Org.BouncyCastle.Asn1.Tsp.TimeStampReq 构造函数中的一个选项。

    然后,响应将包含证书,并且由于其中可能还有其他证书,因此您需要找出用于时间戳签名的证书:

    TimeStampResponse resp = ...;
    TimeStampToken tsToken = resp.TimeStampToken;
    IX509Store store = tsToken.GetCertificates("Collection");
    SignerID signerID = tsToken.SignerID;
    ICollection matches = store.GetMatches(signerID);
    

    “匹配”集合中应该只有一个证书。

    【讨论】:

      猜你喜欢
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-01
      • 2021-11-22
      • 2023-03-19
      相关资源
      最近更新 更多