S00-022: Record blocked task and remediation handoff
Changes: Preserve incomplete work and blocker metadata for S00-022. This checkpoint does not mark implementation accepted. Validation: Session ended with status blocked. Blocker: Pinned libomemo.js@3.0.0 supplies real embedded WASM but is a different unaudited ratchet and excludes consumer SCE; no approved decision reconciles it with S00-022 retained audited engine/persistence requirement. Task: S00-022 Agent: auto-crypto-bcd7f2a71667 Role: crypto Action: claim Status: blocked Task title: Confirm or source a verified browser/WASM-capable OMEMO2 backend for the Web client endpoint
This commit is contained in:
1 parent
8bfaa06e64
commit
28320ff35a
14 files changed
+386
-31
No files matched your search
@@ -0,0 +1,89 @@
|
||||
# S00-022 bounded candidate investigation — blocker
|
||||
|
||||
Agent: auto-crypto-bcd7f2a71667; role: crypto; date: 2026-10-15.
|
||||
No backend accepted. No source, ADR, experiment, spec or shared contract changed.
|
||||
|
||||
## Inputs and commands
|
||||
|
||||
Read master_prompt/startup/role/workflow/Git documents, required TESTING, ADR index,
|
||||
state/blockers/S00-022.md, current card, CLI packet, previous handoff, exact
|
||||
ENC-003/009/011, accepted ADR 0000/0001 and existing 0002 decisions, direct dependency
|
||||
executor/review evidence and handoffs. CLI resume/show/packet each exit 0, confirming
|
||||
assigned in_progress owner; no repeated claim. Some large combined read outputs
|
||||
were truncated. A final exploratory cat of state/blockers/S00-004.md exited 1:
|
||||
that filename is absent; original S00-004 blocker is state/blockers/S00-022.md,
|
||||
which was read successfully. No missing required task input is inferred from this.
|
||||
|
||||
`node experiments/0003-crypto-library/session-probe/wasm-unsupported.mjs`
|
||||
exit 2: pkgPresent true, wasmFiles 0, six native prebuild platform directories,
|
||||
UNSUPPORTED_BLOCKER. Existing libsignal-client package still supplies no web build.
|
||||
The session smoke was not rerun; previous reviewed session/persistence evidence
|
||||
is retained as historical evidence, not this run's successful check.
|
||||
|
||||
`npm view libomemo.js@3.0.0 version license repository dist.integrity dist.tarball time --json --fetch-retries=0 --fetch-timeout=15000 --cache=/tmp/luma-s00-022-bcd7-cache --strict-ssl=true`
|
||||
exit 0: 3.0.0, GPL-3.0, conversejs/libomemo.js repository, published
|
||||
2026-08-06T06:59:43.303Z. Metadata proves availability and release activity, not
|
||||
maintenance SLA, audit, license approval or security suitability. Other package
|
||||
E404 queries were not repeated: finding this concrete candidate already refutes
|
||||
prior universal registry absence; enumerating guessed names cannot prove absence.
|
||||
|
||||
Inline Python urllib/ssl/hashlib/base64/tarfile/io inspection exit 0:
|
||||
retrieved https://registry.npmjs.org/libomemo.js/-/libomemo.js-3.0.0.tgz with
|
||||
ssl.create_default_context(), timeout 20, asserted HTTP 200 and unchanged final
|
||||
HTTPS URL, verified SHA512 SRI against metadata. Read archive members in memory
|
||||
with tarfile.extractfile; no filesystem extraction, install, scripts or package
|
||||
execution. SRI agrees with registry; independent provenance is not established.
|
||||
|
||||
Archive: 1,061,939 bytes.
|
||||
SHA256: be30116eca7014a35b3372dc1270d462cf5392ae6affc92c4f4778d003e7bbf8.
|
||||
SRI: sha512-B4he9DOS+1LQrut+b2xjOjuSkKMAkZGes7ckB5JgVk/EHVNyxLIHx6NvQ3eJVaT1XeNJaWZBonXw3Nl5YKEbig==.
|
||||
|
||||
Pinned package.json declares ESM/UMD and worker-client exports, protobufjs ^8.0.0,
|
||||
and GPL-3.0. Bundled LICENSE is 32,472 bytes (presence only; no distribution
|
||||
license clearance claimed). dist/libomemo.esm.js is 519,611 bytes;
|
||||
dist/libomemo-worker.js is 164,906; worker-client ESM 364,069.
|
||||
Decoded data:application/octet-stream;base64 payloads in ESM, UMD and worker
|
||||
variants: 85,585 bytes each, magic 0061736d, SHA256
|
||||
3a32503ade92ed2bf522d49d51106a227dadb39c2a7b08a1023c216c7eec1286.
|
||||
Thus searching only standalone .wasm files would miss this actual embedded asset.
|
||||
Magic/size/hash inspection is not WebAssembly validation or browser execution.
|
||||
|
||||
Pinned README inspected from same archive: no formal third-party audit; implements
|
||||
X3DH and Double Ratchet; consumer owns stanzas, PEP/device bundles and XEP-0420
|
||||
SCE payload encryption. Claims legacy 0.3.0 and OMEMO2 0.9.1. Requires modern
|
||||
ArrayBuffer/TypedArray/Promise/WebCrypto AES-CBC and HMAC-SHA256. Worker offloads
|
||||
curve operations; this does not demonstrate whole crypto lifecycle in a worker.
|
||||
Browser/worker failure policy and CSP need future independent evaluation.
|
||||
|
||||
Primary web pages opened: https://github.com/conversejs/libomemo.js and
|
||||
https://xmpp.org/extensions/xep-0384.html. Current upstream README corroborates
|
||||
these boundaries; pinned archive is authoritative for release inspection.
|
||||
No XEP revision has been approved by this run; no SCE/key/MAC mapping or full
|
||||
OMEMO2 known-answer browser roundtrip was executed. Self-roundtrip of ratchet
|
||||
bytes alone would not prove ENC-011. No test is labeled passed for that outcome.
|
||||
|
||||
## Exact blocker and next input
|
||||
|
||||
Candidate is a different ratchet implementation, with explicit unaudited status
|
||||
and consumer SCE gap. Existing native Signal session serialization/persistence
|
||||
cannot be declared compatible with it. Card requires preserving the verified
|
||||
audited engine/persistence, and no approved external backend strategy currently
|
||||
bridges that condition. Authorizing a replacement/security assessment/migration
|
||||
is an external architecture/security decision, not this executor's choice.
|
||||
|
||||
Request one recorded decision from architecture/security/product owner: supply
|
||||
a maintained browser/WASM port of the retained engine with license/support and
|
||||
SCE source path, OR authorize evaluation of a named alternative (libomemo.js
|
||||
3.0.0 is a concrete candidate), with explicit independent security assessment,
|
||||
license approval route and isolated persistence migration requirements. This
|
||||
must not waive ENC-003/009/011 or declare the candidate audited/compatible.
|
||||
A separately reviewed plan decision must adjust preservation wording if an
|
||||
alternative is chosen before implementation proceeds. No homegrown primitives,
|
||||
plaintext fallback or server decryption is an acceptable resolution.
|
||||
|
||||
No make check or application test was run: this run stopped at sourcing decision
|
||||
blocker. ADR 0003 remains unchanged/proposed; its universal package-absence and
|
||||
unsupported assertion that Signal has a WASM distribution are not established
|
||||
by the cited E404. Fresh continuation should correct them from pinned evidence.
|
||||
Git status initial read exit 0 showed only coordinator state/tasks.json claim.
|
||||
Coordinator performs checkpoint commit; reporter ends after escalation.
|
||||
Reference in new issue
Block a user