跳转到主要内容

IETF时间戳协议(TSP)(RFC 3161)客户端

项目描述

tsp-client是Python中实现RFC 3161 TSP协议的实现。

TSP用于在时间点进行证明和时间不可抵赖性,作为各种电子签名和代码签名方案的组成部分,包括eIDAS XAdES(tsp-client被SignXML用于实现XAdES)。

安装

pip install tsp-client

摘要

from tsp_client import TSPSigner, TSPVerifier

# Sign a message online by transmitting its digest to the timestamp authority
message = b"abc"
signer = TSPSigner()
signed = signer.sign(message)  # Returns raw bytes of the verified timestamp token.

# Verify a presented timestamp token offline using the original message
verified = TSPVerifier().verify(signed, message=message)

# Or sign and verify using the message digest (digest algorithm may vary)
import hashlib

digest = hashlib.sha512(message).digest()

signer.sign(message_digest=digest)
verified = TSPVerifier().verify(signed, message_digest=digest)

print(verified.tst_info)  # Parsed TSTInfo (CMS SignedData) structure
print(verified.signed_attrs)  # Parsed CMS SignedAttributes structure

指定自定义TSA

要提供带有非抵赖性验证的带时间戳的签名,TSP在生成时间戳令牌时需要使用TSA(时间戳权威)服务器。TSA服务器可以被视为数字公证人。可以使用您的系统证书机构(CA)的信任存储进行离线验证令牌。

默认情况下,tsp-client在签名令牌时使用DigiCert TSA服务器。要使用不同的TSA,将SigningSettings.tsp_server属性设置为以下内容

from tsp_client import TSPSigner, TSPVerifier, SigningSettings
signing_settings = SigningSettings(tsp_server="http://timestamp.identrust.com")
signer = TSPSigner()
signed = signer.sign(message, signing_settings=signing_settings)

目前没有可信的公共TSA提供HTTPS传输安全且不应用限流。DigiCert提供了一个相对高吞吐量的公共TSA端点,但您的消息摘要和令牌将通过未加密的网络进行传输。作为替代方案,Sectigo提供HTTPS TSA(https://timestamp.sectigo.com),但应用了限流,因此只适用于低吞吐量应用。

欧盟在eIDAS仪表板中维护了一个可信TSA列表,然而,此列表仅作为信任根,并不直接链接到列出提供者的TSA端点。

作者

  • Andrey Kislyuk

许可

版权所有 2022-2023,Andrey Kislyuk和tsp-client贡献者。根据Apache License,版本2.0许可。按照Apache License的指定,在源代码副本和衍生作品中分发LICENSE和NOTICE文件是必需的

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

tsp-client-0.2.0.tar.gz (17.2 kB 查看哈希值)

上传时间 源代码

构建分发

tsp_client-0.2.0-py3-none-any.whl (13.3 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面