commit
9a335d9af9
@ -0,0 +1 @@
|
|||||||
|
SOURCES/go1.18.4-1-openssl-fips.tar.gz
|
@ -0,0 +1 @@
|
|||||||
|
3798a6b5b37624922f5da08860f39da457caa856 SOURCES/go1.18.4-1-openssl-fips.tar.gz
|
@ -0,0 +1,7 @@
|
|||||||
|
// +build rpm_crashtraceback
|
||||||
|
|
||||||
|
package runtime
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
setTraceback("crash")
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/src/cmd/go/testdata/script/list_std.txt b/src/cmd/go/testdata/script/list_std.txt
|
||||||
|
index 6ab1bd1..4a00e43 100644
|
||||||
|
--- a/src/cmd/go/testdata/script/list_std.txt
|
||||||
|
+++ b/src/cmd/go/testdata/script/list_std.txt
|
||||||
|
@@ -6,7 +6,7 @@ env GO111MODULE=off
|
||||||
|
# Listing GOROOT should only find standard packages.
|
||||||
|
cd $GOROOT/src
|
||||||
|
go list -f '{{if not .Standard}}{{.ImportPath}}{{end}}' ./...
|
||||||
|
-! stdout .
|
||||||
|
+stdout _$GOROOT
|
||||||
|
|
||||||
|
# Standard packages should include cmd, but not cmd/vendor.
|
||||||
|
go list ./...
|
@ -0,0 +1,73 @@
|
|||||||
|
diff --git a/src/time/internal_test.go b/src/time/internal_test.go
|
||||||
|
index f0dddb7..415949a 100644
|
||||||
|
--- a/src/time/internal_test.go
|
||||||
|
+++ b/src/time/internal_test.go
|
||||||
|
@@ -4,13 +4,15 @@
|
||||||
|
|
||||||
|
package time
|
||||||
|
|
||||||
|
+import "runtime"
|
||||||
|
+
|
||||||
|
func init() {
|
||||||
|
// force US/Pacific for time zone tests
|
||||||
|
ForceUSPacificForTesting()
|
||||||
|
}
|
||||||
|
|
||||||
|
func initTestingZone() {
|
||||||
|
- z, err := loadLocation("America/Los_Angeles", zoneSources[len(zoneSources)-1:])
|
||||||
|
+ z, err := loadLocation("America/Los_Angeles", zoneSources)
|
||||||
|
if err != nil {
|
||||||
|
panic("cannot load America/Los_Angeles for testing: " + err.Error() + "; you may want to use -tags=timetzdata")
|
||||||
|
}
|
||||||
|
@@ -21,8 +23,9 @@ func initTestingZone() {
|
||||||
|
var OrigZoneSources = zoneSources
|
||||||
|
|
||||||
|
func forceZipFileForTesting(zipOnly bool) {
|
||||||
|
- zoneSources = make([]string, len(OrigZoneSources))
|
||||||
|
+ zoneSources = make([]string, len(OrigZoneSources)+1)
|
||||||
|
copy(zoneSources, OrigZoneSources)
|
||||||
|
+ zoneSources = append(zoneSources, runtime.GOROOT()+"/lib/time/zoneinfo.zip")
|
||||||
|
if zipOnly {
|
||||||
|
zoneSources = zoneSources[len(zoneSources)-1:]
|
||||||
|
}
|
||||||
|
diff --git a/src/time/zoneinfo_test.go b/src/time/zoneinfo_test.go
|
||||||
|
index f032aa7..e3e5547 100644
|
||||||
|
--- a/src/time/zoneinfo_test.go
|
||||||
|
+++ b/src/time/zoneinfo_test.go
|
||||||
|
@@ -9,6 +9,7 @@ import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"reflect"
|
||||||
|
+ "runtime"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
@@ -137,7 +138,7 @@ func TestLoadLocationFromTZData(t *testing.T) {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
- tzinfo, err := time.LoadTzinfo(locationName, time.OrigZoneSources[len(time.OrigZoneSources)-1])
|
||||||
|
+ tzinfo, err := time.LoadTzinfo(locationName, runtime.GOROOT()+"/lib/time/zoneinfo.zip")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
diff --git a/src/time/zoneinfo_unix.go b/src/time/zoneinfo_unix.go
|
||||||
|
index 23f8b3c..228db1b 100644
|
||||||
|
--- a/src/time/zoneinfo_unix.go
|
||||||
|
+++ b/src/time/zoneinfo_unix.go
|
||||||
|
@@ -12,7 +12,6 @@
|
||||||
|
package time
|
||||||
|
|
||||||
|
import (
|
||||||
|
- "runtime"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
@@ -22,7 +21,6 @@ var zoneSources = []string{
|
||||||
|
"/usr/share/zoneinfo/",
|
||||||
|
"/usr/share/lib/zoneinfo/",
|
||||||
|
"/usr/lib/locale/TZ/",
|
||||||
|
- runtime.GOROOT() + "/lib/time/zoneinfo.zip",
|
||||||
|
}
|
||||||
|
|
||||||
|
func initLocal() {
|
@ -0,0 +1 @@
|
|||||||
|
add-auto-load-safe-path /usr/lib/golang/src/pkg/runtime/runtime-gdb.py
|
@ -0,0 +1,3 @@
|
|||||||
|
# there are ELF files in src which are testdata and shouldn't be modified
|
||||||
|
-b /usr/lib/golang/src
|
||||||
|
-b /usr/lib64/golang/src
|
@ -0,0 +1,124 @@
|
|||||||
|
diff --git a/src/crypto/rsa/pkcs1v15_test.go b/src/crypto/rsa/pkcs1v15_test.go
|
||||||
|
index a4f2e2dbbe..76701d2e2b 100644
|
||||||
|
--- a/src/crypto/rsa/pkcs1v15_test.go
|
||||||
|
+++ b/src/crypto/rsa/pkcs1v15_test.go
|
||||||
|
@@ -52,6 +52,7 @@ var decryptPKCS1v15Tests = []DecryptPKCS1v15Test{
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDecryptPKCS1v15(t *testing.T) {
|
||||||
|
+ t.Skip("not supported in FIPS mode")
|
||||||
|
decryptionFuncs := []func([]byte) ([]byte, error){
|
||||||
|
func(ciphertext []byte) (plaintext []byte, err error) {
|
||||||
|
return DecryptPKCS1v15(nil, testRSA2048PrivateKey, ciphertext)
|
||||||
|
@@ -76,6 +77,7 @@ func TestDecryptPKCS1v15(t *testing.T) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEncryptPKCS1v15(t *testing.T) {
|
||||||
|
+ t.Skip("not supported in FIPS mode")
|
||||||
|
random := rand.Reader
|
||||||
|
k := (testRSA2048PrivateKey.N.BitLen() + 7) / 8
|
||||||
|
|
||||||
|
@@ -137,6 +139,7 @@ var decryptPKCS1v15SessionKeyTests = []DecryptPKCS1v15Test{
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEncryptPKCS1v15SessionKey(t *testing.T) {
|
||||||
|
+ t.Skip("not supported in FIPS mode")
|
||||||
|
for i, test := range decryptPKCS1v15SessionKeyTests {
|
||||||
|
key := []byte("FAIL")
|
||||||
|
err := DecryptPKCS1v15SessionKey(nil, testRSA2048PrivateKey, decodeBase64(test.in), key)
|
||||||
|
@@ -151,6 +154,7 @@ func TestEncryptPKCS1v15SessionKey(t *testing.T) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEncryptPKCS1v15DecrypterSessionKey(t *testing.T) {
|
||||||
|
+ t.Skip("not supported in FIPS mode")
|
||||||
|
for i, test := range decryptPKCS1v15SessionKeyTests {
|
||||||
|
plaintext, err := testRSA2048PrivateKey.Decrypt(rand.Reader, decodeBase64(test.in), &PKCS1v15DecryptOptions{SessionKeyLen: 4})
|
||||||
|
if err != nil {
|
||||||
|
@@ -270,6 +274,7 @@ func TestUnpaddedSignature(t *testing.T) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestShortSessionKey(t *testing.T) {
|
||||||
|
+ t.Skip("not supported in FIPS mode")
|
||||||
|
// This tests that attempting to decrypt a session key where the
|
||||||
|
// ciphertext is too small doesn't run outside the array bounds.
|
||||||
|
ciphertext, err := EncryptPKCS1v15(rand.Reader, &testRSA2048PrivateKey.PublicKey, []byte{1})
|
||||||
|
diff --git a/src/crypto/rsa/pss_test.go b/src/crypto/rsa/pss_test.go
|
||||||
|
index b547a87c71..99e7882866 100644
|
||||||
|
--- a/src/crypto/rsa/pss_test.go
|
||||||
|
+++ b/src/crypto/rsa/pss_test.go
|
||||||
|
@@ -77,6 +77,7 @@ func TestEMSAPSS(t *testing.T) {
|
||||||
|
// TestPSSGolden tests all the test vectors in pss-vect.txt from
|
||||||
|
// ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1-vec.zip
|
||||||
|
func TestPSSGolden(t *testing.T) {
|
||||||
|
+ t.Skip("SHA1 not supported in boring mode")
|
||||||
|
inFile, err := os.Open("testdata/pss-vect.txt.bz2")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to open input file: %s", err)
|
||||||
|
diff --git a/src/crypto/rsa/rsa_test.go b/src/crypto/rsa/rsa_test.go
|
||||||
|
index 9aa67655ab..2f4e666abb 100644
|
||||||
|
--- a/src/crypto/rsa/rsa_test.go
|
||||||
|
+++ b/src/crypto/rsa/rsa_test.go
|
||||||
|
@@ -123,28 +123,29 @@ func testKeyBasics(t *testing.T, priv *PrivateKey) {
|
||||||
|
t.Errorf("private exponent too large")
|
||||||
|
}
|
||||||
|
|
||||||
|
- if boring.Enabled() {
|
||||||
|
- // Cannot call encrypt/decrypt directly. Test via PKCS1v15.
|
||||||
|
- msg := []byte("hi!")
|
||||||
|
- if priv.Size() >= 256 {
|
||||||
|
- enc, err := EncryptPKCS1v15(rand.Reader, &priv.PublicKey, msg)
|
||||||
|
- if err != nil {
|
||||||
|
- t.Errorf("EncryptPKCS1v15: %v", err)
|
||||||
|
- return
|
||||||
|
- }
|
||||||
|
- dec, err := DecryptPKCS1v15(rand.Reader, priv, enc)
|
||||||
|
- if err != nil {
|
||||||
|
- t.Errorf("DecryptPKCS1v15: %v", err)
|
||||||
|
- return
|
||||||
|
- }
|
||||||
|
- if !bytes.Equal(dec, msg) {
|
||||||
|
- t.Errorf("got:%x want:%x (%+v)", dec, msg, priv)
|
||||||
|
- }
|
||||||
|
- } else {
|
||||||
|
- t.Logf("skipping check for unsupported key less than 2048 bits")
|
||||||
|
- }
|
||||||
|
- return
|
||||||
|
- }
|
||||||
|
+ if boring.Enabled() {
|
||||||
|
+ // Cannot call encrypt/decrypt directly. Test via EncryptOAEP.
|
||||||
|
+ sha256 := sha256.New()
|
||||||
|
+ msg := []byte("hi!")
|
||||||
|
+ if priv.Size() >= 256 {
|
||||||
|
+ enc, err := EncryptOAEP(sha256, rand.Reader, &priv.PublicKey, msg, nil)
|
||||||
|
+ if err != nil {
|
||||||
|
+ t.Errorf("EncryptOAEP: %v", err)
|
||||||
|
+ return
|
||||||
|
+ }
|
||||||
|
+ dec, err := DecryptOAEP(sha256, rand.Reader, priv, enc, nil)
|
||||||
|
+ if err != nil {
|
||||||
|
+ t.Errorf("DecryptOAEP: %v", err)
|
||||||
|
+ return
|
||||||
|
+ }
|
||||||
|
+ if !bytes.Equal(dec, msg) {
|
||||||
|
+ t.Errorf("got:%x want:%x (%+v)", dec, msg, priv)
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ t.Logf("skipping check for unsupported key less than 2048 bits")
|
||||||
|
+ }
|
||||||
|
+ return
|
||||||
|
+ }
|
||||||
|
|
||||||
|
pub := &priv.PublicKey
|
||||||
|
m := big.NewInt(42)
|
||||||
|
@@ -312,6 +312,11 @@ func TestDecryptOAEP(t *testing.T) {
|
||||||
|
private.PublicKey = PublicKey{N: n, E: test.e}
|
||||||
|
private.D = d
|
||||||
|
|
||||||
|
+ if boring.Enabled() && private.PublicKey.Size() < 256 {
|
||||||
|
+ t.Logf("skipping check for unsupported key less than 2048 bits")
|
||||||
|
+ continue
|
||||||
|
+ }
|
||||||
|
+ t.Logf("running check for supported key size")
|
||||||
|
for j, message := range test.msgs {
|
||||||
|
out, err := DecryptOAEP(sha1, nil, private, message.out, nil)
|
||||||
|
if err != nil {
|
@ -0,0 +1,128 @@
|
|||||||
|
From d7cad65ab9179804e9f089ce97bc124e9ef79494 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
|
||||||
|
Date: Wed, 15 Dec 2021 16:02:15 +0100
|
||||||
|
Subject: [PATCH] Remove ed25519vectors_test.go
|
||||||
|
|
||||||
|
---
|
||||||
|
src/crypto/ed25519/ed25519vectors_test.go | 109 ----------------------
|
||||||
|
1 file changed, 109 deletions(-)
|
||||||
|
delete mode 100644 src/crypto/ed25519/ed25519vectors_test.go
|
||||||
|
|
||||||
|
diff --git a/src/crypto/ed25519/ed25519vectors_test.go b/src/crypto/ed25519/ed25519vectors_test.go
|
||||||
|
deleted file mode 100644
|
||||||
|
index 74fcdcdf4e..0000000000
|
||||||
|
--- a/src/crypto/ed25519/ed25519vectors_test.go
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,109 +0,0 @@
|
||||||
|
-// Copyright 2021 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.
|
||||||
|
-
|
||||||
|
-package ed25519_test
|
||||||
|
-
|
||||||
|
-import (
|
||||||
|
- "crypto/ed25519"
|
||||||
|
- "encoding/hex"
|
||||||
|
- "encoding/json"
|
||||||
|
- "internal/testenv"
|
||||||
|
- "os"
|
||||||
|
- "os/exec"
|
||||||
|
- "path/filepath"
|
||||||
|
- "testing"
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
-// TestEd25519Vectors runs a very large set of test vectors that exercise all
|
||||||
|
-// combinations of low-order points, low-order components, and non-canonical
|
||||||
|
-// encodings. These vectors lock in unspecified and spec-divergent behaviors in
|
||||||
|
-// edge cases that are not security relevant in most contexts, but that can
|
||||||
|
-// cause issues in consensus applications if changed.
|
||||||
|
-//
|
||||||
|
-// Our behavior matches the "classic" unwritten verification rules of the
|
||||||
|
-// "ref10" reference implementation.
|
||||||
|
-//
|
||||||
|
-// Note that although we test for these edge cases, they are not covered by the
|
||||||
|
-// Go 1 Compatibility Promise. Applications that need stable verification rules
|
||||||
|
-// should use github.com/hdevalence/ed25519consensus.
|
||||||
|
-//
|
||||||
|
-// See https://hdevalence.ca/blog/2020-10-04-its-25519am for more details.
|
||||||
|
-func TestEd25519Vectors(t *testing.T) {
|
||||||
|
- jsonVectors := downloadEd25519Vectors(t)
|
||||||
|
- var vectors []struct {
|
||||||
|
- A, R, S, M string
|
||||||
|
- Flags []string
|
||||||
|
- }
|
||||||
|
- if err := json.Unmarshal(jsonVectors, &vectors); err != nil {
|
||||||
|
- t.Fatal(err)
|
||||||
|
- }
|
||||||
|
- for i, v := range vectors {
|
||||||
|
- expectedToVerify := true
|
||||||
|
- for _, f := range v.Flags {
|
||||||
|
- switch f {
|
||||||
|
- // We use the simplified verification formula that doesn't multiply
|
||||||
|
- // by the cofactor, so any low order residue will cause the
|
||||||
|
- // signature not to verify.
|
||||||
|
- //
|
||||||
|
- // This is allowed, but not required, by RFC 8032.
|
||||||
|
- case "LowOrderResidue":
|
||||||
|
- expectedToVerify = false
|
||||||
|
- // Our point decoding allows non-canonical encodings (in violation
|
||||||
|
- // of RFC 8032) but R is not decoded: instead, R is recomputed and
|
||||||
|
- // compared bytewise against the canonical encoding.
|
||||||
|
- case "NonCanonicalR":
|
||||||
|
- expectedToVerify = false
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- publicKey := decodeHex(t, v.A)
|
||||||
|
- signature := append(decodeHex(t, v.R), decodeHex(t, v.S)...)
|
||||||
|
- message := []byte(v.M)
|
||||||
|
-
|
||||||
|
- didVerify := ed25519.Verify(publicKey, message, signature)
|
||||||
|
- if didVerify && !expectedToVerify {
|
||||||
|
- t.Errorf("#%d: vector with flags %s unexpectedly verified", i, v.Flags)
|
||||||
|
- }
|
||||||
|
- if !didVerify && expectedToVerify {
|
||||||
|
- t.Errorf("#%d: vector with flags %s unexpectedly rejected", i, v.Flags)
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func downloadEd25519Vectors(t *testing.T) []byte {
|
||||||
|
- testenv.MustHaveExternalNetwork(t)
|
||||||
|
-
|
||||||
|
- // Download the JSON test file from the GOPROXY with `go mod download`,
|
||||||
|
- // pinning the version so test and module caching works as expected.
|
||||||
|
- goTool := testenv.GoToolPath(t)
|
||||||
|
- path := "filippo.io/mostly-harmless/ed25519vectors@v0.0.0-20210322192420-30a2d7243a94"
|
||||||
|
- cmd := exec.Command(goTool, "mod", "download", "-json", path)
|
||||||
|
- // TODO: enable the sumdb once the TryBots proxy supports it.
|
||||||
|
- cmd.Env = append(os.Environ(), "GONOSUMDB=*")
|
||||||
|
- output, err := cmd.Output()
|
||||||
|
- if err != nil {
|
||||||
|
- t.Fatalf("failed to run `go mod download -json %s`, output: %s", path, output)
|
||||||
|
- }
|
||||||
|
- var dm struct {
|
||||||
|
- Dir string // absolute path to cached source root directory
|
||||||
|
- }
|
||||||
|
- if err := json.Unmarshal(output, &dm); err != nil {
|
||||||
|
- t.Fatal(err)
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- jsonVectors, err := os.ReadFile(filepath.Join(dm.Dir, "ed25519vectors.json"))
|
||||||
|
- if err != nil {
|
||||||
|
- t.Fatalf("failed to read ed25519vectors.json: %v", err)
|
||||||
|
- }
|
||||||
|
- return jsonVectors
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-func decodeHex(t *testing.T, s string) []byte {
|
||||||
|
- t.Helper()
|
||||||
|
- b, err := hex.DecodeString(s)
|
||||||
|
- if err != nil {
|
||||||
|
- t.Errorf("invalid hex: %v", err)
|
||||||
|
- }
|
||||||
|
- return b
|
||||||
|
-}
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue