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.
Metadata
Release files for buildcatrust 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| buildcatrust-0.5.1.tar.gz | 42.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| buildcatrust-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 95.0 kB
Release files / buildcatrust-0.5.1.tar.gz
| Download URL | buildcatrust-0.5.1.tar.gz |
|---|---|
| Size | 42.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23b7f62c243c74614e5ff774e26394965ec82fbcb9427d443eef543b9e3de92a
|
|
BLAKE2b-256 checksum How to use checksums |
bf977d161a59c149e1b143f38eaf9891bb59903282d59db9470a23f51fe121e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency logRelease files / buildcatrust-0.5.1-py3-none-any.whl
| Download URL | buildcatrust-0.5.1-py3-none-any.whl |
|---|---|
| Size | 52.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a12c1d50fcac72c62880cadf42cdc3a87a731bc507812c0470bbd951eb35549
|
|
BLAKE2b-256 checksum How to use checksums |
3d756ca05ab1eea27dd78d87f262f35fe4cfb65ef344f47784734c2abd70fc27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 12, 2026.
Transparency log