使用pyasn1实现的RFC3161规范的Python实现。
项目描述
一个简单的客户端库,用于实现RFC3161协议的加密时间戳服务。
该项目最初是https://dev.entrouvert.org/projects/python-rfc3161的一个分支,并添加了一些额外的补丁,如Python3支持。
此库的最新版本可在https://github.com/trbs/rfc3161ng/找到。
公共提供者
周围有几个时间戳服务。以下是可以尝试的公开服务列表
示例
>>> import rfc3161ng >>> certificate = open('data/certum_certificate.crt', 'rb').read() >>> rt = rfc3161ng.RemoteTimestamper('http://time.certum.pl', certificate=certificate) >>> tst = rt.timestamp(data=b'John Doe') >>> rt.check(tst, data=b'John Doe') True >>> rfc3161ng.get_timestamp(tst) datetime.datetime(2017, 8, 31, 15, 42, 58, tzinfo=tzutc())
要求SHA256的服务器示例
>> import rfc3161ng >> timestamper = rfc3161ng.RemoteTimestamper(’https://interop.redwax.eu/test/timestamp’, hashname=’sha256’) >> tsr = timestamper(data=b’The RedWax Project’, return_tsr=True) >> print(‘{}’.format(tsr))
使用OpenSSL验证时间戳
可以使用OpenSSL通过timeserver验证返回的时间戳。例如,使用以下命令
$ openssl ts -verify -data data_file.txt -in data_file.tsr -CAfile cacert.pem -untrusted tsa.crt
要保存tsr,可以使用类似以下代码
>>> from pyasn1.codec.der import encoder >>> import rfc3161ng >>> ... >>> timestamper = rfc3161ng.RemoteTimestamper('http://freetsa.org/tsr', certificate=certificate_data) >>> tsr = timestamper(data=data_file.read(), return_tsr=True) >>> with open("data_file.tsr", "wb") as f: >>> f.write(encoder.encode(tsr))
或者,您可以直接保存来自认证服务器的原始response.content。
在test_verify_timestamp_response_with_openssl中也有一个测试覆盖了这一点。
项目详情
关闭
rfc3161ng-2.1.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1e88614da61b22abd591577f9dd39d3a030335f9e8a12d8bc001149c17d0a01e |
|
MD5 | f127d923a78e63ddcf4c060608faf4b3 |
|
BLAKE2b-256 | 87ab7b1cc11019fb63d9420093ed9ff339ea544d0158141ac0daf33961a200cf |
关闭
rfc3161ng-2.1.3-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 81fe7e4488f523c758b1206bf5e72ba2066b78f2812107b1b7bb16a7596e524b |
|
MD5 | 7d54c9751072f9cb36e77b36259d477f |
|
BLAKE2b-256 | 6c66cf13725b4ad06527ca482c99202a683ca3b35586eec9bad5f9e19efb43b9 |