https://github.com/libp2p/go-libp2p-secio
a minimal secure channel for libp2p
https://github.com/libp2p/go-libp2p-secio
Last synced: 11 months ago
JSON representation
a minimal secure channel for libp2p
- Host: GitHub
- URL: https://github.com/libp2p/go-libp2p-secio
- Owner: libp2p
- License: mit
- Archived: true
- Created: 2016-04-12T00:37:09.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2021-02-24T00:57:44.000Z (over 5 years ago)
- Last Synced: 2024-06-18T13:58:34.982Z (about 2 years ago)
- Language: Go
- Homepage:
- Size: 153 KB
- Stars: 44
- Watchers: 25
- Forks: 25
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DEPRECATION NOTICE
secio is not maintained any more, and we advise against using it.
Use [go-libp2p-tls](https://github.com/libp2p/go-libp2p-tls/) and [go-libp2p-noise](https://github.com/libp2p/go-libp2p-noise/) instead.
# go-libp2p-secio
[](https://protocol.ai)
[](https://libp2p.io/)
[](http://webchat.freenode.net/?channels=%23libp2p)
[](https://discuss.libp2p.io)
[](https://godoc.org/github.com/libp2p/go-libp2p-secio)
[](https://travis-ci.org/libp2p/go-libp2p-secio)
> A secure transport module for go-libp2p
`go-libp2p-secio` is a component of the [libp2p project](https://libp2p.io), a
modular networking stack for developing peer-to-peer applications. It provides a
secure transport channel for [`go-libp2p`][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][docs-transport], many of which
lack native channel security. `go-libp2p-secio` is designed to work with
go-libp2p's ["transport upgrader"][transport-upgrader], which applies security
modules (like `go-libp2p-secio`) to an insecure channel. `go-libp2p-secio`
implements the [`SecureTransport` interface][godoc-securetransport], 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][secio-spec].
## Install
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`][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:
```sh
go get github.com/libp2p/go-libp2p-secio
```
This repo is [gomod](https://github.com/golang/go/wiki/Modules)-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](https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies).
## Usage
`go-libp2p-secio` is enabled by default when constructing a new libp2p
[Host][godoc-host], and it will be used to secure connections if both peers
support it and [agree to use it][conn-spec] when establishing the connection.
You can disable SECIO by using the [`Security` option][godoc-security-option]
when constructing a libp2p `Host` and passing in a different `SecureTransport`
implementation, for example,
[`go-libp2p-tls`](https://github.com/libp2p/go-libp2p-tls).
Transport security can be disabled for development and testing by passing the
`NoSecurity` global [`Option`][godoc-option].
## Contribute
Feel free to join in. All welcome. Open an [issue](https://github.com/libp2p/go-libp2p-secio/issues)!
This repository falls under the libp2p [Code of Conduct](https://github.com/libp2p/community/blob/master/code-of-conduct.md).
### Want to hack on libp2p?
[](https://github.com/libp2p/community/blob/master/CONTRIBUTE.md)
## License
MIT
---
The last gx published version of this module was: 2.0.30: QmSVaJe1aRjc78cZARTtf4pqvXERYwihyYhZWoVWceHnsK
[go-libp2p]: https://github.com/libp2p/go-libp2p
[secio-spec]: https://github.com/libp2p/specs/blob/master/secio/README.md
[conn-spec]: https://github.com/libp2p/specs/blob/master/connections/README.md
[docs-transport]: https://docs.libp2p.io/concepts/transport
[transport-upgrader]: https://github.com/libp2p/go-libp2p-transport-upgrader
[godoc-host]: https://godoc.org/github.com/libp2p/go-libp2p-core/host#Host
[godoc-option]: https://godoc.org/github.com/libp2p/go-libp2p#Option
[godoc-security-option]: https://godoc.org/github.com/libp2p/go-libp2p#Security
[godoc-securetransport]: https://godoc.org/github.com/libp2p/go-libp2p-core/sec#SecureTransport