用python实现时间戳查询

用python实现时间戳查询,python,openssl,timestamp,trusted-timestamp,Python,Openssl,Timestamp,Trusted Timestamp,我想使用以下命令创建一个类似openssl的.tsq文件: openssl ts-query-data-no\u nonce-sha512-out 我想用python实现这一点,任何人都知道如何做到这一点,任何模块或类似的东西吗?现在我可以想到三种不同的方法: 使用一些质量未知的预制python模块,如@J.F.Sebastian在其评论中提到的 用于计算要加时间戳的数据的SHA512哈希,然后用于构造和编码中定义的TimeStampReq请求结构 用于计算要加时间戳的数据的SHA512哈希,并

我想使用以下命令创建一个类似openssl的.tsq文件:

openssl ts-query-data
-no\u nonce-sha512-out


我想用python实现这一点,任何人都知道如何做到这一点,任何模块或类似的东西吗?

现在我可以想到三种不同的方法:

  • 使用一些质量未知的预制python模块,如@J.F.Sebastian在其评论中提到的
  • 用于计算要加时间戳的数据的SHA512哈希,然后用于构造和编码中定义的
    TimeStampReq
    请求结构
  • 用于计算要加时间戳的数据的SHA512哈希,并将这些字节预先挂起哈希值
    0x30 0x56 0x02 0x01 0x01 0x30 0x51 0x30 0x0D00D 0x06 0x09 0x60 0x86 0x48 0x01 0x65 0x03 0x04 0x02 0x03 0x05 0x00 0x04 0x40
    。这应该适用于您,因为您提供的OpenSSL命令正在创建不包含任何可变部分(如nonce或policy OID)的TS请求,因此无论您将使用什么输入数据,请求结构的第一部分都不会更改

  • 下面是第三个想法的Python 3实现,来自:

    #/usr/bin/env蟒蛇3
    “”“仿真`openssl ts-query-data-no\u nonce-sha512-out”`
    用法:%(程序)s[]
    如果未给出,请使用名称并附加“.tsq”后缀
    """
    导入hashlib
    导入系统
    从functools导入部分
    def哈希_文件(文件名,哈希类型,chunksize=2**15,bufsize=-1):
    h=hashtype()
    打开(文件名为'rb',bufsize)作为文件:
    对于iter中的块(部分(file.read,chunksize),b“”):
    h、 更新(块)
    返回h
    try:#解析命令行参数
    文件名,*out_filename=sys.argv[1:]
    out_filename.append(filename+'.tsq')
    除值错误外:
    sys.exit(_doc__%dict(prog=sys.argv[0]))
    h=hash_文件(文件名,hashlib.sha512)#查找输入文件的hash
    以open(out_filename[0],'wb')作为文件:#写入时间戳查询
    write(b'0V\x02\x01\x010Q0\r\x06\t`\x86H\x01'
    b'e\x03\x04\x02\x03\x05\x00\x04@)
    file.write(h.digest())
    
    要展开,如果要使用sha-256(或任何256位哈希函数)进行哈希,请使用以下常量:

    b'06\x02\x01\x01010\r\x06\t`\x86H\x01e\x03\x04\x02\x01\x05\x00\x04 '
    
    (是的,最后一个字符是空白)

    相关:。有
    b'06\x02\x01\x01010\r\x06\t`\x86H\x01e\x03\x04\x02\x01\x05\x00\x04 '