ocaml-noise is an OCaml implementation of the Noise Protocol Framework, revision 34.
| Component | Supported |
|---|---|
| DH | Curve25519 (X25519) |
| AEAD ciphers | AES-256-GCM, ChaCha20-Poly1305 |
| Hashes | SHA-256, SHA-512, BLAKE2s, BLAKE2b |
| Patterns | all one-way (N, K, X), all 12 fundamental interactive, all 23 deferred |
| Modifiers | single pskN (e.g. NNpsk0, XXpsk3) |
Any protocol name combining the above works, e.g.
Noise_XX_25519_ChaChaPoly_BLAKE2s.
nix develop
dune runtest --forceThis runs three tests:
test_vectors: 472 externally generated vectors from cacophony that cover each pattern * suite combination.test_negative: tests for malformed protocol names, truncated/corrupted/replayed messages, prologue and PSK mismatches, oversized messages, and state-machine misuse.test_roundtrip: full handshakes with freshly generated keys.