type MakeBlockMode … // TestBlockMode performs a set of tests on cipher.BlockMode implementations, // checking the documented requirements of CryptBlocks. func TestBlockMode(t *testing.T, block cipher.Block, makeEncrypter, makeDecrypter MakeBlockMode) { … } func testBlockModePair(t *testing.T, b cipher.Block, enc, dec MakeBlockMode, iv []byte) { … } func testBlockMode(t *testing.T, bm MakeBlockMode, b cipher.Block, iv []byte) { … }