Libomemo-c

Jul 20, 2023

Implementation of the ratcheting forward secrecy protocol

This is a fork of libsignal-protocol-c, an implementation of Signal’s ratcheting forward secrecy protocol that works in synchronous and asynchronous messaging. The fork adds support for OMEMO as defined in XEP-0384 versions 0.3.0 and later.

  • OMEMO version 0.3.0 uses the original libsignal-protocol-c implementation with its protocol versions 2 and 3.

  • OMEMO version 0.4.0+ is implemented using a new protocol version 4 internally. In comparison with protocol version 3, it changes

    • HKDF info strings
    • Protocol buffer encoding
    • Signature scheme uses XEd25519 instead of custom “Curve25519 signatures”
    • Specification-compliant double ratchet
    • Support for Ed25519 public keys
    • Various serializations
    • Removes unused functionality


Checkout these related ports:
  • Zzuf - Transparent application input fuzzer
  • Zlint - X.509 certificate linter
  • Zeronet - Decentralized websites using Bitcoin crypto and BitTorrent network
  • Zenmap - GUI frontend for the Nmap scanning utility
  • Zeek - System for detecting network intruders in real-time
  • Zaproxy - The OWASP zed attack proxy
  • Yubioath-desktop - GUI for displaying OATH codes with a Yubikey
  • Yubikey-personalization-gui - Graphical YubiKey personalization tool
  • Yubikey-manager-qt - Cross-platform application for configuring any YubiKey
  • Yubikey-agent - Seamless ssh-agent for YubiKeys
  • Yubico-piv-tool - Yubico PIV tool
  • Ylva - Command line password manager and file encryption program
  • Ykpers - Library and tool for personalization of Yubico's YubiKey
  • Ykclient - Yubico C client library
  • Yersinia - Layer 2 vulnerability scanner (switches, spanning tree, 802.1q ...)