跳转到主要内容

使用pyasn1实现的RFC3161规范的Python实现。

项目描述

https://img.shields.io/pypi/l/rfc3161ng.svg CI Status Latest PyPI version Supports Wheel format

一个简单的客户端库,用于实现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 (22.4 kB 查看哈希值)

上传时间 源代码

构建分布

rfc3161ng-2.1.3-py2.py3-none-any.whl (9.9 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者