S00-019: Validate browser SCRAM-SHA-512 through public mechanism composition
Changes: Add an isolated pinned mechanism wrapper using Stanza's public constructor and factory APIs, preserve the SCRAM-SHA-512 wire name and fail-closed final guard, and document the proposed ADR, browser bundle evidence, independent Scramp vectors, notices and limits. Leave parent selection, dependency experiments, specs and shared contracts unchanged. Validation: Fresh-cache npm ci and Vite browser build pass; 87 focused tests pass, including RFC HMAC vectors, original defect reproduction, independent full SHA-512 exchanges and rejected invalid finals/order/reset paths. Hashed Scramp oracle fixture comparison passes. Dependency check verifies 49 locked entries, 25 installed pins/licenses and 340 unmodified Stanza files. make check passes 72 tooling tests. Native browsers, WSS/live server interoperability and production readiness are untested; independent security review remains pending. Task: S00-019 Agent: auto-crypto-c68801170fa4 Role: crypto Action: claim Status: review Task title: Validate browser-compatible SCRAM-SHA-512 through a public mechanism API
This commit is contained in:
1 parent
e69372c6db
commit
07c9967d02
26 files changed
+6399
-8
No files matched your search
@@ -0,0 +1,36 @@
|
||||
# S00-019 handoff for independent security review
|
||||
|
||||
Executor: auto-crypto-c68801170fa4 (crypto), 2026-10-15.
|
||||
Outcome: isolated pinned browser-compatible SCRAM-SHA-512 experiment and proposed
|
||||
docs/decisions/0002-xmpp-sha512-validation.md. No blocker; acceptance pending.
|
||||
|
||||
Public Mechanism composition uses exported SCRAM('SCRAM-SHA512') constructor to
|
||||
select existing browser HMAC alias while wrapper wire name stays SCRAM-SHA-512.
|
||||
Factory.disable/register and fresh Client.use/registerFeature only; no library
|
||||
private-field/vendor/primitive patch. S00-017 guard copied/narrowed inside scope;
|
||||
accepted parent/dependency sources remain unchanged.
|
||||
|
||||
Clean-cache npm ci and actual browser bundle/build + 87 tests passed. Seven RFC
|
||||
HMAC cases and key-length boundaries pass, exact old hyphenated HMAC/full proof
|
||||
defects reproduce, three fixed independent Scramp client/server SHA512 exchanges
|
||||
match, final/order/error/reset/replay cases reject before auth/restart. 49 locked
|
||||
entries/25 installed pins/notices and 340 unchanged Stanza files verified.
|
||||
make check: exit 0, 72 tests. Detailed commands/hashes/development failures:
|
||||
state/evidence/S00-019-auto-crypto-c68801170fa4.md.
|
||||
|
||||
Reviewer: inspect executor diff/message and public constructor alias composition
|
||||
explicitly. Follow experiment README with accepted Node 24.21.0/npm 11.19.0 and
|
||||
new cache, run npm test and check-dependencies.py; independently recreate hashed
|
||||
Python oracle environment and run oracle.py (default compares fixed fixtures).
|
||||
Parent installed pinned candidate is read-only vendor comparison input. Review
|
||||
licenses including Stanza browser ancestry, build binding owner notices and
|
||||
separate MIT-0/MIT oracle, actual feature dispatcher and both verifier flags.
|
||||
ADR must remain proposed until your separate acceptance decision.
|
||||
|
||||
Limits: browser bundle executes in Node, no native-browser/WSS/live-server/client
|
||||
run or parent parser integration; no full fallback policy/production selection.
|
||||
No invented binding/plaintext downgrade. Synchronous derivation, string equality
|
||||
verifier, no timeout, success-only final, no extensions, local bounds and limited
|
||||
Unicode vector remain. No audit/provenance/release clearance. Coordinator owns
|
||||
commit and next fresh process; executor stops after submit, does not continue
|
||||
S00-003 or mark done.
|
||||
Reference in new issue
Block a user