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}