[−][src]Struct tox_packet::dht::Cookie
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:
Length | Content |
---|---|
8 | Cookie timestamp |
32 | Long term PublicKey |
32 | DHT 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
impl RefUnwindSafe for Cookie
[src]
impl Send for Cookie
[src]
impl Sync for Cookie
[src]
impl Unpin for Cookie
[src]
impl UnwindSafe for Cookie
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,