secio is not maintained any more, and we advise against using it.
Use go-libp2p-tls and go-libp2p-noise instead.
A secure transport module for go-libp2p
go-libp2p-secio
is a component of the libp2p project, a
modular networking stack for developing peer-to-peer applications. It provides a
secure transport channel for go-libp2p
. Following an initial
plaintext handshake, all data exchanged between peers using go-libp2p-secio
is
encrypted and protected from eavesdropping.
libp2p supports multiple transport protocols, many of which
lack native channel security. go-libp2p-secio
is designed to work with
go-libp2p's "transport upgrader", which applies security
modules (like go-libp2p-secio
) to an insecure channel. go-libp2p-secio
implements the SecureTransport
interface, which
allows the upgrader to secure any underlying connection.
More detail on the handshake protocol and wire format used is available in the SECIO spec.
Most people building applications with libp2p will have no need to install
go-libp2p-secio
directly. It is included as a dependency of the main
go-libp2p
"entry point" module and is enabled by default.
For users who do not depend on go-libp2p
and are managing their libp2p module
dependencies in a more manual fashion, go-libp2p-secio
is a standard Go module
which can be installed with:
go get github.com/libp2p/go-libp2p-secio
This repo is gomod-compatible, and users of
go 1.11 and later with modules enabled will automatically pull the latest tagged release
by referencing this package. Upgrades to future releases can be managed using go get
,
or by editing your go.mod
file as described by the gomod documentation.
go-libp2p-secio
is enabled by default when constructing a new libp2p
Host, and it will be used to secure connections if both peers
support it and agree to use it when establishing the connection.
You can disable SECIO by using the Security
option
when constructing a libp2p Host
and passing in a different SecureTransport
implementation, for example,
go-libp2p-tls
.
Transport security can be disabled for development and testing by passing the
NoSecurity
global Option
.
Feel free to join in. All welcome. Open an issue!
This repository falls under the libp2p Code of Conduct.
MIT
The last gx published version of this module was: 2.0.30: QmSVaJe1aRjc78cZARTtf4pqvXERYwihyYhZWoVWceHnsK