pub trait PacketKey: Send + Sync {
// Required methods
fn encrypt(&self, packet: u64, buf: &mut [u8], header_len: usize);
fn decrypt(
&self,
packet: u64,
header: &[u8],
payload: &mut BytesMut,
) -> Result<(), CryptoError>;
fn tag_len(&self) -> usize;
fn confidentiality_limit(&self) -> u64;
fn integrity_limit(&self) -> u64;
}Expand description
Keys used to protect packet payloads
Required Methods§
Sourcefn encrypt(&self, packet: u64, buf: &mut [u8], header_len: usize)
fn encrypt(&self, packet: u64, buf: &mut [u8], header_len: usize)
Encrypt the packet payload with the given packet number
Sourcefn decrypt(
&self,
packet: u64,
header: &[u8],
payload: &mut BytesMut,
) -> Result<(), CryptoError>
fn decrypt( &self, packet: u64, header: &[u8], payload: &mut BytesMut, ) -> Result<(), CryptoError>
Decrypt the packet payload with the given packet number
Sourcefn confidentiality_limit(&self) -> u64
fn confidentiality_limit(&self) -> u64
Maximum number of packets that may be sent using a single key
Sourcefn integrity_limit(&self) -> u64
fn integrity_limit(&self) -> u64
Maximum number of incoming packets that may fail decryption before the connection must be abandoned
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".