Struct libp2p::noise::NoiseAuthenticated
source · pub struct NoiseAuthenticated<P, C, R>where
C: Zeroize,{ /* 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<NoiseAuthenticated<XX, X25519Spec, ()>, NoiseError>
pub fn xx( id_keys: &Keypair ) -> Result<NoiseAuthenticated<XX, X25519Spec, ()>, 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, C, R> Clone for NoiseAuthenticated<P, C, R>where
P: Clone,
C: Clone + Zeroize,
R: Clone,
impl<P, C, R> Clone for NoiseAuthenticated<P, C, R>where P: Clone, C: Clone + Zeroize, R: Clone,
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§fn upgrade_inbound(
self,
socket: T,
info: <NoiseAuthenticated<P, C, R> as UpgradeInfo>::Info
) -> <NoiseAuthenticated<P, C, R> as InboundUpgrade<T>>::Future
fn upgrade_inbound( self, socket: T, info: <NoiseAuthenticated<P, C, R> as UpgradeInfo>::Info ) -> <NoiseAuthenticated<P, C, R> as InboundUpgrade<T>>::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,
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§fn upgrade_outbound(
self,
socket: T,
info: <NoiseAuthenticated<P, C, R> as UpgradeInfo>::Info
) -> <NoiseAuthenticated<P, C, R> as OutboundUpgrade<T>>::Future
fn upgrade_outbound( self, socket: T, info: <NoiseAuthenticated<P, C, R> as UpgradeInfo>::Info ) -> <NoiseAuthenticated<P, C, R> as OutboundUpgrade<T>>::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, R> UpgradeInfo for NoiseAuthenticated<P, C, R>where
C: Zeroize,
NoiseConfig<P, C, R>: UpgradeInfo,
impl<P, C, R> UpgradeInfo for NoiseAuthenticated<P, C, R>where C: Zeroize, 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
) -> <NoiseAuthenticated<P, C, R> as UpgradeInfo>::InfoIter
fn protocol_info( &self ) -> <NoiseAuthenticated<P, C, R> as UpgradeInfo>::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<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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
.