diff options
| author | Adam Soltys <[email protected]> | 2026-09-04 08:23:50 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-04 08:24:04 -0700 |
| commit | 7bdc0fb00f8f77075a449732971f4689d892e921 (patch) | |
| tree | 39441dd778c5fc56dd1874559a529c0bb48eb16d /src/style.css | |
| parent | 2d17fd652c3c2c56d6027c9271bf9b9854412677 (diff) | |
| download | coinosv3-7bdc0fb00f8f77075a449732971f4689d892e921.tar.gz coinosv3-7bdc0fb00f8f77075a449732971f4689d892e921.zip | |
Move nip44 decryption off the main thread — the remaining boot secp256k1 after verification moved off (chunk-60dfb4nt in profiles). The verify worker grows two ops: 'openWraps' opens community (Concord) wraps given the symmetric stream conversation key — nip44 decrypt + the seal's schnorr verify + hash checks per wrap, no secret crossing the thread boundary since stream keys are group material; 'unwrapDMs' runs the full NIP-17 unwrap (two ECDH ops + seal verify) when the wallet holds the raw identity key. Remote signers can't export their key, so their DM path stays on the main thread, exactly as before. The time-sliced main-thread queues survive as fallbacks — a dead or stalled worker only changes WHERE the crypto runs (workerCrypto resolves null and callers re-enqueue), never whether chat catches up. Bonus: subChannel derives its stream key once per channel instead of once per wrap (groupKey does hkdf + ECDH per call — real curve work on a 200-wrap backfill)
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MGzU12QrAA4G6BYGzGVdXz
Diffstat (limited to 'src/style.css')
0 files changed, 0 insertions, 0 deletions
