Struct libp2p_noise::NoiseAuthenticated
source · 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, ()>
impl NoiseAuthenticated<XX, X25519Spec, ()>
sourcepub fn xx(id_keys: &Keypair) -> Result<Self, NoiseError>
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>
impl<P: Clone, C: Clone + Zeroize, R: Clone> Clone for NoiseAuthenticated<P, C, R>
source§fn clone(&self) -> NoiseAuthenticated<P, C, R>
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)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§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,
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>)
type Output = (PeerId, NoiseOutput<T>)
Output after the upgrade has been successfully negotiated and the handshake performed.
§type Error = NoiseError
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>>
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§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,
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>)
type Output = (PeerId, NoiseOutput<T>)
Output after the upgrade has been successfully negotiated and the handshake performed.
§type Error = NoiseError
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>>
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§impl<P, C: Zeroize, R> UpgradeInfo for NoiseAuthenticated<P, C, R>where
NoiseConfig<P, C, R>: UpgradeInfo,
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
type Info = <NoiseConfig<P, C, R> as UpgradeInfo>::Info
Opaque type representing a negotiable protocol.
§type InfoIter = <NoiseConfig<P, C, R> as UpgradeInfo>::InfoIter
type InfoIter = <NoiseConfig<P, C, R> as UpgradeInfo>::InfoIter
Iterator returned by
protocol_info
.source§fn protocol_info(&self) -> Self::InfoIter
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<C, U> InboundUpgradeExt<C> for Uwhere
U: InboundUpgrade<C>,
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,
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,
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<C, U> OutboundUpgradeExt<C> for Uwhere
U: OutboundUpgrade<C>,
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,
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,
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
.