Adding digital signatures.
Messages are now signed by an ephemeral RSA key (specifically
RSASSA-PKCS1-v1_5 with 4096-bit length) and this signature is included
as the 512 bytes between the IV and message content.
Support for adding pubkeys to a keychain is planned, as is storing
that keychain between sessions.
Support for user-provided RSA keys is planned, as is storing RSA keys
(with encryption) between sessions. Some instructions for how to export
a PGP key into a compatible format will be necessary. Also, I will need
to check keys and reject those that are not 4096 bits long.
Eventually the keychain will be extended with user-provided names for
each key, and the names will be shown next to chat messages.