Module Otr

Off-the-Record, in pure OCaml

Off-the-Record (OTR) (developed by Goldberg et al.) is a cryptographic protocol used in instant messaging. It provides both authentication (using long-term 1024 bit DSA keys), and encryption (using AES 128 in counter mode). An authenticated Diffie-Hellman key exchange (with 1536 bit Oakley5 group) establishes the shared secrets (providing forward secrecy).

The socialist millionaire problem (SMP) allows in-band verification of the long-term DSA keys using a shared secret and zero knowledge proofs.

This implementation covers both protocol version 2 and version 3, and implements the socialist millionairs problem. State defines configuration and types, Engine processing of incoming and outgoing messages as well as initiation and teardown of sessions and socialist millionairs problem, and Utils provides basic fingerprint utilities as defined in the OTR specification.

v1.0.0 - homepage

module State : sig ... end

States and types

module Engine : sig ... end

Message processing

module Utils : sig ... end

Utilities