pub struct PacketSecurityBox<A, C> { /* private fields */ }Expand description
Bounded packet security helper combining nonce allocation, authentication, optional encryption, and replay checks.
Implementations§
Source§impl<A, C> PacketSecurityBox<A, C>
impl<A, C> PacketSecurityBox<A, C>
Sourcepub fn new(config: PacketSecurityConfig, authenticator: A, cipher: C) -> Self
pub fn new(config: PacketSecurityConfig, authenticator: A, cipher: C) -> Self
Creates a packet security box.
Sourcepub const fn config(&self) -> PacketSecurityConfig
pub const fn config(&self) -> PacketSecurityConfig
Returns configuration.
Sourcepub const fn stats(&self) -> PacketSecurityStats
pub const fn stats(&self) -> PacketSecurityStats
Returns statistics.
Sourcepub const fn replay(&self) -> &PacketReplayWindow
pub const fn replay(&self) -> &PacketReplayWindow
Borrows the replay window.
Sourcepub fn into_inner(self) -> (A, C, PacketReplayWindow)
pub fn into_inner(self) -> (A, C, PacketReplayWindow)
Consumes the box and returns its components.
Source§impl<A, C> PacketSecurityBox<A, C>where
A: PacketAuthenticator,
C: PacketCipher,
impl<A, C> PacketSecurityBox<A, C>where
A: PacketAuthenticator,
C: PacketCipher,
Sourcepub fn seal(
&mut self,
key_id: u32,
payload: &[u8],
) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
pub fn seal( &mut self, key_id: u32, payload: &[u8], ) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
Seals and encodes one payload.
Sourcepub fn seal_with_key_ring(
&mut self,
key_ring: &PacketKeyRing,
payload: &[u8],
now: Tick,
) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
pub fn seal_with_key_ring( &mut self, key_ring: &PacketKeyRing, payload: &[u8], now: Tick, ) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
Selects a send key from key_ring, then seals and encodes one payload.
Sourcepub fn seal_with_nonce(
&mut self,
key_id: u32,
nonce: u64,
payload: &[u8],
) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
pub fn seal_with_nonce( &mut self, key_id: u32, nonce: u64, payload: &[u8], ) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
Seals and encodes one payload with an explicit nonce.
Sourcepub fn seal_into(
&mut self,
key_id: u32,
payload: &[u8],
out: &mut Vec<u8>,
scratch: &mut PacketSecurityScratch,
) -> Result<u64, PacketSecurityError<A::Error, C::Error>>
pub fn seal_into( &mut self, key_id: u32, payload: &[u8], out: &mut Vec<u8>, scratch: &mut PacketSecurityScratch, ) -> Result<u64, PacketSecurityError<A::Error, C::Error>>
Seals and appends one payload using an allocated nonce and reusable storage.
Sourcepub fn seal_with_key_ring_into(
&mut self,
key_ring: &PacketKeyRing,
payload: &[u8],
now: Tick,
out: &mut Vec<u8>,
scratch: &mut PacketSecurityScratch,
) -> Result<(u32, u64), PacketSecurityError<A::Error, C::Error>>
pub fn seal_with_key_ring_into( &mut self, key_ring: &PacketKeyRing, payload: &[u8], now: Tick, out: &mut Vec<u8>, scratch: &mut PacketSecurityScratch, ) -> Result<(u32, u64), PacketSecurityError<A::Error, C::Error>>
Selects a key and appends one sealed payload using reusable storage.
Sourcepub fn seal_with_nonce_into(
&mut self,
key_id: u32,
nonce: u64,
payload: &[u8],
out: &mut Vec<u8>,
scratch: &mut PacketSecurityScratch,
) -> Result<(), PacketSecurityError<A::Error, C::Error>>
pub fn seal_with_nonce_into( &mut self, key_id: u32, nonce: u64, payload: &[u8], out: &mut Vec<u8>, scratch: &mut PacketSecurityScratch, ) -> Result<(), PacketSecurityError<A::Error, C::Error>>
Seals and appends one payload with an explicit nonce and reusable storage.
Sourcepub fn open(
&mut self,
input: &[u8],
) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
pub fn open( &mut self, input: &[u8], ) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
Decodes, authenticates, replay-checks, and opens one payload.
Sourcepub fn open_with_key_ring(
&mut self,
key_ring: &PacketKeyRing,
input: &[u8],
now: Tick,
) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
pub fn open_with_key_ring( &mut self, key_ring: &PacketKeyRing, input: &[u8], now: Tick, ) -> Result<Vec<u8>, PacketSecurityError<A::Error, C::Error>>
Decodes an envelope, validates its key against key_ring, then opens it.
Sourcepub fn open_with_scratch<'a>(
&mut self,
input: &[u8],
scratch: &'a mut PacketSecurityOpenScratch,
) -> Result<PacketSecurityOpenView<'a>, PacketSecurityError<A::Error, C::Error>>
pub fn open_with_scratch<'a>( &mut self, input: &[u8], scratch: &'a mut PacketSecurityOpenScratch, ) -> Result<PacketSecurityOpenView<'a>, PacketSecurityError<A::Error, C::Error>>
Opens one envelope into caller-owned reusable payload storage.
Sourcepub fn open_with_key_ring_and_scratch<'a>(
&mut self,
key_ring: &PacketKeyRing,
input: &[u8],
now: Tick,
scratch: &'a mut PacketSecurityOpenScratch,
) -> Result<PacketSecurityOpenView<'a>, PacketSecurityError<A::Error, C::Error>>
pub fn open_with_key_ring_and_scratch<'a>( &mut self, key_ring: &PacketKeyRing, input: &[u8], now: Tick, scratch: &'a mut PacketSecurityOpenScratch, ) -> Result<PacketSecurityOpenView<'a>, PacketSecurityError<A::Error, C::Error>>
Validates a key-ring entry and opens into caller-owned reusable storage.