WARNING: This is experimental software. Use it at your own risk.
Users must exchange their public keys (export identity: using QR code or URL) before communication.
Uses RSA and EC public key cryptography to initialize communication between two parties. After initialization, cascade cipher (Serpent, AES, Twofish) is used to encrypt messages. ECDH derived keys are used to enable forward secrecy.
Each user sends 4 SMS to initialize session keys. Next messages are approximatelly twice the size of plaintext (random padding). Each message is split in up to 9 SMS.
Source code is available at https://github.com/mihapirnat/gentiandroid - please help test and improve this product.
Uses SpongyCastle, ZXing.