[−][src]Function psa_crypto::operations::aead::encrypt
pub fn encrypt(
key_id: Id,
aead_alg: Aead,
nonce: &[u8],
additional_data: &[u8],
plaintext: &[u8],
ciphertext: &mut [u8]
) -> Result<usize>
Process an authenticated encryption operation.
Example
use psa_crypto::types::algorithm::{Aead, AeadWithDefaultLengthTag}; use psa_crypto::types::key::{Attributes, Type, Lifetime, Policy, UsageFlags}; use psa_crypto::operations::{key_management, aead}; let alg = Aead::AeadWithDefaultLengthTag(AeadWithDefaultLengthTag::Ccm); let attributes = Attributes { key_type: Type::Aes, bits: 0, lifetime: Lifetime::Volatile, policy: Policy { usage_flags: UsageFlags { encrypt: true, ..Default::default() }, permitted_algorithms: alg.into(), }, }; psa_crypto::init().unwrap(); let my_key = key_management::import(attributes, None, &KEY_DATA).unwrap(); let output_buffer_size = attributes.aead_encrypt_output_size(alg.into(), INPUT_DATA.len()).unwrap(); let mut output_buffer = vec![0; output_buffer_size]; let length = aead::encrypt(my_key, alg, &NONCE, &ADDITIONAL_DATA, &INPUT_DATA, &mut output_buffer).unwrap(); output_buffer.resize(length, 0);