用python实现时间戳查询
我想使用以下命令创建一个类似openssl的.tsq文件: openssl ts-query-data用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哈希,并
-no\u nonce-sha512-out
我想用python实现这一点,任何人都知道如何做到这一点,任何模块或类似的东西吗?现在我可以想到三种不同的方法:
TimeStampReq
请求结构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 '