使用javascript解析时间戳响应文件(tsr)

时间:2017-10-06 00:21:51

标签: javascript python cryptography asn.1

此代码是用python编写的:

from asn1crypto import tsp, cms, util
response_file = open('timestamp-response.tsr','rb')
response = tsp.TimeStampResp.load(response_file.read())

token = response['time_stamp_token']
signed_data = token['content']
encap_content_info = signed_data['encap_content_info']
tst_info = encap_content_info['content'].parsed
signer_infos = signed_data['signer_infos']
signer_info = signer_infos[0]
signed_attrs = signer_info['signed_attrs']
signature = signer_info['signature']

我无法使用javascript找到执行相同操作的方法,即使库的api看起来也一样。

有用的链接:

https://kjur.github.io/jsrsasign/api/symbols/KJUR.asn1.tsp.TimeStampResp.html https://github.com/wbond/asn1crypto/blob/master/asn1crypto/tsp.py

2 个答案:

答案 0 :(得分:1)

我不知道任何现成的库,但我相信应该可以使用ASN1.js来解析来自RFC3161TimeStampResp结构并提取数据需要。

当您拥有其ASN.1定义时,解析DER编码结构与解析XML结构时的XSD定义相同,但在您熟悉ASN.1之前可能需要更多时间。

答案 1 :(得分:1)

您可以尝试pkijs。我没有在时间戳上尝试它(只有x509证书),但似乎这个库确实支持它。它在封面下使用asn1js。

  

时间戳请求:

     
      
  • 解析内部值
  •   
  • 获取/设置任何内部值
  •   
  • 从头开始创建新的时间戳请求"
  •   
  • 验证时间戳请求签名
  •   
     

时间戳响应:

     
      
  • 解析内部值
  •   
  • 获取/设置任何内部值
  •   
  • 从头开始创建新的时间戳响应"
  •   
  • 验证时间戳响应签名
  •