diff --git a/internal/wycheproof/internal/ecdsa/ecdsa.go b/internal/wycheproof/ecdsa_compat_test.go similarity index 57% rename from internal/wycheproof/internal/ecdsa/ecdsa.go rename to internal/wycheproof/ecdsa_compat_test.go index 4246c94..8edc10b 100644 --- a/internal/wycheproof/internal/ecdsa/ecdsa.go +++ b/internal/wycheproof/ecdsa_compat_test.go @@ -1,10 +1,12 @@ -// Copyright 2019 The Go Authors. All rights reserved. +// Copyright 2020 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 ecdsa provides an internal version of ecdsa.Verify -// that is used for the Wycheproof tests. -package ecdsa +// +build !go1.15 + +// ecdsa.VerifyASN1 was added in Go 1.15. + +package wycheproof import ( "crypto/ecdsa" @@ -14,9 +16,7 @@ import ( "golang.org/x/crypto/cryptobyte/asn1" ) -// VerifyASN1 verifies the ASN1 encoded signature, sig, of hash using the -// public key, pub. Its return value records whether the signature is valid. -func VerifyASN1(pub *ecdsa.PublicKey, hash, sig []byte) bool { +func verifyASN1(pub *ecdsa.PublicKey, hash, sig []byte) bool { var ( r, s = &big.Int{}, &big.Int{} inner cryptobyte.String diff --git a/internal/wycheproof/ecdsa_go115_test.go b/internal/wycheproof/ecdsa_go115_test.go new file mode 100644 index 0000000..8da3be5 --- /dev/null +++ b/internal/wycheproof/ecdsa_go115_test.go @@ -0,0 +1,15 @@ +// Copyright 2020 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. + +// +build go1.15 + +package wycheproof + +import ( + "crypto/ecdsa" +) + +func verifyASN1(pub *ecdsa.PublicKey, hash, sig []byte) bool { + return ecdsa.VerifyASN1(pub, hash, sig) +} diff --git a/internal/wycheproof/ecdsa_test.go b/internal/wycheproof/ecdsa_test.go index 00043a1..81731f7 100644 --- a/internal/wycheproof/ecdsa_test.go +++ b/internal/wycheproof/ecdsa_test.go @@ -7,8 +7,6 @@ package wycheproof import ( "crypto/ecdsa" "testing" - - wecdsa "golang.org/x/crypto/internal/wycheproof/internal/ecdsa" ) func TestEcdsa(t *testing.T) { @@ -157,7 +155,7 @@ func TestEcdsa(t *testing.T) { h.Reset() h.Write(decodeHex(sig.Msg)) hashed := h.Sum(nil) - got := wecdsa.VerifyASN1(pub, hashed, decodeHex(sig.Sig)) + got := verifyASN1(pub, hashed, decodeHex(sig.Sig)) if want := shouldPass(sig.Result, sig.Flags, flagsShouldPass); got != want { t.Errorf("tcid: %d, type: %s, comment: %q, wanted success: %t", sig.TcId, sig.Result, sig.Comment, want) }