generation 5: review-impl — spec-conformance gate passed, API frozen
Checklist (all six PASS): 1. API surface == ADR-004 — every accessor signature verified verbatim 2. TlsError == ADR-002 — six variants, #[non_exhaustive], typed sources, AcmeConfig holds exactly the two config-mismatch cases 3. Invariants: all five server invariants + client 0-RTT half + fail-closed structure, each with a passing behavioral test at unit and integration level 4. Deltas vs extraction: all ADR-pinned; two surfaced divergences recorded as ADR amendments — zero un-pinned divergences remain 5. Feature hygiene: default = [] lean, tokio subset (no full), doc comments on public API, no inline // comments, no panics 6. Docs sync: ADR-002 + ADR-003 amendment notes; overview/server/client Draft → Reviewed; README carries the API-freeze lifecycle note 5 findings, all low severity, all resolved forward (table in task Notes) Verification: cargo test (81), cargo test --all-features (92), clippy -D warnings, fmt --check, doc --no-deps, publish --dry-run — all green. API FROZEN for the alknet rewrite.
This commit is contained in:
@@ -64,9 +64,11 @@ pub enum TlsError {
|
||||
Rustls(#[from] rustls::Error),
|
||||
|
||||
/// `WebPkiServerVerifier::builder(_with_provider)..build()` — the
|
||||
/// unknown-X.509-remote client path.
|
||||
/// unknown-X.509-remote client path. Re-exported by rustls at
|
||||
/// `rustls::client` (the `rustls::webpki` module is private at the
|
||||
/// pinned 0.23.44; same type, public path).
|
||||
#[error("building webpki verifier: {0}")]
|
||||
VerifierBuild(#[from] rustls::webpki::VerifierBuilderError),
|
||||
VerifierBuild(#[from] rustls::client::VerifierBuilderError),
|
||||
|
||||
/// QUIC config wrapping — the one path where `for_noq()` fails
|
||||
/// (`NoInitialCipherSuite`, not a `rustls::Error`). noq-gated.
|
||||
@@ -139,6 +141,14 @@ reintroduce the fold this ADR removes.
|
||||
error churn (accepted — rcgen 0.13 is stable and the coupling is
|
||||
what ADR-088 chose).
|
||||
|
||||
**Amendment (2026-09-10, from the Phase 2 implementation):** the
|
||||
`VerifierBuild` source's reachable path at the pinned rustls 0.23.44
|
||||
is `rustls::client::VerifierBuilderError`, not
|
||||
`rustls::webpki::VerifierBuilderError` — the `rustls::webpki` module
|
||||
is private at that version and the type is publicly re-exported at
|
||||
`rustls::client` (same type; the implementation carries it that way,
|
||||
with the path noted in the variant's doc comment).
|
||||
|
||||
## References
|
||||
|
||||
- alknet ADR-088 — the recorded target shape and its rationale
|
||||
|
||||
Reference in New Issue
Block a user