github.com/ooni/psiphon/tunnel-core@v0.0.0-20230105123940-fe12a24c96ee/oovendor/qtls-go1-18/cpu.go (about) 1 //go:build !js 2 // +build !js 3 4 package qtls 5 6 import ( 7 "runtime" 8 9 "golang.org/x/sys/cpu" 10 ) 11 12 var ( 13 hasGCMAsmAMD64 = cpu.X86.HasAES && cpu.X86.HasPCLMULQDQ 14 hasGCMAsmARM64 = cpu.ARM64.HasAES && cpu.ARM64.HasPMULL 15 // Keep in sync with crypto/aes/cipher_s390x.go. 16 hasGCMAsmS390X = cpu.S390X.HasAES && cpu.S390X.HasAESCBC && cpu.S390X.HasAESCTR && 17 (cpu.S390X.HasGHASH || cpu.S390X.HasAESGCM) 18 19 hasAESGCMHardwareSupport = runtime.GOARCH == "amd64" && hasGCMAsmAMD64 || 20 runtime.GOARCH == "arm64" && hasGCMAsmARM64 || 21 runtime.GOARCH == "s390x" && hasGCMAsmS390X 22 )