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.