The chacha20polyDecrypt function currently performs in-place decryption by passing cipherTxt[:0] as the destination to aead.Open. This overwrites the input cipherTxt slice with the decrypted plaintext.
This behavior is not documented and may be unexpected for callers who assume the input slice remains immutable. The implementation should be updated to avoid reusing the input storage, or the documentation should be updated to explicitly warn about this side effect.