Skip to main content

No project description provided

Project description

rfc3161-client

rfc3161-client is a Python library implementing the Time-Stamp Protocol (TSP) described in RFC 3161.

It is composed of three subprojects:

  • :crab: tsp-asn1: A Rust crate using rust-asn1 to create the types used by the Time-Stamp protocol. This crate depends on rust-asn1 and cryptography to minimize the amount of duplicated code. While it is usable as a standalone crate, this is not officially supported. Drop us a message if you are interested in using it.
  • :crab: rfc3161-client: Another Rust crate that provides Python bindings to the tsp-asn1 crate using PyO3.
  • :snake: rfc3161-client A Python library using the crate above to provide a usable API to create Timestamp Request and read Timestamp Response.

Goals and anti-goals

  • This library should be correct and provide an accurate implementation of protocol described in the RFC 3161.
  • This library does not perform any network activity, it simply provides primitive to build and verify objects. Network activity must be handled separately.

Usage

There are two parts to timestamping: retrieving + verifying the timestamp.

1. Retrieving a timestamp

The below code uses requests to get the timestamp from the Identrust TSA server:

# /// script
# dependencies = [
#   "requests",
#   "rfc3161-client",
# ]
# ///
import requests
from rfc3161_client import (
    decode_timestamp_response,
    TimestampRequestBuilder,
    VerifierBuilder,
    VerificationError,
)

# the data to sign. Could be a hash or any message. Should be bytes
message = b"Hello, World!"

# build the timestamp request
timestamp_request = (
    TimestampRequestBuilder().data(message).build()
    # Note: you could also add .hash_algorithm(XXX) to specify a specific hash algorithm
)

# TSA servers must be RFC 3161 compliant (see https://github.com/trailofbits/rfc3161-client/issues/46
# for a list of working servers)
tsa_server = "http://timestamp.identrust.com"

# make the request, remember to set content-type headers appropriately
response = requests.post(
    tsa_server,
    data=timestamp_request.as_bytes(),
    headers={"Content-Type": "application/timestamp-query"},
)
response.raise_for_status()

# if successful, should give a valid TimeStampResponse object
timestamp_response = decode_timestamp_response(response.content)

Verifying a timestamp

The second part is to verify the timestamp, this is done against a set of root certificates. In this example, we'll Mozilla's list of root certs provided in the certifi package:

import certifi
from cryptography import x509
import hashlib


# get trusted root certs from certifi
with open(certifi.where(), "rb") as f:
    cert_authorities = x509.load_pem_x509_certificates(f.read())

# for each of the root certs we have, try to verify the TSR with it
root_cert = None
for certificate in cert_authorities:
    verifier = VerifierBuilder().add_root_certificate(certificate).build()
    try:
        verifier.verify_message(timestamp_response, message)
        root_cert = certificate
        break
    except VerificationError:
        continue

# if successful, the TSR was verified and we should have the root cert that signed this TSR :)
print("Here's the root cert that signed your TSR:")
print(root_cert)

License

Copyright 2024 Trail of Bits

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Authors

Trail of Bits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rfc3161_client-1.0.6.tar.gz (106.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rfc3161_client-1.0.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rfc3161_client-1.0.6-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

rfc3161_client-1.0.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

rfc3161_client-1.0.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

rfc3161_client-1.0.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rfc3161_client-1.0.6-cp39-abi3-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.9+Windows x86-64

rfc3161_client-1.0.6-cp39-abi3-win32.whl (2.0 MB view details)

Uploaded CPython 3.9+Windows x86

rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_i686.whl (2.3 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_armv7l.whl (2.1 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (2.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ i686

rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.9 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

rfc3161_client-1.0.6-cp39-abi3-macosx_11_0_arm64.whl (467.4 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

rfc3161_client-1.0.6-cp39-abi3-macosx_10_12_x86_64.whl (475.0 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file rfc3161_client-1.0.6.tar.gz.

File metadata

  • Download URL: rfc3161_client-1.0.6.tar.gz
  • Upload date:
  • Size: 106.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rfc3161_client-1.0.6.tar.gz
Algorithm Hash digest
SHA256 9969262fe6c08ecce39f9fe3996cf412187793834a022a643803090db5aae6b4
MD5 040febc1d31898557fdf76254ed92aa6
BLAKE2b-256 66a7be3b086133a87d595e7b11564931d5e5283edeeabba05dfee636a34b4dab

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6.tar.gz:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 940e1fc95ec0ca734927a82bcb5363fa988ef1a085d238ff0c861f29c0cfb746
MD5 2f69e1f6c61cea8b87c808c2858bbf0e
BLAKE2b-256 e1c208be1373dd4ca4382472a4e97be300a9db3f974f35093b33e54abbced4e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 78cdc6bde331492cb94f69328831d5c56b271012b00c6f1784c2e4b33837d585
MD5 7656dd8ce99d3ad210f8571fafabea64
BLAKE2b-256 06c8b486981966e9d4e754c6720bdaeeef2b59bc176cbeef5f3b30aa718c89a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e16ed34f6f33fd62aa3b1f83615ecf2f96e1b1f57df4e1a36570b3f895333972
MD5 5794ee2bf7c6899aae498e865a93ddc8
BLAKE2b-256 44f699d15883d564235b14c8d429fda4c8a9145af2bd5157cce506d2dcb30cc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8102165201c5224cf6e6634bfd68c6a39e8f800601188216f8210face4861215
MD5 de348d1e45c323342ccce995b03bf915
BLAKE2b-256 f15934be30cd647de25af4ef7ca5980c124205893248db40d93831afad53dbcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bed6ef8e194cab85f6ec5678995b6406bb568383ebb6a4301be40e7939dd28d9
MD5 147a17683c065ee0798f7f38011f724b
BLAKE2b-256 07c374734c4927776d5d3a56e70c607cdc1c45be765f3b6224e11207d256597e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3da328ba08139846b1ab3a03402ba8a5f3659a640dbe2cd6a18f7f342e99ba98
MD5 e0054230b0f015039a2e1eeef23dc67a
BLAKE2b-256 353ad3dcf1d1c6a672928baf6cc938be8e71cd10b96e6d3cffcb1f7f2a6d75d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4ef4b096abe7d55b020526e39932c2721939a6c55e9a5cd3b3e77897a0942937
MD5 40fca939294d8926c46182c3293988c3
BLAKE2b-256 26106e54860ae82e4ed5665fd3f1d798a8f68f7bac321431f444640da6f93600

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-win_amd64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-win32.whl.

File metadata

  • Download URL: rfc3161_client-1.0.6-cp39-abi3-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.9+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 8631f7db7c1327bf87ee6a9a8681b4cd6bc2a90aae651388f29d045cd9ff1ac9
MD5 460ebade2faac4cdf6b99dcdadf0fc7b
BLAKE2b-256 a51bf78c75c6c92a0f5de46a86b7f39cf9bb8fb5980fbd684a56f46f031dbce6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-win32.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bc379167238df32cbcc1dc9c324088559c1734331030f5293d75f4fd37b5f4f6
MD5 a498588b231bb4a0cb6b370bf0b34778
BLAKE2b-256 6af52df8e402f069a6af2db1f21d1c88d5a929398923265189a0141709a6f25c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_x86_64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1be4e1133f0f7fe875629f2c358285503c1cfc79cebfbc3fb4e28b8a57d6f1a4
MD5 2d454730014f6ab6f8dca64216878a31
BLAKE2b-256 a2bbfeeacd1859e364080729b9cded1129b740eeea54c6d61ff12daceed4b7dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_i686.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 85a1d71d1eb2c9bced2b3eb75e96f9fe49732ec2567b5dafa1dd889fff42b7fe
MD5 e5351df25becb2135137af4b1347d2f9
BLAKE2b-256 1cf0eed22d6ed52d36b1eab3dfe56b9f507e22a328e3d018b84d48877ad7abe7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_armv7l.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b7ad54288a49379b01b1d0d9d15167d2b7c6c7f940332ab85eeb4a6e844da8c7
MD5 61ac8c6ca90b99618c7caa5d07549e5d
BLAKE2b-256 e58d4253affe1d1e221369ad3043f5d697fc3f5d7fcb439d21add84c65cafc53

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-musllinux_1_2_aarch64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e3caffaebf43242b000c4a6659d60eaf19c3b161ccbe05b15634a856c9ea7e61
MD5 787c8338154c435501fffe4dcc7bb594
BLAKE2b-256 533c32a0c7de4d63a69eb97e2564e5f1d51879ec93232b0c5ac1ec444843acba

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2bc9835467f6166edd6f876470484e5b294ee141add6eff6a59f5047937aaa75
MD5 d9348176091ad8fd5235dadd771615b4
BLAKE2b-256 64fa5af9bbfd4dcd9926463a95c4de6ea137176252d7a1d0b96533f6c85f2742

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 63355099d932851eac507806bb9d0937dab546a66d5857d888168799ec635f6d
MD5 259639e3910c3a278286dda8ca266b1d
BLAKE2b-256 c419c44702336aed367c6513493c4df9e880db8c4df37d5cd8d525aac9aad827

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1671b1be16480ea54c0d36239efd0fb62c13dd572a9865a5e91fea39f1b95303
MD5 15e7af0033e23339ef79b530bf024305
BLAKE2b-256 64dd5c92004ca167ae182f543aedc7a7a8bebeb0668ade7263b82212e4b4c59d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b3920334f7334ec3bb9c319d53a5d08cd43b6883f75e2669cfd869cd264d53a
MD5 83a0fb130063b11871ea733df88b94d1
BLAKE2b-256 8ab6da7caa10c2a3e01f244ad116ffe2cc87056fa71a7dd76453faab2fc2c6ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rfc3161_client-1.0.6-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rfc3161_client-1.0.6-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9a98e9c7ff632d9571fcea25fb70bde0e8339b86368aef67a65f6a301f125733
MD5 786d5785ad4295516f05c9b7b07744c3
BLAKE2b-256 57b1262af0901e1507a4e21d268091f1f7b738b44bca424b9bd481981828a7e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for rfc3161_client-1.0.6-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: CI.yml on trailofbits/rfc3161-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page