Encrypt text with a passcode using AES-256-GCM + PBKDF2 key wrapping.
Seal
Unseal
Encrypt or decrypt any file. The output is a .cnsl binary containing the original filename, salt, IV, wrapped key, and ciphertext.
Encrypt
📄
Drop a file or click to browse
Any file type — encrypted output is a .cnsl file
Decrypt
🔒
Drop a .cnsl file or click to browse
Produced by the Encrypt panel above
Generate an account key backed by a BIP-39 mnemonic. Seal a message, then recover the key from the mnemonic and unseal it — proving recovery works.
1
Create account
⚠ Save these 24 words. They are the only way to recover your account key if you forget your passphrase.
seal a message with the account key
2
Seal a message
lose the key — recover from mnemonic
3
Recover & unseal
Alice and Bob each have an ECDH key pair (for encryption) and an ECDSA key pair (for signing).
Alice seals a message with Bob's public key and signs it with her private key.
Bob verifies Alice's signature and decrypts with his private key.
Alice
Identity
ECDH pub—
ECDSA pub—
private keysstored in memory
Compose
→
sealed
+ signed
Bob
Identity
ECDH pub—
ECDSA pub—
private keysstored in memory
Received packet
ciphertext—
iv—
ephemeral pub—
signature—
senderAlice
No message received yet.
Generate an ECDSA P-256 key pair, sign a document with the private key,
then verify the signature with the public key.
Tamper with the document or signature to see verification fail.
1
Generate signing key pair
public key—
private keystored in memory — never exported
2
Sign a document
algorithmECDSA P-256 / SHA-256
signed over—
signature—
3
Optionally tamper before verifying
4
Verify signature
Verify using the public key only.
The private key plays no role in verification.
Change the passphrase protecting your account key. The key itself never changes —
content sealed before the rekey is still decryptable with the new passphrase.
1
Create account key
now change the passphrase
2
Rekey
The AEK (account encryption key) stays the same. Only the wrapping changes —
PBKDF2 runs twice: once to unwrap with the old passphrase, once to re-wrap with the new one.
Before (old passphrase)
After (new passphrase)
Different bytes — new random salt, new wrapping key derived from the new passphrase.
But the AEK inside is unchanged, so sealed content from before still decrypts.
verify old content still decrypts
3
Unseal with new passphrase
The message was sealed before the rekey. Unseal it now using only the new passphrase and the new wrapped key.
A 128-bit Secret Key is a second factor for AEK wrapping — neither the passphrase nor
the Secret Key alone can unwrap the key. Mirrors 1Password's "Account Key" model.
1
Wrap with passphrase + Secret Key
A random 128-bit Secret Key is generated. The AEK is wrapped with both
the passphrase and the Secret Key combined — PBKDF2 never sees the
passphrase alone.
prove both factors are needed
2
Unlock with correct credentials
Using the same passphrase and Secret Key from step 1.
Unwraps the AEK and decrypts the sealed message.
now try without the Secret Key
3
Attempt with wrong Secret Key
The correct passphrase is used, but a freshly generated (wrong) Secret Key replaces
the real one. Even with the right passphrase, unwrapping must fail — the passphrase
alone is not enough.
Generate or paste a JSON Web Key. The inspector validates it, decodes every field,
and derives a SHA-256 fingerprint from the raw public point.