Native strict authentication v1
Experimental native integration, 7 September 2026. This is an opt-in admission acceptance policy, not a deployed upgrade or full Core conformance claim.
On this page
Scope and configuration
Build with cargo build --release --locked --features strict-auth --bin skein-admitted-discovery. Set "authentication": "strict_v1" in the admission policy. The existing peer-recovery build rejects this policy; it never falls back. Omitted fields retain legacy acceptance and legacy JSON serialization omits the field.
The native verifier uses pinned curve25519-dalek 4.1.3 for canonical, nonidentity, prime-order public-key and signature-point checks, canonical scalar validation, and ring for signature verification. Python and libsodium remain test tools; neither is required by the runtime.
The selected policy covers admission credential issuers, beneficiary claims, admitted descriptors and conflict evidence. General Thread, recovery-page and Vault verification remain unchanged. There is no automatic network negotiation; wire version 1 alone does not identify this acceptance policy.
Durable state
The complete policy is pinned in the journal header. Reopening under a different policy fails before journal-tail recovery; epoch rollover also rejects policy changes. Use a fresh state directory for a new profile. No migration is provided. Committed journal decisions are restored, not cryptographically reverified from original envelopes. This retains the existing trusted-local-storage assumption; it does not detect malicious replacement or rollback of the entire directory.
Recorded validation
Evidence is in docs/results/native-strict-auth-v1/:
- 6,108 differential cases match the frozen strict Python adapter exactly. Dalek and libsodium provide different point validators; both harnesses share an author.
- All 12 codec and 14 claim vectors pass. All six legacy transition traces pass.
- 40 library, 15 admission, two codec, seven rendezvous and five strict regression tests pass, including wrong-profile reopen/rollover, replay and weak-key refusal.
- Network tests initially hit sandbox socket restrictions; the authorized local rerun passed. Both logs are retained.
Release binaries on this arm64 Mac measured 718,432 bytes (legacy) and 734,992 bytes (strict): +16,560 bytes, about 2.3%. A 2,000-signature warm-cache sample measured 29.6 microseconds per legacy verification and 90.6 microseconds per strict verification, about 3.1 times the cost. This is a single host/sample, not full-claim throughput or an adversarial resource bound. Hashes and timings are retained.
Reproduce with cargo test --release --locked --features strict-auth --lib --test admission_wire --test claim_codec --test rendezvous --test strict_auth. Run cargo run --release --locked --features strict-auth --example strict_auth_cost for the timing sample. Compile core_conformance with the same feature and pass --strict-auth to check the codec/claim suites. Its strict mode refuses unsupported trace operations rather than reporting legacy transitions as strict.
Next gate
Exercise this pinned profile under the published bounded admission workload, including malformed and valid costly inputs, restart and epoch recovery, before preparing a new Fly artifact. Independent implementation and cryptographic review remain open. No public deployment or fairness guarantee follows from these tests.
