INNER CODE UNIT · Rust
encrypt_in_place_detached
AChep/keyguard-app · thirdParty/rust/ocb3-0.1.0-keyguard/src/lib.rs:238
fn encrypt_in_place_detached(
&self,
nonce: &Nonce<NonceSize>,
associated_data: &[u8],
buffer: &mut [u8],
) -> aead::Result<aead::Tag<Self>> {
if (buffer.len() > P_MAX) || (associated_data.len() > A_MAX) {
unimplemented!()
}
// First, try to process many blocks at once.
let (processed_bytes, mut offset_i, mut checksum_i) = self.wide_encrypt(nonce, buffer);
let mut i = (processed_bytes / 16) + 1;
// Then, process the remaining blocks.
for p_i in buffer[processed_bytes..].chunks_exact_mut(16) {
let p_i = Block::from_mut_slice(p_i);