pub struct Hello<P: PublicKey> { /* private fields */ }
Expand description
A signed hello message.
Allows recipient to verify that the sender has the private key of public key before sending any data.
By requiring the server to have their public key signed, they prevent a malicious peer from forwarding a handshake message from a previous connection with public key (which could be used to convince the server to start a useless handshake). Alternatively, we could require the dialer to sign some random bytes provided by the server but this would require the server to send a message to a peer before authorizing that it should connect to them.
Implementations§
Trait Implementations§
Source§impl<P: PublicKey> EncodeSize for Hello<P>
impl<P: PublicKey> EncodeSize for Hello<P>
Source§fn encode_size(&self) -> usize
fn encode_size(&self) -> usize
Returns the encoded size of this value (in bytes).
Auto Trait Implementations§
impl<P> Freeze for Hello<P>
impl<P> RefUnwindSafe for Hello<P>
impl<P> Send for Hello<P>
impl<P> Sync for Hello<P>
impl<P> Unpin for Hello<P>
impl<P> UnwindSafe for Hello<P>
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<T> Encode for Twhere
T: Write + EncodeSize,
impl<T> Encode for Twhere
T: Write + EncodeSize,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more