stupidgcm: add CpuHasAES()
Makes the code clearer, and will be used in the next commit.
This commit is contained in:
parent
52b0444985
commit
61e37b2439
@ -21,17 +21,11 @@ func PreferOpenSSLAES256GCM() bool {
|
|||||||
if BuiltWithoutOpenssl {
|
if BuiltWithoutOpenssl {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
// Safe to call on other architectures - will just read false.
|
// If the CPU has AES acceleration, Go stdlib is faster
|
||||||
if cpu.X86.HasAES || cpu.ARM64.HasAES {
|
if CpuHasAES() {
|
||||||
// Go stdlib is probably faster
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
// On the Apple M1, Go stdlib is faster than OpenSSL, despite cpu.ARM64.HasAES
|
// Otherwise OpenSSL is probably faster
|
||||||
// reading false: https://github.com/rfjakob/gocryptfs/issues/556#issuecomment-848079309
|
|
||||||
if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
// OpenSSL is probably faster
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,3 +43,18 @@ func PreferOpenSSLXchacha20poly1305() bool {
|
|||||||
// On arm64 and arm, OpenSSL is faster. Probably everwhere else too.
|
// On arm64 and arm, OpenSSL is faster. Probably everwhere else too.
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CpuHasAES tells you if the CPU we are running has AES acceleration that is
|
||||||
|
// usable by the Go crypto library.
|
||||||
|
func CpuHasAES() bool {
|
||||||
|
// Safe to call on other architectures - will just read false.
|
||||||
|
if cpu.X86.HasAES || cpu.ARM64.HasAES {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// On the Apple M1, the CPU has AES acceleration, despite cpu.ARM64.HasAES
|
||||||
|
// reading false: https://github.com/rfjakob/gocryptfs/issues/556#issuecomment-848079309
|
||||||
|
if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user