type cbc … func newCBC(b Block, iv []byte) *cbc { … } type cbcEncrypter … type cbcEncAble … // NewCBCEncrypter returns a BlockMode which encrypts in cipher block chaining // mode, using the given Block. The length of iv must be the same as the // Block's block size. func NewCBCEncrypter(b Block, iv []byte) BlockMode { … } // newCBCGenericEncrypter returns a BlockMode which encrypts in cipher block chaining // mode, using the given Block. The length of iv must be the same as the // Block's block size. This always returns the generic non-asm encrypter for use // in fuzz testing. func newCBCGenericEncrypter(b Block, iv []byte) BlockMode { … } func (x *cbcEncrypter) BlockSize() int { … } func (x *cbcEncrypter) CryptBlocks(dst, src []byte) { … } func (x *cbcEncrypter) SetIV(iv []byte) { … } type cbcDecrypter … type cbcDecAble … // NewCBCDecrypter returns a BlockMode which decrypts in cipher block chaining // mode, using the given Block. The length of iv must be the same as the // Block's block size and must match the iv used to encrypt the data. func NewCBCDecrypter(b Block, iv []byte) BlockMode { … } // newCBCGenericDecrypter returns a BlockMode which encrypts in cipher block chaining // mode, using the given Block. The length of iv must be the same as the // Block's block size. This always returns the generic non-asm decrypter for use in // fuzz testing. func newCBCGenericDecrypter(b Block, iv []byte) BlockMode { … } func (x *cbcDecrypter) BlockSize() int { … } func (x *cbcDecrypter) CryptBlocks(dst, src []byte) { … } func (x *cbcDecrypter) SetIV(iv []byte) { … }