//go:build amd64 // +build amd64 package sm4 import ( "encoding/hex" "fmt" "testing" ) func TestAesni(t *testing.T) { key, _ := hex.DecodeString("AF07B5BDDF77A3727E9E5FEC48DA1D9E") // test 4 blocks for aesni src, _ := hex.DecodeString( "B358A63B7587FCCB46CD41FFE778D5C1" + "B358A63B7587FCCB46CD41FFE778D5C1" + "B358A63B7587FCCB46CD41FFE778D5C1" + "B358A63B7587FCCB46CD41FFE778D5C1", ) dst := make([]byte, len(src)) encKey := make([]uint32, 32) decKey := make([]uint32, 32) expandKey(key, encKey, decKey) encrypt4(dst, src, encKey) // dst = 6845268B 91394C00 6648E71A 2D6D68C1 * 4 for i := 0; i < 64; i++ { fmt.Printf("%02x ", dst[i]) if i > 0 && (i+1)%16 == 0 { fmt.Println() } } }