feat(proto-ikev2): add NWu payload and lifecycle contracts - #869
Open
VerifiedOrganic wants to merge 2 commits into
Open
VerifiedOrganic wants to merge 2 commits into
VerifiedOrganic wants to merge 2 commits into
Conversation
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
3 tasks
VerifiedOrganic
marked this pull request as ready for review
September 17, 2026 03:08
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds explicit TS 24.502 NWu payload and lifecycle contracts over the generic IKE codec. Consumers can build and decode per-family configuration/NAS endpoints, complete QoS associations, network-initiated Child-SA creation, full replacement modification and NWu-specific deletion. Caller-ordered AEAD selection produces intent without key import or backend effects.
Refs #786, #784 and #795. This scoped PR leaves authenticated MOBIKE address updates for the next change; it does not close #786 or claim external interoperability.
Behavior and evidence
Revision and provenance
1416b647aabcc57bf983ed2443897f8c7743d590.d5487b11f4f7119ee48edd41e87eed57be6108ca; repository tree:fb8ece724c50c7ef869ef16b65ca48f43d560ba4.2e0fd65eacbcd3239b4d653422fe7d2617ac35bb; unchanged fixtures tree:9cc9d24fe51030d305a857d61b00170400f258d3.crates/opc-n3iwf-fixtures/fixtures/nwu-ike/*.json. Fuzz seeds are exact binary decodings of the published wire fixtures. Additional literals use synthetic values and were assembled independently of the SDK encoder. CONFORMANCE.md pins the standard releases and exact supported/unsupported scope.Validation
Passed locally: all 15 new tests on current Rust and Rust 1.89; workspace/all-target/all-feature Clippy with warnings denied; rustdoc with warnings denied; required persistence no-default-feature Clippy and test compilation, all 38 persistence security tests; 22 fixture-script regressions; shard coverage; formatting/whitespace; reference-operator vet/tests and kustomize. Fuzzing completed 3,740,058 executions in 61 seconds without failure. No dependencies added.
The initial full workspace/all-feature suite failed in the unchanged
qualification_mtls_multiprocesstarget: a concurrent build reused its target directory and replaced the running harness before its self-hash check (fiveNotFoundfailures and one resulting poisoned lock). The original log is retained. The isolated rerun at the current head passed all 115 applicable tests (six manual-only tests remain ignored); every other target passed in the original full workspace run at1411a162. The suite uses the required disk-backed TMPDIR and private fs-verity storage. The final receiver-ignore correction also passed the targeted MSRV suite and exact-head hosted CI: all 50 applicable checks passed, with one scheduled-only skip. Independent review remains pending.Checklist