C library implementing Signal protocol encryption for secure messaging.
Implementation of Signal's ratcheting forward secrecy protocol
$ #include <omemo.h>
// Link against libomemo-c in your C/C++ project
gcc -o messenger messenger.c -lomemo -lsignal-protocol-c$ // Initialize session with omemo_context_t and establish double ratchet
omemo_message_t *msg = omemo_message_create();
omemo_message_encrypt(context, plaintext, msg);$ // Library handles forward secrecy automatically
omemo_context_rotate_sender_chain(context);
// Each message uses fresh derived keys$ // Use OMEMO for multi-party conversations
omemo_group_message_encrypt(context, recipients, plaintext, encrypted);
omemo_group_message_decrypt(context, sender, encrypted, plaintext);$ // Automatic authentication via double ratchet
bool authenticated = omemo_message_decrypt(context, ciphertext, plaintext);
// Returns false if verification fails