Crate libp2p_noise
source ·Expand description
Noise protocol framework support for libp2p.
Note: This crate is still experimental and subject to major breaking changes both on the API and the wire protocol.
This crate provides libp2p_core::InboundUpgrade
and libp2p_core::OutboundUpgrade
implementations for various noise handshake patterns (currently IK
, IX
, and XX
)
over a particular choice of Diffie–Hellman key agreement (currently only X25519).
Note: Only the
XX
handshake pattern is currently guaranteed to provide interoperability with other libp2p implementations.
All upgrades produce as output a pair, consisting of the remote’s static public key
and a NoiseOutput
which represents the established cryptographic session with the
remote, implementing futures::io::AsyncRead
and futures::io::AsyncWrite
.
Usage
Example:
use libp2p_core::{identity, Transport, upgrade};
use libp2p_tcp::TcpTransport;
use libp2p_noise as noise;
let id_keys = identity::Keypair::generate_ed25519();
let noise = noise::Config::new(&id_keys).unwrap();
let builder = TcpTransport::default().upgrade(upgrade::Version::V1).authenticate(noise);
// let transport = builder.multiplex(...);
Structs
- The configuration for the noise handshake.
- LegacyConfigDeprecatedLegacy configuration options.
- NoiseAuthenticatedDeprecatedA
NoiseAuthenticated
transport upgrade that wraps around anyNoiseConfig
handshake and verifies that the remote identified with aRemoteIdentity::IdentityKey
, aborting otherwise. - NoiseConfigDeprecatedThe protocol upgrade configuration.
- A noise session to a remote.
Enums
- libp2p_noise error type.
- RemoteIdentityDeprecatedThe identity of the remote established during a handshake.
Traits
- ProtocolDeprecatedA Noise protocol over DH keys of type
C
. The choice ofC
determines the protocol parameters for each handshake pattern.
Type Definitions
- AuthenticKeypairDeprecated
- IKDeprecated
- IXDeprecated
- KeypairDeprecated
- KeypairIdentityDeprecated
- NoiseErrorDeprecated
- NoiseOutputDeprecated
- ProtocolParamsDeprecated
- PublicKeyDeprecated
- SecretKeyDeprecated
- X25519Deprecated
- X25519SpecDeprecated
- XXDeprecated