//go:build amd64 || arm64 // +build amd64 arm64 package sm4 import "crypto/cipher" /*TODO use aesni to improve performance */ type sm4CipherGCM struct { sm4CipherAsm } // NewGCM returns the SM4 cipher wrapped in Galois Counter Mode. This is only // called by crypto/cipher.NewGCM via the gcmAble interface. // // 调用crypto/cipher.NewGCM的时候在回调sm4CipherGCM.NewGCM func (c *sm4CipherGCM) NewGCM(nonceSize, tagSize int) (cipher.AEAD, error) { // TODO 判断size,先返回错误 // 现在是默认实现-sm4CipherAsm没有gcmAble接口 return cipher.NewGCM(&c.sm4CipherAsm) }