arnaucube
arnaucube/cryptofunPublic Self-hosted repository
cryptofun/ecdsa/ecdsa_test.go
ecdsa/ecdsa_test.goRaw
 1package ecdsa
 2
 3import (
 4	"math/big"
 5	"testing"
 6
 7	ecc "../ecc"
 8)
 9
10func TestNewECDSA(t *testing.T) {
11	ec := ecc.NewEC(1, 18, 19)
12	g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(11))}
13	dsa, err := NewDSA(ec, g)
14	if err != nil {
15		t.Errorf(err.Error())
16	}
17	privK := 5
18	pubK, err := dsa.PubK(privK)
19	if err != nil {
20		t.Errorf(err.Error())
21	}
22	if !pubK.Equal(ecc.Point{big.NewInt(int64(13)), big.NewInt(int64(9))}) {
23		t.Errorf("pubK!=(13, 9)")
24	}
25}
26
27func TestECDSASignAndVerify(t *testing.T) {
28	ec := ecc.NewEC(1, 18, 19)
29	g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(11))}
30	dsa, err := NewDSA(ec, g)
31	if err != nil {
32		t.Errorf(err.Error())
33	}
34	privK := 5
35	pubK, err := dsa.PubK(privK)
36	if err != nil {
37		t.Errorf(err.Error())
38	}
39	hashval := big.NewInt(int64(40))
40	r := big.NewInt(int64(11))
41
42	sig, err := dsa.Sign(hashval, privK, r)
43	if err != nil {
44		t.Errorf(err.Error())
45	}
46
47	verified, err := dsa.Verify(hashval, sig, pubK)
48	if !verified {
49		t.Errorf("verified == false")
50	}
51}