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;
}展开描述
QUIC 报文头保护密钥
必需方法§
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 到 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 并 Self::sample_len()),
或 packet_number is longer than allowed (see Packet Number Encoding 并 Decoding)。
Otherwise, first 并 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 到 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 并 Self::sample_len()),
或 packet_number is longer than allowed (see
Packet Number Encoding 并 Decoding)。
Otherwise, first 并 packet_number will have the header protection removed.
Sourcefn sample_len(&self) -> usize
fn sample_len(&self) -> usize
Expected sample length 用于 the key’s 算法