Summary
- Add shared
keymaker-models::public_certificates request and response types for the public certificate derivation API.
- Encode the reviewed v1 contract shape:
data plus top-level necroproof, strict request fields, certificate entries with index and armored_certificate, and no trusted derivation path/fingerprint/signature metadata fields.
- Add validation helpers for certificate count, UTC expiration bounds, payload version/profile/count/order, canonical UUID parsing, and masked UUID-derived account indices for the
m/pgp'/kmkr'/... namespace.
Test plan
rustfmt --edition 2024 --check crates/keymaker-models/src/lib.rs
git diff --check
cargo test -p keymaker-models
cargo clippy -p keymaker-models --all-targets -- -D warnings
cargo test --workspace (passes; existing warnings remain for minipgp6 cfg, unused now, unreachable reboot expression, unused secrets, and unused get_shards_test_util)
Deferred follow-ups
- Add the actual public certificate service process, HTTP route, Locksmith/Keyfork readiness flow, CA UID certification embedding, and necroproof computation.
- Select or implement the shared deterministic structure-hash/necroproof registry before producing real artifacts.
Refs caution/platform#383
## Summary
- Add shared `keymaker-models::public_certificates` request and response types for the public certificate derivation API.
- Encode the reviewed v1 contract shape: `data` plus top-level `necroproof`, strict request fields, certificate entries with `index` and `armored_certificate`, and no trusted derivation path/fingerprint/signature metadata fields.
- Add validation helpers for certificate count, UTC expiration bounds, payload version/profile/count/order, canonical UUID parsing, and masked UUID-derived account indices for the `m/pgp'/kmkr'/...` namespace.
## Test plan
- `rustfmt --edition 2024 --check crates/keymaker-models/src/lib.rs`
- `git diff --check`
- `cargo test -p keymaker-models`
- `cargo clippy -p keymaker-models --all-targets -- -D warnings`
- `cargo test --workspace` (passes; existing warnings remain for `minipgp6` cfg, unused `now`, unreachable reboot expression, unused `secrets`, and unused `get_shards_test_util`)
## Deferred follow-ups
- Add the actual public certificate service process, HTTP route, Locksmith/Keyfork readiness flow, CA UID certification embedding, and necroproof computation.
- Select or implement the shared deterministic structure-hash/necroproof registry before producing real artifacts.
Refs https://codeberg.org/caution/platform/issues/383