diff --git a/.github/workflows/test_qemu.yml b/.github/workflows/test_qemu.yml index 3998b8d..242cd58 100644 --- a/.github/workflows/test_qemu.yml +++ b/.github/workflows/test_qemu.yml @@ -45,4 +45,6 @@ jobs: - name: Test run: go test -v -short ./... env: + DISABLE_SM3NI: 1 + DISABLE_SM4NI: 1 GOARCH: ${{ matrix.arch }} diff --git a/sm3/sm3block_arm64.go b/sm3/sm3block_arm64.go index 3d9f4b0..fd464f2 100644 --- a/sm3/sm3block_arm64.go +++ b/sm3/sm3block_arm64.go @@ -3,9 +3,12 @@ package sm3 -import "golang.org/x/sys/cpu" +import ( + "os" + "golang.org/x/sys/cpu" +) -var useSM3NI = cpu.ARM64.HasSM3 +var useSM3NI = cpu.ARM64.HasSM3 && os.Getenv("DISABLE_SM3NI")) != "1" var t = []uint32{ 0x79cc4519, diff --git a/sm4/cipher_asm.go b/sm4/cipher_asm.go index 61d3395..e08d57e 100644 --- a/sm4/cipher_asm.go +++ b/sm4/cipher_asm.go @@ -5,12 +5,13 @@ package sm4 import ( "crypto/cipher" + "os" "github.com/emmansun/gmsm/internal/alias" "golang.org/x/sys/cpu" ) -var supportSM4 = cpu.ARM64.HasSM4 +var supportSM4 = cpu.ARM64.HasSM4 && os.Getenv("DISABLE_SM4NI") != "1" var supportsAES = cpu.X86.HasAES || cpu.ARM64.HasAES var supportsGFMUL = cpu.X86.HasPCLMULQDQ || cpu.ARM64.HasPMULL var useAVX2 = cpu.X86.HasAVX2 && cpu.X86.HasBMI2