internal/wycheproof: update TestEcdsa to use ecdsa.VerifyASN1
Change-Id: Ibd6ce156550615cb85c06e734641c34fca0cfcd0 Reviewed-on: https://go-review.googlesource.com/c/crypto/+/220697 Run-TryBot: Katie Hockman <katie@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Filippo Valsorda <filippo@golang.org>
This commit is contained in:
+7
-7
@@ -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
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// Package ecdsa provides an internal version of ecdsa.Verify
|
// +build !go1.15
|
||||||
// that is used for the Wycheproof tests.
|
|
||||||
package ecdsa
|
// ecdsa.VerifyASN1 was added in Go 1.15.
|
||||||
|
|
||||||
|
package wycheproof
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
@@ -14,9 +16,7 @@ import (
|
|||||||
"golang.org/x/crypto/cryptobyte/asn1"
|
"golang.org/x/crypto/cryptobyte/asn1"
|
||||||
)
|
)
|
||||||
|
|
||||||
// VerifyASN1 verifies the ASN1 encoded signature, sig, of hash using the
|
func verifyASN1(pub *ecdsa.PublicKey, hash, sig []byte) bool {
|
||||||
// public key, pub. Its return value records whether the signature is valid.
|
|
||||||
func VerifyASN1(pub *ecdsa.PublicKey, hash, sig []byte) bool {
|
|
||||||
var (
|
var (
|
||||||
r, s = &big.Int{}, &big.Int{}
|
r, s = &big.Int{}, &big.Int{}
|
||||||
inner cryptobyte.String
|
inner cryptobyte.String
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
@@ -7,8 +7,6 @@ package wycheproof
|
|||||||
import (
|
import (
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
wecdsa "golang.org/x/crypto/internal/wycheproof/internal/ecdsa"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEcdsa(t *testing.T) {
|
func TestEcdsa(t *testing.T) {
|
||||||
@@ -157,7 +155,7 @@ func TestEcdsa(t *testing.T) {
|
|||||||
h.Reset()
|
h.Reset()
|
||||||
h.Write(decodeHex(sig.Msg))
|
h.Write(decodeHex(sig.Msg))
|
||||||
hashed := h.Sum(nil)
|
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 {
|
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)
|
t.Errorf("tcid: %d, type: %s, comment: %q, wanted success: %t", sig.TcId, sig.Result, sig.Comment, want)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user