Make some ECDSA failures more informative/accurate

This commit is contained in:
Filippo Valsorda 2014-12-05 18:39:06 +00:00
parent f01e44c2fd
commit bcc05715b3
3 changed files with 24 additions and 7 deletions

View File

@ -455,12 +455,19 @@ PrivateKey: WURgWHCcYIYUPWgeLmiPY2DJJk02vgrmTfitxgqcL4vwW7BOrbawVmVe0d9V94SR`
sig.SignerName = eckey.(*DNSKEY).Hdr.Name sig.SignerName = eckey.(*DNSKEY).Hdr.Name
sig.Algorithm = eckey.(*DNSKEY).Algorithm sig.Algorithm = eckey.(*DNSKEY).Algorithm
sig.Sign(privkey, []RR{a}) if sig.Sign(privkey, []RR{a}) != nil {
t.Fatal("failure to sign the record")
}
t.Logf("%s", sig.String())
if e := sig.Verify(eckey.(*DNSKEY), []RR{a}); e != nil { if e := sig.Verify(eckey.(*DNSKEY), []RR{a}); e != nil {
t.Logf("failure to validate: %s", e.Error()) t.Logf("\n%s\n%s\n%s\n\n%s\n\n",
t.Fail() eckey.(*DNSKEY).String(),
a.String(),
sig.String(),
eckey.(*DNSKEY).PrivateKeyString(privkey),
)
t.Fatalf("failure to validate: %s", e.Error())
} }
} }
@ -503,6 +510,13 @@ func TestSignVerifyECDSA2(t *testing.T) {
err = sig.Verify(key, []RR{srv}) err = sig.Verify(key, []RR{srv})
if err != nil { if err != nil {
t.Logf("\n%s\n%s\n%s\n\n%s\n\n",
key.String(),
srv.String(),
sig.String(),
key.PrivateKeyString(privkey),
)
t.Fatal("Failure to validate:", err) t.Fatal("Failure to validate:", err)
} }
} }

View File

@ -39,7 +39,7 @@ func (k *DNSKEY) ReadPrivateKey(q io.Reader, file string) (PrivateKey, error) {
return nil, e return nil, e
} }
if !k.setPublicKeyInPrivate(p) { if !k.setPublicKeyInPrivate(p) {
return nil, ErrPrivKey return nil, ErrKey
} }
return p, e return p, e
case "1 (RSAMD5)": case "1 (RSAMD5)":
@ -56,7 +56,7 @@ func (k *DNSKEY) ReadPrivateKey(q io.Reader, file string) (PrivateKey, error) {
return nil, e return nil, e
} }
if !k.setPublicKeyInPrivate(p) { if !k.setPublicKeyInPrivate(p) {
return nil, ErrPrivKey return nil, ErrKey
} }
return p, e return p, e
case "12 (ECC-GOST)": case "12 (ECC-GOST)":
@ -74,7 +74,7 @@ func (k *DNSKEY) ReadPrivateKey(q io.Reader, file string) (PrivateKey, error) {
return nil, e return nil, e
} }
if !k.setPublicKeyInPrivate(p) { if !k.setPublicKeyInPrivate(p) {
return nil, ErrPrivKey return nil, ErrKey
} }
return p, e return p, e
} }

View File

@ -1258,6 +1258,9 @@ func TestNewPrivateKeyECDSA(t *testing.T) {
newPrivKey, err := key.NewPrivateKey(key.PrivateKeyString(privkey)) newPrivKey, err := key.NewPrivateKey(key.PrivateKeyString(privkey))
if err != nil { if err != nil {
t.Log(key.String())
t.Log(key.PrivateKeyString(privkey))
t.Fatal(err.Error()) t.Fatal(err.Error())
} }