Elliptic curve
Cryptocat uses the Advanced Encryption Standard in Galois/Counter Mode for authenticated encryption, Curve25519 for Elliptic curve Diffie-Hellman shared secret agreement, HMAC-SHA256 for key derivation and Ed25519 for signing. In order to limit the effect of a long-term identity key compromise, long-term keys are used exclusively once for the initial Authenticated Key Exchange, and once for signing a newly generated intermediate-term signed prekey.