pub struct NoiseAuthenticated<P, C: Zeroize, R> { /* private fields */ }
Expand description

A NoiseAuthenticated transport upgrade that wraps around any NoiseConfig handshake and verifies that the remote identified with a RemoteIdentity::IdentityKey, aborting otherwise.

See NoiseConfig::into_authenticated.

On success, the upgrade yields the PeerId obtained from the RemoteIdentity. The output of this upgrade is thus directly suitable for creating an authenticated transport for use with a Swarm.

Implementations§

source§

impl NoiseAuthenticated<XX, X25519Spec, ()>

source

pub fn xx(id_keys: &Keypair) -> Result<Self, NoiseError>

Create a new NoiseAuthenticated for the XX handshake pattern using X25519 DH keys.

For now, this is the only combination that is guaranteed to be compatible with other libp2p implementations.

Trait Implementations§

source§

impl<P: Clone, C: Clone + Zeroize, R: Clone> Clone for NoiseAuthenticated<P, C, R>

source§

fn clone(&self) -> NoiseAuthenticated<P, C, R>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T, P, C, R> InboundUpgrade<T> for NoiseAuthenticated<P, C, R>where NoiseConfig<P, C, R>: UpgradeInfo + InboundUpgrade<T, Output = (RemoteIdentity<C>, NoiseOutput<T>), Error = NoiseError> + 'static, <NoiseConfig<P, C, R> as InboundUpgrade<T>>::Future: Send, T: AsyncRead + AsyncWrite + Send + 'static, C: Protocol<C> + AsRef<[u8]> + Zeroize + Send + 'static,

§

type Output = (PeerId, NoiseOutput<T>)

Output after the upgrade has been successfully negotiated and the handshake performed.
§

type Error = NoiseError

Possible error during the handshake.
§

type Future = Pin<Box<dyn Future<Output = Result<<NoiseAuthenticated<P, C, R> as InboundUpgrade<T>>::Output, <NoiseAuthenticated<P, C, R> as InboundUpgrade<T>>::Error>> + Send, Global>>

Future that performs the handshake with the remote.
source§

fn upgrade_inbound(self, socket: T, info: Self::Info) -> Self::Future

After we have determined that the remote supports one of the protocols we support, this method is called to start the handshake. Read more
source§

impl<T, P, C, R> OutboundUpgrade<T> for NoiseAuthenticated<P, C, R>where NoiseConfig<P, C, R>: UpgradeInfo + OutboundUpgrade<T, Output = (RemoteIdentity<C>, NoiseOutput<T>), Error = NoiseError> + 'static, <NoiseConfig<P, C, R> as OutboundUpgrade<T>>::Future: Send, T: AsyncRead + AsyncWrite + Send + 'static, C: Protocol<C> + AsRef<[u8]> + Zeroize + Send + 'static,

§

type Output = (PeerId, NoiseOutput<T>)

Output after the upgrade has been successfully negotiated and the handshake performed.
§

type Error = NoiseError

Possible error during the handshake.
§

type Future = Pin<Box<dyn Future<Output = Result<<NoiseAuthenticated<P, C, R> as OutboundUpgrade<T>>::Output, <NoiseAuthenticated<P, C, R> as OutboundUpgrade<T>>::Error>> + Send, Global>>

Future that performs the handshake with the remote.
source§

fn upgrade_outbound(self, socket: T, info: Self::Info) -> Self::Future

After we have determined that the remote supports one of the protocols we support, this method is called to start the handshake. Read more
source§

impl<P, C: Zeroize, R> UpgradeInfo for NoiseAuthenticated<P, C, R>where NoiseConfig<P, C, R>: UpgradeInfo,

§

type Info = <NoiseConfig<P, C, R> as UpgradeInfo>::Info

Opaque type representing a negotiable protocol.
§

type InfoIter = <NoiseConfig<P, C, R> as UpgradeInfo>::InfoIter

Iterator returned by protocol_info.
source§

fn protocol_info(&self) -> Self::InfoIter

Returns the list of protocols that are supported. Used during the negotiation process.

Auto Trait Implementations§

§

impl<P, C, R> RefUnwindSafe for NoiseAuthenticated<P, C, R>where C: RefUnwindSafe, P: RefUnwindSafe, R: RefUnwindSafe,

§

impl<P, C, R> Send for NoiseAuthenticated<P, C, R>where C: Send, P: Send, R: Send,

§

impl<P, C, R> Sync for NoiseAuthenticated<P, C, R>where C: Sync, P: Sync, R: Sync,

§

impl<P, C, R> Unpin for NoiseAuthenticated<P, C, R>where C: Unpin, P: Unpin, R: Unpin,

§

impl<P, C, R> UnwindSafe for NoiseAuthenticated<P, C, R>where C: UnwindSafe, P: UnwindSafe, R: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<C, U> InboundUpgradeExt<C> for Uwhere U: InboundUpgrade<C>,

source§

fn map_inbound<F, T>(self, f: F) -> MapInboundUpgrade<Self, F>where Self: Sized, F: FnOnce(Self::Output) -> T,

Returns a new object that wraps around Self and applies a closure to the Output.
source§

fn map_inbound_err<F, T>(self, f: F) -> MapInboundUpgradeErr<Self, F>where Self: Sized, F: FnOnce(Self::Error) -> T,

Returns a new object that wraps around Self and applies a closure to the Error.
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<C, U> OutboundUpgradeExt<C> for Uwhere U: OutboundUpgrade<C>,

source§

fn map_outbound<F, T>(self, f: F) -> MapOutboundUpgrade<Self, F>where Self: Sized, F: FnOnce(Self::Output) -> T,

Returns a new object that wraps around Self and applies a closure to the Output.
source§

fn map_outbound_err<F, T>(self, f: F) -> MapOutboundUpgradeErr<Self, F>where Self: Sized, F: FnOnce(Self::Error) -> T,

Returns a new object that wraps around Self and applies a closure to the Error.
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V