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	"github.com/arnaucube/cryptofun/ecc"
 8	"github.com/stretchr/testify/assert"
 9)
10
11func TestNewECDSA(t *testing.T) {
12	ec := ecc.NewEC(1, 18, 19)
13	g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(11))}
14	dsa, err := NewDSA(ec, g)
15	assert.Nil(t, err)
16
17	privK := big.NewInt(int64(5))
18	pubK, err := dsa.PubK(privK)
19	assert.Nil(t, err)
20
21	if !pubK.Equal(ecc.Point{big.NewInt(int64(13)), big.NewInt(int64(9))}) {
22		t.Errorf("pubK!=(13, 9)")
23	}
24}
25
26func TestECDSASignAndVerify(t *testing.T) {
27	ec := ecc.NewEC(1, 18, 19)
28	g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(11))}
29	dsa, err := NewDSA(ec, g)
30	assert.Nil(t, err)
31
32	privK := big.NewInt(int64(5))
33	pubK, err := dsa.PubK(privK)
34	assert.Nil(t, err)
35
36	hashval := big.NewInt(int64(40))
37	r := big.NewInt(int64(11))
38
39	sig, err := dsa.Sign(hashval, privK, r)
40	assert.Nil(t, err)
41
42	verified, err := dsa.Verify(hashval, sig, pubK)
43	assert.True(t, verified)
44}