HomeFreeBSD

certctl: Reimplement in C

Description

certctl: Reimplement in C

Notable changes include:

  • We no longer forget manually untrusted certificates when rehashing.
  • Rehash will now scan the existing directory and progressively replace its contents with those of the new trust store. The trust store as a whole is not replaced atomically, but each file within it is.
  • We no longer attempt to link to the original files, but we don't copy them either. Instead, we write each certificate out in its minimal form.
  • We now generate a trust bundle in addition to the hashed diretory. This also contains only the minimal DER form of each certificate. This allows e.g. Unbound to preload the bundle before chrooting.
  • The C version is approximately two orders of magnitude faster than the sh version, with rehash taking ~100 ms vs ~5-25 s depending on whether ca_root_nss is installed.
  • We now also have tests.

Reviewed by: kevans, markj
Differential Revision: https://reviews.freebsd.org/D42320
Differential Revision: https://reviews.freebsd.org/D51896

Details

Provenance
desAuthored on Aug 18 2025, 2:26 PM
Reviewer
kevans
Differential Revision
D51896: certctl: Restore distbase
Parents
rGa13f28d57ecf: acpi_powerres: Fix turning off power resources on first D-state switch
Branches
Unknown
Tags
Unknown