pub struct CreatedFastCell {
pub circ_id: u32,
pub key_material: [u8; 20],
pub derivative_key: [u8; 20],
pub unused: Vec<u8>,
}Expand description
Response to CREATE_FAST circuit creation.
CREATED_FAST cells are sent by relays in response to CREATE_FAST cells. They contain the relay’s key material and a derivative key that proves the relay knows the shared secret.
§Key Derivation
The shared key material is: client_key_material || relay_key_material
This is used with KDF-TOR to derive encryption keys.
§Wire Format
[ CircID ][ 6 (CREATED_FAST) ][ Key Material (20) ][ Derivative Key (20) ][ Padding ]Fields§
§circ_id: u32Circuit ID this response is for.
key_material: [u8; 20]Relay’s random key material (20 bytes).
derivative_key: [u8; 20]Hash proving relay knows the shared key (20 bytes).
unused: Vec<u8>Unused padding bytes.
Implementations§
Source§impl CreatedFastCell
impl CreatedFastCell
Sourcepub fn new(circ_id: u32, derivative_key: [u8; 20]) -> Self
pub fn new(circ_id: u32, derivative_key: [u8; 20]) -> Self
Creates a new CREATED_FAST cell with random key material.
§Arguments
circ_id- Circuit ID this response is forderivative_key- Hash proving knowledge of shared key
Sourcepub fn with_key_material(
circ_id: u32,
key_material: [u8; 20],
derivative_key: [u8; 20],
) -> Self
pub fn with_key_material( circ_id: u32, key_material: [u8; 20], derivative_key: [u8; 20], ) -> Self
Creates a CREATED_FAST cell with specific key material.
§Arguments
circ_id- Circuit ID this response is forkey_material- Relay’s 20 bytes of key materialderivative_key- Hash proving knowledge of shared key
Trait Implementations§
Source§impl Clone for CreatedFastCell
impl Clone for CreatedFastCell
Source§fn clone(&self) -> CreatedFastCell
fn clone(&self) -> CreatedFastCell
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CreatedFastCell
impl Debug for CreatedFastCell
Source§impl PartialEq for CreatedFastCell
impl PartialEq for CreatedFastCell
impl StructuralPartialEq for CreatedFastCell
Auto Trait Implementations§
impl Freeze for CreatedFastCell
impl RefUnwindSafe for CreatedFastCell
impl Send for CreatedFastCell
impl Sync for CreatedFastCell
impl Unpin for CreatedFastCell
impl UnwindSafe for CreatedFastCell
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more