func gcmAesInit(productTable *[256]byte, ks []uint32)
func gcmAesData(productTable *[256]byte, data []byte, T *[16]byte)
func gcmAesEnc(productTable *[256]byte, dst, src []byte, ctr, T *[16]byte, ks []uint32)
func gcmAesDec(productTable *[256]byte, dst, src []byte, ctr, T *[16]byte, ks []uint32)
func gcmAesFinish(productTable *[256]byte, tagMask, T *[16]byte, pLen, dLen uint64)
const gcmBlockSize …
const gcmTagSize …
const gcmMinimumTagSize …
const gcmStandardNonceSize …
var errOpen …
var _ …
func (c *aesCipherGCM) NewGCM(nonceSize, tagSize int) (cipher.AEAD, error) { … }
type gcmAsm …
func (g *gcmAsm) NonceSize() int { … }
func (g *gcmAsm) Overhead() int { … }
func sliceForAppend(in []byte, n int) (head, tail []byte) { … }
func (g *gcmAsm) Seal(dst, nonce, plaintext, data []byte) []byte { … }
func (g *gcmAsm) Open(dst, nonce, ciphertext, data []byte) ([]byte, error) { … }