You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
994 B

package ecdsa
import (
"math/big"
"testing"
ecc "../ecc"
)
func TestNewECDSA(t *testing.T) {
ec := ecc.NewEC(1, 18, 19)
g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(11))}
dsa, err := NewDSA(ec, g)
if err != nil {
t.Errorf(err.Error())
}
privK := 5
pubK, err := dsa.PubK(privK)
if err != nil {
t.Errorf(err.Error())
}
if !pubK.Equal(ecc.Point{big.NewInt(int64(13)), big.NewInt(int64(9))}) {
t.Errorf("pubK!=(13, 9)")
}
}
func TestECDSASignAndVerify(t *testing.T) {
ec := ecc.NewEC(1, 18, 19)
g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(11))}
dsa, err := NewDSA(ec, g)
if err != nil {
t.Errorf(err.Error())
}
privK := 5
pubK, err := dsa.PubK(privK)
if err != nil {
t.Errorf(err.Error())
}
hashval := big.NewInt(int64(40))
r := big.NewInt(int64(11))
sig, err := dsa.Sign(hashval, privK, r)
if err != nil {
t.Errorf(err.Error())
}
verified, err := dsa.Verify(hashval, sig, pubK)
if !verified {
t.Errorf("verified == false")
}
}