| // 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 |
| } |