[][src]Struct tox_packet::dht::Cookie

pub struct Cookie {
    pub time: u64,
    pub real_pk: PublicKey,
    pub dht_pk: PublicKey,
}

Cookie is a struct that holds two public keys of a node: long term key and short term DHT key.

When Alice establishes net_crypto connection with Bob she sends CookieRequest packet to Bob with her public keys and receives encrypted Cookie with these keys from CookieResponse packet. When Alice obtains a Cookie she uses it to send CryptoHandshake packet. This packet will contain received from Bob cookie and new Cookie generated by Alice. Then Bob checks his Coocke and uses Cookie from Alice to send CryptoHandshake packet to her.

Only node that encrypted a Cookie can decrypt it so when node gets CryptoHandshake packet with Cookie it can check that the sender of this packet received a cookie response.

Cookie also contains the time when it was generated. It's considered invalid after 15 seconds have elapsed since the moment of generation.

Serialized form:

LengthContent
8Cookie timestamp
32Long term PublicKey
32DHT PublicKey

Fields

time: u64

Time when this cookie was generated

real_pk: PublicKey

Long term PublicKey

dht_pk: PublicKey

DHT PublicKey

Implementations

impl Cookie[src]

pub fn new(real_pk: PublicKey, dht_pk: PublicKey) -> Cookie[src]

Create new Cookie

pub fn is_timed_out(&self) -> bool[src]

Check if this cookie is timed out.

Cookie considered timed out after 15 seconds since it was created.

Trait Implementations

impl Clone for Cookie[src]

impl Debug for Cookie[src]

impl Eq for Cookie[src]

impl FromBytes for Cookie[src]

impl PartialEq<Cookie> for Cookie[src]

impl StructuralEq for Cookie[src]

impl StructuralPartialEq for Cookie[src]

impl ToBytes for Cookie[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.