pub trait HeaderProtectionKey: Send + Sync {
// Required methods
fn encrypt_in_place(
&self,
sample: &[u8],
first: &mut u8,
packet_number: &mut [u8],
) -> Result<(), Error>;
fn decrypt_in_place(
&self,
sample: &[u8],
first: &mut u8,
packet_number: &mut [u8],
) -> Result<(), Error>;
fn sample_len(&self) -> usize;
}Expand description
A QUIC header protection key
Required Methods§
Sourcefn encrypt_in_place(
&self,
sample: &[u8],
first: &mut u8,
packet_number: &mut [u8],
) -> Result<(), Error>
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.
Sourcefn decrypt_in_place(
&self,
sample: &[u8],
first: &mut u8,
packet_number: &mut [u8],
) -> Result<(), Error>
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.
Sourcefn sample_len(&self) -> usize
fn sample_len(&self) -> usize
Expected sample length for the key’s algorithm