// Verifies a hash using DER encoded signature func Verify(pubKey, signature, hash []byte) (bool, error) { sig, err := btcec.ParseDERSignature(signature, btcec.S256()) if err != nil { return false, err } pk, err := btcec.ParsePubKey(pubKey, btcec.S256()) if err != nil { return false, nil } return sig.Verify(hash, pk), nil }
func TestSignatures(t *testing.T) { for _, test := range signatureTests { var err error if test.der { _, err = btcec.ParseDERSignature(test.sig, btcec.S256()) } else { _, err = btcec.ParseSignature(test.sig, btcec.S256()) } if err != nil { if test.isValid { t.Errorf("%s signature failed when shouldn't %v", test.name, err) } /* else { t.Errorf("%s got error %v", test.name, err) } */ continue } if !test.isValid { t.Errorf("%s counted as valid when it should fail", test.name) } } }