Struct tink_aead::subtle::EncryptThenAuthenticate
source · pub struct EncryptThenAuthenticate { /* private fields */ }
Expand description
EncryptThenAuthenticate
performs an encrypt-then-MAC operation on plaintext
and additional authenticated data (aad). The MAC is computed over (aad ||
ciphertext || size of aad). This implementation is based on
http://tools.ietf.org/html/draft-mcgrew-aead-aes-cbc-hmac-sha2-05.
Implementations§
source§impl EncryptThenAuthenticate
impl EncryptThenAuthenticate
sourcepub fn new(
ind_cpa_cipher: Box<dyn IndCpaCipher>,
mac: Box<dyn Mac>,
tag_size: usize
) -> Result<EncryptThenAuthenticate, TinkError>
pub fn new( ind_cpa_cipher: Box<dyn IndCpaCipher>, mac: Box<dyn Mac>, tag_size: usize ) -> Result<EncryptThenAuthenticate, TinkError>
Return a new instance of EncryptThenAuthenticate.
Trait Implementations§
source§impl Aead for EncryptThenAuthenticate
impl Aead for EncryptThenAuthenticate
source§fn encrypt(
&self,
plaintext: &[u8],
additional_data: &[u8]
) -> Result<Vec<u8>, TinkError>
fn encrypt( &self, plaintext: &[u8], additional_data: &[u8] ) -> Result<Vec<u8>, TinkError>
Encrypt plaintext
with additional_data
as additional authenticated
data. The resulting ciphertext allows for checking authenticity and
integrity of additional data, but does not guarantee its secrecy.
The plaintext is encrypted with an IndCpaCipher
, then MAC is computed over
(additional_data || ciphertext || n) where n is additional_data’s length
in bits represented as a 64-bit bigendian unsigned integer. The final
ciphertext format is (IND-CPA ciphertext || mac).
source§impl Clone for EncryptThenAuthenticate
impl Clone for EncryptThenAuthenticate
Manual implementation of Clone
relying on the trait bounds for
primitives to provide .box_clone()
methods.