API Reference Noise Protocol v#0.3.0

View Source

Modules

Elixir implementation of the Noise Protocol Framework (revision 34).

A CipherState (spec §5.1): a 32-byte key k and a 64-bit nonce n.

Behaviour for AEAD cipher functions (spec §4.2).

AES-256-GCM cipher (spec §12.4): 96-bit big-endian nonce, 16-byte tag appended.

ChaCha20-Poly1305 cipher (spec §12.3): 96-bit little-endian nonce, 16-byte tag appended.

Behaviour for Diffie-Hellman functions (spec §4.1).

secp256k1 Diffie-Hellman, via the optional lib_secp256k1 dependency.

X25519 Diffie-Hellman (spec §12.1), via OTP :crypto.

X448 Diffie-Hellman (spec §12.2), via OTP :crypto.

Behaviour for hash functions (spec §4.3).

BLAKE2b Hash implementation.

BLAKE2s Hash implementation.

SHA-256 Hash implementation.

SHA-512 Hash implementation.

A HandshakeState (spec §5.3): the symmetric state plus the local and remote key material and the message patterns still to process.

A handshake pattern (spec §7): pre-messages and message token sequences.

A parsed Noise protocol name (spec §8): handshake pattern plus the DH, cipher and hash functions it names, resolved to implementation modules.

A SymmetricState (spec §5.2): chaining key ck, handshake hash h and an embedded Noise.CipherState.