Skip to main content

Utilities for turning one trust store into another.

Project description

buildcatrust

buildcatrust is a tool for turning trust stores into other trust stores.

In particular, it's intended for use within NixOS, for turning the Mozilla NSS cert store into a format that can be used by various downstream systems (see below).

Why

The original author (lukegb) was not particularly happy with any of the existing options: they tend to lose some of the semantic meaning of the input NSS store, and this is undesirable.

In particular, there's a well documented that Linux distributions have in general with distrusting certificates. This package does not itself solve this 100% (because the nuance still isn't readily encodable), but the goal is to not make things worse. That is, running Firefox on a system configured to use a buildcatrust-built certificate store should not drop distrust dates. Other software may vary, depending on support for distrust-after.

Goals

  • Have no runtime dependencies outside of the Python standard library
    • This is because this complicates packaging, particularly on NixOS, where buildcatrust is part of the bootstrap path for building everything else.
  • Have decent test coverage
  • Convey as many trust bits from the source system to downstream systems as possible
    • In some cases, this means using software-specific hacks (such as for OpenSSL)

Contributing & Developing

Users are expected to abide by the Contributor Covenant, version 2.1.

The best answer for developing this software is to use Nix, which will provide dependencies for you automatically (at least on Linux-based distributions).

You should be able to run nix-shell in the root of this repo to get a working shell containing a Python interpreter with ruff, pytest, ty, and so on.

It is also suggested to run pre-commit when making changes; you can install its hook using pre-commit install which will ensure that things are correctly formatted before permitting a commit.

However, because this software aims to have no dependencies outside of the Python stdlib, it should be possible to at least make changes and run the software without needing Nix or any other software installed. I do suggest that you install pytest and ruff though, because then you can ensure a baseline level of correctness before letting GitHub Actions judge your PR.

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

buildcatrust-0.5.1.tar.gz (42.4 kB view details)

Uploaded Source

Built Distribution

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

buildcatrust-0.5.1-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

File details

Details for the file buildcatrust-0.5.1.tar.gz.

File metadata

  • Download URL: buildcatrust-0.5.1.tar.gz
  • Upload date:
  • Size: 42.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for buildcatrust-0.5.1.tar.gz
Algorithm Hash digest
SHA256 23b7f62c243c74614e5ff774e26394965ec82fbcb9427d443eef543b9e3de92a
MD5 ab4a78aebd6fdeccaca8754878ae4884
BLAKE2b-256 bf977d161a59c149e1b143f38eaf9891bb59903282d59db9470a23f51fe121e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for buildcatrust-0.5.1.tar.gz:

Publisher: release.yaml on nix-community/buildcatrust

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

File details

Details for the file buildcatrust-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: buildcatrust-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 52.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for buildcatrust-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3a12c1d50fcac72c62880cadf42cdc3a87a731bc507812c0470bbd951eb35549
MD5 28d90798a65acd09dee4c89835f519a4
BLAKE2b-256 3d756ca05ab1eea27dd78d87f262f35fe4cfb65ef344f47784734c2abd70fc27

See more details on using hashes here.

Provenance

The following attestation bundles were made for buildcatrust-0.5.1-py3-none-any.whl:

Publisher: release.yaml on nix-community/buildcatrust

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