| // Copyright 2016 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package aes | |
| import ( | |
| "crypto/cipher" | |
| ) | |
| // gcmAble is implemented by cipher.Blocks that can provide an optimized | |
| // implementation of GCM through the AEAD interface. | |
| // See crypto/cipher/gcm.go. | |
| type gcmAble interface { | |
| NewGCM(nonceSize, tagSize int) (cipher.AEAD, error) | |
| } | |
| // cbcEncAble is implemented by cipher.Blocks that can provide an optimized | |
| // implementation of CBC encryption through the cipher.BlockMode interface. | |
| // See crypto/cipher/cbc.go. | |
| type cbcEncAble interface { | |
| NewCBCEncrypter(iv []byte) cipher.BlockMode | |
| } | |
| // cbcDecAble is implemented by cipher.Blocks that can provide an optimized | |
| // implementation of CBC decryption through the cipher.BlockMode interface. | |
| // See crypto/cipher/cbc.go. | |
| type cbcDecAble interface { | |
| NewCBCDecrypter(iv []byte) cipher.BlockMode | |
| } | |
| // ctrAble is implemented by cipher.Blocks that can provide an optimized | |
| // implementation of CTR through the cipher.Stream interface. | |
| // See crypto/cipher/ctr.go. | |
| type ctrAble interface { | |
| NewCTR(iv []byte) cipher.Stream | |
| } |