1
0
forked from QPQ-AG/enoise
Files
zNoise/README.md
T
2026-06-12 11:02:47 +09:00

1.2 KiB

zNoise

An Erlang implementation of the Noise protocol

zNoise provides a generic handshake mechanism, that can be used in a couple of different ways. There is also a plain gen_tcp wrapper, where you can "upgrade" a TCP socket to a Noise socket and use it in much the same way as you would use gen_tcp.

Interactive handshake

When using zNoise to do an interactive handshake, zNoise will only take care of message composition/decompositiona and encryption/decryption - i.e. the user has to do the actual sending and receiving.

An example of the interactive handshake can be seen in the noise_interactive test in test/enoise_tests.erl.

Generic handshake

There is also the option to use an automated handshake procedure. If provided with a generic Communication state that describe how data is sent and received, the handshake procedure is done automatically. The result of a successful handshake is two Cipher states that can be used to encrypt/decrypt a RX channel and a TX channel respectively.

The provided gen_tcp-wrapper is implemented using the generic handshake, see src/enoise.erl.