Struct NetCrypto

Source
pub struct NetCrypto { /* private fields */ }
Expand description

Struct that manages crypto connections to friends and handles net crypto packets from both UDP and TCP connections.

Implementations§

Source§

impl NetCrypto

Source

pub fn new(args: NetCryptoNewArgs) -> NetCrypto

Create new NetCrypto object

Source

pub async fn add_friend(&self, real_pk: PublicKey)

Add a friend to accept incoming connections from him.

Source

pub async fn remove_friend(&self, real_pk: PublicKey)

Remove a friend to stop accepting incoming connections from him.

Source

pub async fn add_connection( &self, peer_real_pk: PublicKey, peer_dht_pk: PublicKey, )

Add connection to a friend when its DHT PublicKey is known.

Source

pub async fn kill_connection( &self, real_pk: PublicKey, ) -> Result<(), KillConnectionError>

Kill a connection sending PACKET_ID_KILL packet and removing it from the connections list.

Source

pub async fn set_friend_udp_addr(&self, real_pk: PublicKey, saddr: SocketAddr)

Set friend’s UDP IP address when it gets known.

Source

pub async fn send_lossless( &self, real_pk: PublicKey, packet: Vec<u8>, ) -> Result<(), SendLosslessPacketError>

Send lossless packet to a friend via established connection.

Handle CookieRequest packet received from UDP socket

Handle CookieRequest packet received from TCP socket

Handle CookieResponse and if it’s correct change connection status to HandshakeSending.

Handle CookieResponse packet received from UDP socket

Handle CookieResponse packet received from TCP socket

Source

pub async fn handle_crypto_handshake( &self, connection: &mut CryptoConnection, packet: &CryptoHandshake, ) -> Result<(), HandlePacketError>

Handle CryptoHandshake and if it’s correct change connection status to NotConfirmed.

Source

pub async fn handle_udp_crypto_handshake( &self, packet: &CryptoHandshake, addr: SocketAddr, ) -> Result<(), HandlePacketError>

Handle CryptoHandshake packet received from UDP socket

Source

pub async fn handle_tcp_crypto_handshake( &self, packet: &CryptoHandshake, sender_pk: PublicKey, ) -> Result<(), HandlePacketError>

Handle CryptoHandshake packet received from TCP socket

Source

pub async fn handle_udp_crypto_data( &self, packet: &CryptoData, addr: SocketAddr, ) -> Result<(), HandlePacketError>

Handle CryptoData packet received from UDP socket

Source

pub async fn handle_tcp_crypto_data( &self, packet: &CryptoData, sender_pk: PublicKey, ) -> Result<(), HandlePacketError>

Handle CryptoData packet received from TCP socket

Source

pub async fn run(&self) -> Result<(), RunError>

Run net_crypto periodical tasks. Result future will never be completed successfully.

Source

pub async fn set_dht_pk_sink( &self, dht_pk_tx: UnboundedSender<(PublicKey, PublicKey)>, )

Set sink to send DHT PublicKey when it gets known.

Source

pub async fn set_connection_status_sink( &self, connection_status_tx: UnboundedSender<(PublicKey, bool)>, )

Set sink to send a connection status when it becomes connected or disconnected.

Source

pub async fn set_tcp_sink(&self, tcp_tx: Sender<(DataPayload, PublicKey)>)

Set sink for sending TCP packets via relays.

Trait Implementations§

Source§

impl Clone for NetCrypto

Source§

fn clone(&self) -> NetCrypto

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

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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 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.