pub fn aes_gcm_encrypt( key: &[u8], nonce: &[u8], plaintext: &[u8], aad: &[u8], ) -> Result<(Vec<u8>, Vec<u8>), String>