internal/wycheproof: skip truncated SHA-512 RSAPSS tests for boring
On the boringcrypto builder, skip the RSAPSS tests that use the
truncated SHA-512 hashes, since boringcrypto does not support them.
Fixes #52670
Change-Id: I8caecd0f34eb6d2740372db2b641563e3965ac7c
Reviewed-on: https://go-review.googlesource.com/c/crypto/+/404654
Run-TryBot: Roland Shoemaker <roland@golang.org>
Auto-Submit: Roland Shoemaker <roland@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
diff --git a/internal/wycheproof/boring.go b/internal/wycheproof/boring.go
new file mode 100644
index 0000000..aefa3ab
--- /dev/null
+++ b/internal/wycheproof/boring.go
@@ -0,0 +1,9 @@
+// Copyright 2022 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build boringcrypto
+
+package wycheproof
+
+const boringcryptoEnabled = true
diff --git a/internal/wycheproof/notboring.go b/internal/wycheproof/notboring.go
new file mode 100644
index 0000000..746af13
--- /dev/null
+++ b/internal/wycheproof/notboring.go
@@ -0,0 +1,9 @@
+// Copyright 2022 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !boringcrypto
+
+package wycheproof
+
+const boringcryptoEnabled = false
diff --git a/internal/wycheproof/rsa_pss_test.go b/internal/wycheproof/rsa_pss_test.go
index 365ca92..2ad9a43 100644
--- a/internal/wycheproof/rsa_pss_test.go
+++ b/internal/wycheproof/rsa_pss_test.go
@@ -112,17 +112,22 @@
// works deterministically to auto-detect the length when
// verifying, so these tests actually pass as they should.
filesOverrideToPassZeroSLen := map[string][]int{
- "rsa_pss_2048_sha1_mgf1_20_test.json": []int{46, 47},
- "rsa_pss_2048_sha256_mgf1_0_test.json": []int{67, 68},
- "rsa_pss_2048_sha256_mgf1_32_test.json": []int{67, 68},
- "rsa_pss_2048_sha512_256_mgf1_28_test.json": []int{13, 14, 15},
- "rsa_pss_2048_sha512_256_mgf1_32_test.json": []int{13, 14},
- "rsa_pss_3072_sha256_mgf1_32_test.json": []int{67, 68},
- "rsa_pss_4096_sha256_mgf1_32_test.json": []int{67, 68},
- "rsa_pss_4096_sha512_mgf1_32_test.json": []int{136, 137},
+ "rsa_pss_2048_sha1_mgf1_20_test.json": []int{46, 47},
+ "rsa_pss_2048_sha256_mgf1_0_test.json": []int{67, 68},
+ "rsa_pss_2048_sha256_mgf1_32_test.json": []int{67, 68},
+ "rsa_pss_3072_sha256_mgf1_32_test.json": []int{67, 68},
+ "rsa_pss_4096_sha256_mgf1_32_test.json": []int{67, 68},
+ "rsa_pss_4096_sha512_mgf1_32_test.json": []int{136, 137},
// "rsa_pss_misc_test.json": nil, // TODO: This ones seems to be broken right now, but can enable later on.
}
+ if !boringcryptoEnabled {
+ // boringcrypto doesn't support the truncated SHA-512 hashes, so only
+ // test them if boringcrypto isn't enabled.
+ filesOverrideToPassZeroSLen["rsa_pss_2048_sha512_256_mgf1_28_test.json"] = []int{13, 14, 15}
+ filesOverrideToPassZeroSLen["rsa_pss_2048_sha512_256_mgf1_32_test.json"] = []int{13, 14}
+ }
+
for f := range filesOverrideToPassZeroSLen {
var root Root
readTestVector(t, f, &root)