What you are looking at
This page loads the same modules the browser extension injects
(src/keyboard.js, src/wiring.js, src/crypto.js) over a normal HTTP origin —
the extension ships them as a content script instead. Everything below is real: the keys, the buffer,
the AEAD seal, the envelope, the target tracking.
Press Ctrl+Shift+K to toggle the keyboard, or click “Open keyboard”. In Encrypted mode keystrokes stay in the overlay and only the sealed envelope is committed to the field below — watch the page-side log to see exactly what the page receives. Press ⌨ Capture in the overlay's toolbar and type on your physical keyboard: every keystroke lands in the buffer and the page log stays empty.
1 · A field for the keyboard to type into
2 · Page-side log — what the page actually receives
Each entry is emitted by ordinary DOM events on this page. In encrypted mode you should only ever
see v1|CHACHA20-POLY1305|… envelopes, never your keystrokes.
3 · Round-trip: decrypt an envelope locally
Paste an envelope produced above, add the passphrase, and recover the plaintext — the same
operation the Android crypto-lib performs on a phone.
no session key
kbk1.… string with the recipient out of band, then paste either form back into the box
above — a dictionary needs no passphrase at all.
4 · Envelope format
v1|CHACHA20-POLY1305|<12-byte nonce>|<ciphertext>|<16-byte tag> (all base64url, unpadded)