Add non-data-backed Certificates, timezone safety, and wildcard certs.

Review Request #13195 — Created Aug. 8, 2023 and submitted

Information

Review Board
release-6.x

Reviewers

All publicly-exposed attributes of a Certificate can now be set during
construction, rather than needing to feed in data via a PEM-encoded
certificate data. This will be important for relaying information from
SCMs for error/verification reporting.

These attributes make use of Djblets's new UNSET symbol and
Unsettable[T] type, helping to differentiate between a value not yet
supplied/computed and a None result from not having a source for the
value on access.

All validity timezones are now timezone-aware. We assert this when
provided during construction, and normalize when loading from PEM data.

There's a new function for determining if the Certificate represents
a wildcard cert (checking for a * in the domain). This will be used in
cert storage in an upcoming change.

Unit tests have also been fleshed out, giving us 100% test coverage for
cert.py.

Unit tests pass.

Summary ID
Add non-data-backed Certificates, timezone safety, and wildcard certs.
All publicly-exposed attributes of a `Certificate` can now be set during construction, rather than needing to feed in data via a PEM-encoded certificate data. This will be important for relaying information from SCMs for error/verification reporting. These attributes make use of Djblets's new `UNSET` symbol and `Unsettable[T]` type, helping to differentiate between a value not yet supplied/computed and a `None` result from not having a source for the value on access. All validity timezones are now timezone-aware. We assert this when provided during construction, and normalize when loading from PEM data. There's a new function for determining if the `Certificate` represents a wildcard cert (checking for a `*` in the domain). This will be used in cert storage in an upcoming change. Unit tests have also been fleshed out, giving us 100% test coverage for `cert.py`.
5b1e67a9c96d9fbd323df71c9a26f5dead168e71
maubin
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-6.x (66847c5)