Technical

Keys & ssh-keygen compatibility

Whisper’s identity is an ordinary OpenSSH key pair. The public key you share in Whisper is the same line you would put in authorized_keys.

Supported

Every key type ssh-keygen can produce whose security is still sound:

  • ssh-ed25519 — the default and the best choice: small keys, short messages and the fastest operations.
  • ecdsa-sha2-nistp256, -nistp384, -nistp521
  • ssh-rsa, 2048 bits or more — works, but makes messages about 1 KB longer, which matters for links sent by SMS.

Import

Settings → My key → Import from ssh-keygen accepts OpenSSH private keys, unencrypted or passphrase-protected, using the bcrypt KDF with any of:

aes128-ctr · aes192-ctr · aes256-ctr · aes128-cbc · aes192-cbc · aes256-cbc · aes128-gcm@openssh.com · aes256-gcm@openssh.com · chacha20-poly1305@openssh.com

PEM-format keys are rejected with the command to convert them: ssh-keygen -p -f <keyfile>.

Export

Export backup writes your key as an OpenSSH private key — encrypted with aes256-ctr if you set a passphrase — which ssh and ssh-keygen accept. The test suite imports real ssh-keygen keys of every type and cipher, compares fingerprints with ssh-keygen -l, and checks that exported keys are accepted by ssh-keygen.

Not supported, on purpose

KeyWhy not
sk-ssh-ed25519@openssh.com, sk-ecdsa-…The private key never leaves the FIDO security key, and those devices can sign but cannot decrypt.
RSA under 2048 bits, DSANo longer considered safe (OpenSSH itself disabled DSA).
3DES-protected key filesRe-encrypt with ssh-keygen -p -Z aes256-ctr -f <keyfile>.

Fingerprints

Contacts are identified by their SHA256: fingerprint, exactly as ssh-keygen -l prints it, and you can search the address book by fingerprint.