Off-the-record (OTR) messaging protocol, purely in OCaml