Decrypt input (which should be in the format produced by encrypt_into) into output using AES-256-GCM with the provided 32-byte key.
The output buffer must be input.len() - NONCE_LEN - TAG_LEN bytes,
returns the number of bytes written to output (the length of the decrypted plaintext) or an error if decryption fails.
Encrypt input into output using AES-256-GCM with the provided 32-byte key.
The output buffer must be at least input.len() + NONCE_LEN + TAG_LEN bytes long,
returns the total number of bytes written to output (nonce + ciphertext + tag) or an error if encryption fails.