var lengths … type MakeAEAD … // TestAEAD performs a set of tests on cipher.AEAD implementations, checking // the documented requirements of NonceSize, Overhead, Seal and Open. func TestAEAD(t *testing.T, mAEAD MakeAEAD) { … } // Helper function to Seal a plaintext with additional data. Checks that // ciphertext isn't bigger than the plaintext length plus Overhead() func sealMsg(t *testing.T, aead cipher.AEAD, ciphertext, nonce, plaintext, addData []byte) []byte { … } // Helper function to Open and authenticate ciphertext. Checks that Open // doesn't error (assuming ciphertext was well-formed with corresponding nonce // and additional data). func openWithoutError(t *testing.T, aead cipher.AEAD, plaintext, nonce, ciphertext, addData []byte) []byte { … }