lnd.xprv/brontide
Olaoluwa Osuntokun fdaeab7c9b
brontide: refer directly to the curve object in btcec's global namespace
This commit modifies the `ecdh` function within the `brontide` package
to refer directly to the global curve params object in the `bcec`
package rather than reference it from the target public key. This
changes fixes a class of panics that have been uncovered recently but
*doesn’t* yet fix the root cause.
2017-02-28 17:44:32 -06:00
..
conn.go brontide: exclude MAC length from cipher text packet length prefix 2017-01-07 21:21:52 -08:00
listener.go brontide: implement handshake versioning enforcement per the spec 2016-11-30 19:11:58 -08:00
noise_test.go brontide: exclude MAC length from cipher text packet length prefix 2017-01-07 21:21:52 -08:00
noise.go brontide: refer directly to the curve object in btcec's global namespace 2017-02-28 17:44:32 -06:00
README.md multi: add link to LICENSE in README license badges (#100) 2017-01-12 16:31:08 -08:00

brontide

[Build Status] (https://travis-ci.org/lightningnetwork/lnd) [MIT licensed] (https://github.com/lightningnetwork/lnd/blob/master/LICENSE) [GoDoc] (http://godoc.org/github.com/lightningnetwork/lnd/brontide)

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