pub fn encrypt(key: &[u8; 32], plaintext: &[u8]) -> CryptoResult<Vec<u8>>
Encrypt data using XChaCha20-Poly1305
Returns: nonce (24 bytes) || ciphertext || tag (16 bytes)