# S00-003 blocked executor evidence Agent: auto-protocol-dcdf92cd067e, protocol. Date: 2026-10-15. Input: master_prompt and assigned startup/role/workflow documents; CLI resume/show; S00-003 card/context and previous handoff; required docs/TESTING.md and docs/decisions/README.md; accepted scope/stack/SASL/parser ADRs and dependency reports/handoffs; exact ACC-004/NET-003/NET-004. Assigned owner confirmed; no repeat claim. Output remains the library selection spike, not completed. ## Reproduced blocker Pinned Stanza 12.22.1 browser createHmac('sha-512', ...) does not match RFC 4231 section 4.2 Test Case 1 or Node's independent native implementation. Its browser Hmac constructor chooses 128-byte blocks only when alg === 'sha512'; otherwise it chooses 64. Browser createHmac lowercases but does not remove the hyphen. SCRAM derives algorithm 'sha-512' from the correct wire mechanism SCRAM-SHA-512. This makes merely registering SASL.SCRAM under that mechanism insufficient for browser interoperability. Browser getHashes advertises sha-512. The SCRAM algorithm field is private in shipped index.d.ts, so changing it is not a public supported integration path. No vendor/private-field patch attempted. Public key: 20 bytes 0x0b; data: Hi There (RFC test data only). Expected SHA-512: 87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854 Browser sha-512 actual: 9656975ee5de55e75f2976ecce9a04501060b9dc22a6eda2eaef638966280182477fe09f080b2bf564649cad42af8607a2bd8d02979df3a980f15e2326a0a22a Browser sha512 alias matches expected; sha-1 and sha-256 also match Node controls. This is a direct browser-backend module diagnostic executed in Node, not an actual browser execution, full SCRAM exchange or WSS handshake. ## Commands and observed results - python3 scripts/tasks.py resume --agent auto-protocol-dcdf92cd067e: exit 0, assigned S00-003 in_progress. - python3 scripts/tasks.py show S00-003: exit 0, dependencies done/scope confirmed. - Scoped cat/rg reads: actual SASL/browser Hmac/createHash/factory/features/Client source and public declarations examined. Guessed platform/browser.js, lib/sasl/scram.js and parent .npmrc paths absent (cat calls exit 1); actual platform/browser/index.js and lib/sasl/index.js/.d.ts located/read. These exploratory failures are not passed tests or missing required artifacts. - git status --short: exit 0; only coordinator state/tasks.json claim change. - The following exact diagnostic ran with exit 0 and printed matching controls and the SHA-512 mismatch above (exit 0 means reproduction completed, not safety): ```sh PATH=/private/tmp/luma-stack-runtime/node-v24.21.0-darwin-arm64/bin:$PATH node --input-type=module <<'JS' import {createRequire} from 'node:module'; import {createHmac} from 'node:crypto'; const require = createRequire(new URL('./experiments/0002-xmpp-library/package.json', `file://${process.cwd()}/`)); const browser = require('stanza/platform/browser/index.js'); const key = browser.Buffer.alloc(20, 0x0b); for (const name of ['sha-1','sha-256','sha-512','sha512']) { const actual = browser.createHmac(name,key).update('Hi There').digest('hex'); const expected = createHmac(name.replace('-', ''), Buffer.alloc(20,0x0b)).update('Hi There').digest('hex'); console.log(JSON.stringify({name, matchesNode: actual === expected, actual, expected})); } JS ``` Primary sources opened on 2026-10-15: RFC 7395, RFC 5802, RFC 7677, https://www.rfc-editor.org/rfc/rfc4231.html#section-4.2, https://github.com/legastero/stanza and https://github.com/xmppjs/xmpp.js. Pinned shipped files establish the defect; upstream documentation alone is not acceptance evidence. RFC 4231 provides the independent fixed HMAC vector. Reused previously accepted isolated runtime; no new installation/checksum claim. ## Boundaries and next input No source edits, manifest/lock/dependency changes, new primitive, credential, TLS/CORS bypass or private vendor patch. No make check, npm ci, dependency suite rerun, browser build/runtime, WSS handshake or independent interoperability is claimed in this session. Accepted S00-017/S00-018 experiments remain unchanged. Their local acceptance does not cover SHA-512 browser crypto. Current parent selection ADR is absent and candidate unselected. No plaintext/downgrade workaround was implemented. One fresh crypto resolver must demonstrate correct browser-compatible SCRAM-SHA-512 through a supported mechanism API using vetted existing crypto, including SHA-512 known vectors, full proof/server-final and failure behavior; independent security review precedes original-task resumption. The resolver may assess an existing alternative backend/candidate inside its isolated scope, not implement parent selection/WSS or shared contracts. This reporter exits after escalation and does not solve remediation or launch another agent.