Accepting

Struct Accepting 

Source
pub struct Accepting<I, O, RNG, K = SecretKey> { /* private fields */ }
Expand description

accept incoming handshake

upon opening an ASMTP session with our node, the initiator will send the initial handshake to authenticate themselves and the responser is required to respond accordingly.

This object offers the necessary tooling to identify the initiator so it is possible to deny the connection early enough (see Accepting::accept)

Implementations§

Source§

impl<I, O, K, RNG> Accepting<I, O, RNG, K>
where I: AsyncRead + Unpin, O: AsyncWrite + Unpin, K: Dh, RNG: CryptoRng + RngCore,

Source

pub async fn accept<F>(self, k: &K, check_id: F) -> Result<Handle<I, O>>
where F: Fn(&PublicKey) -> bool,

perform the initial handshake with the peer

Upon receiving the initial handshake message, the function check_id will verify the public key of the user. For example the user can maintain a list of unwelcome public keys.

If the peer is accepted and is using a supported version of the protocol then the functions replies the response handshake.

§Errors

This function may fail for IO operations as well as for processing the noise handshake.

Auto Trait Implementations§

§

impl<I, O, RNG, K> Freeze for Accepting<I, O, RNG, K>
where I: Freeze, O: Freeze, RNG: Freeze, K: Freeze,

§

impl<I, O, RNG, K> RefUnwindSafe for Accepting<I, O, RNG, K>

§

impl<I, O, RNG, K> Send for Accepting<I, O, RNG, K>
where I: Send, O: Send, RNG: Send, K: Send,

§

impl<I, O, RNG, K> Sync for Accepting<I, O, RNG, K>
where I: Sync, O: Sync, RNG: Sync, K: Sync,

§

impl<I, O, RNG, K> Unpin for Accepting<I, O, RNG, K>
where I: Unpin, O: Unpin, RNG: Unpin, K: Unpin,

§

impl<I, O, RNG, K> UnwindSafe for Accepting<I, O, RNG, K>
where I: UnwindSafe, O: UnwindSafe, RNG: UnwindSafe, K: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where 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<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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 T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more