pub struct Cookie {
pub time: u64,
pub real_pk: PublicKey,
pub dht_pk: PublicKey,
}
Expand description
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