...

Source file src/crypto/aes/modes.go

     1	// Copyright 2016 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	package aes
     6	
     7	import (
     8		"crypto/cipher"
     9	)
    10	
    11	// gcmAble is implemented by cipher.Blocks that can provide an optimized
    12	// implementation of GCM through the AEAD interface.
    13	// See crypto/cipher/gcm.go.
    14	type gcmAble interface {
    15		NewGCM(nonceSize, tagSize int) (cipher.AEAD, error)
    16	}
    17	
    18	// cbcEncAble is implemented by cipher.Blocks that can provide an optimized
    19	// implementation of CBC encryption through the cipher.BlockMode interface.
    20	// See crypto/cipher/cbc.go.
    21	type cbcEncAble interface {
    22		NewCBCEncrypter(iv []byte) cipher.BlockMode
    23	}
    24	
    25	// cbcDecAble is implemented by cipher.Blocks that can provide an optimized
    26	// implementation of CBC decryption through the cipher.BlockMode interface.
    27	// See crypto/cipher/cbc.go.
    28	type cbcDecAble interface {
    29		NewCBCDecrypter(iv []byte) cipher.BlockMode
    30	}
    31	
    32	// ctrAble is implemented by cipher.Blocks that can provide an optimized
    33	// implementation of CTR through the cipher.Stream interface.
    34	// See crypto/cipher/ctr.go.
    35	type ctrAble interface {
    36		NewCTR(iv []byte) cipher.Stream
    37	}
    38	

View as plain text