lnd/brontide
Alex Akselrod 0eec1e8cbd
brontide: add proxy subpackage for proxied brontide connections.
This commit adds a new `brontide/proxy` subpackage containing
two new structs. `proxy.Mux` is a multiplexer that allows multiple
`proxy.Conn` connections to be handled over a single brontide
connection. This can be used to allow a proxy running in a separate
process to handle connections to and from peers, freeing up the
node's process and dedicated hardware to ensuring the safety of
money entrusted to it.
2022-09-01 11:23:54 -07:00
..
proxy brontide: add proxy subpackage for proxied brontide connections. 2022-09-01 11:23:54 -07:00
bench_test.go brontide: add new benchmark to measure allocs for header+body decrypt 2021-08-27 16:57:09 -07:00
conn.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
listener.go brontide: fix typo 2020-12-04 23:07:53 +08:00
noise.go multi: fix make fmt 2022-08-23 22:10:24 +08:00
noise_test.go multi: move many t.Fatalf calls to require.NoError 2022-06-17 04:26:55 +00:00
README.md multi: unify code blocks in READMEs 2021-01-22 09:14:11 +01:00

brontide

Build Status MIT licensed GoDoc

The brontide package implements a secure crypto messaging protocol based off of the Noise Protocol Framework. The package exposes the raw state machine that handles the handshake and subsequent message encryption/decryption scheme. Additionally, the package exposes a net.Conn and a net.Listener interface implementation which allows the encrypted transport to be seamlessly integrated into a codebase.

The secure messaging scheme implemented within this package is described in detail in BOLT #8 of the Lightning Network specifications.

This package has intentionally been designed so it can be used as a standalone package for any projects needing secure encrypted+authenticated communications between network enabled programs.

Installation and Updating

⛰  go get -u github.com/lightningnetwork/lnd/brontide