pub struct HeaderProtectionKey(HeaderProtectionKey);
Expand description
A QUIC header protection key
Tuple Fields§
§0: HeaderProtectionKey
Implementations§
source§impl HeaderProtectionKey
impl HeaderProtectionKey
fn new(suite: &'static Tls13CipherSuite, secret: &Prk) -> Self
sourcepub fn encrypt_in_place(
&self,
sample: &[u8],
first: &mut u8,
packet_number: &mut [u8],
) -> Result<(), Error>
pub fn encrypt_in_place( &self, sample: &[u8], first: &mut u8, packet_number: &mut [u8], ) -> Result<(), Error>
Adds QUIC Header Protection.
sample
must contain the sample of encrypted payload; see
Header Protection Sample.
first
must reference the first byte of the header, referred to as
packet[0]
in Header Protection Application.
packet_number
must reference the Packet Number field; this is
packet[pn_offset:pn_offset+pn_length]
in Header Protection Application.
Returns an error without modifying anything if sample
is not
the correct length (see Header Protection Sample and Self::sample_len()
),
or packet_number
is longer than allowed (see Packet Number Encoding and Decoding).
Otherwise, first
and packet_number
will have the header protection added.
sourcepub fn decrypt_in_place(
&self,
sample: &[u8],
first: &mut u8,
packet_number: &mut [u8],
) -> Result<(), Error>
pub fn decrypt_in_place( &self, sample: &[u8], first: &mut u8, packet_number: &mut [u8], ) -> Result<(), Error>
Removes QUIC Header Protection.
sample
must contain the sample of encrypted payload; see
Header Protection Sample.
first
must reference the first byte of the header, referred to as
packet[0]
in Header Protection Application.
packet_number
must reference the Packet Number field; this is
packet[pn_offset:pn_offset+pn_length]
in Header Protection Application.
Returns an error without modifying anything if sample
is not
the correct length (see Header Protection Sample and Self::sample_len()
),
or packet_number
is longer than allowed (see
Packet Number Encoding and Decoding).
Otherwise, first
and packet_number
will have the header protection removed.
fn xor_in_place( &self, sample: &[u8], first: &mut u8, packet_number: &mut [u8], masked: bool, ) -> Result<(), Error>
sourcepub fn sample_len(&self) -> usize
pub fn sample_len(&self) -> usize
Expected sample length for the key’s algorithm
Auto Trait Implementations§
impl Freeze for HeaderProtectionKey
impl RefUnwindSafe for HeaderProtectionKey
impl Send for HeaderProtectionKey
impl Sync for HeaderProtectionKey
impl Unpin for HeaderProtectionKey
impl UnwindSafe for HeaderProtectionKey
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
§impl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
§type PreprendResult = Tail
type PreprendResult = Tail
TupleList
], of an [Prepend::prepend()
] call,
including the prepended entry.