package noise
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
An OCaml implementation of the Noise Protocol Framework (rev 34)
Install
dune-project
Dependency
Authors
Maintainers
Sources
noise-v0.2.0.tbz
sha256=3970103d44c960cd97a44f571079d0b04c170874a89f8fb1c9cd94ff912952db
sha512=fb5ffc7e3156532444556caf702d14180c94b08f12bd1b7db9febee4a16100868b73b31ff668f09bcfae5de04e973ecc1c4e83cf7630eaa4fd19afecebe5333b
doc/CHANGES.html
0.2.0
Handshake.split_raw: extract the two raw 32-byte transport keys from a finished handshake, for driving a custom transport like WireGuard's explicit-nonce data channel instead ofTransport. Shares the extracted-once semantics ofTransport.of_handshake.Handshake.remote_static: read the peer's static public key once the handshake reveals it, so a responder can map a connection to a known peer or account.- Documented the CSPRNG requirement, the absence of key zeroization, and the need for constant-time comparison of
handshake_hash/remote_static. - New
ik_custom_transportexample: an IK handshake with peer identification and a hand-rolled explicit-nonce, reordering-tolerant transport over the raw keys. - Reject a PSK modifier whose index exceeds the pattern's message count like
XXpsk4instead of silently dropping the PSK. - Validate the length of
?rs/?republic keys at handshake creation rather than mixing a malformed key into the transcript.
0.1.0
Initial release.
- Full Noise Protocol Framework revision 34 implementation
- Curve25519 (X25519) DH
- AES-256-GCM and ChaCha20-Poly1305 ciphers
- SHA-256, SHA-512, BLAKE2s, BLAKE2b hashes
- All fundamental patterns (N, K, X, NN, NK, NX, KN, KK, KX, XN, XK, XX, IN, IK, IX) and deferred variants
- PSK modifier support (psk0 through pskN)
- All 472 Curve25519 cacophony test vectors pass
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page