arnaucube
arnaucube/cryptofunPublic Self-hosted repository
cryptofun/schnorr/schnorr_test.go
schnorr/schnorr_test.goRaw
 1package schnorr
 2
 3import (
 4	"math/big"
 5	"testing"
 6
 7	"github.com/arnaucube/cryptofun/ecc"
 8	"github.com/stretchr/testify/assert"
 9)
10
11// func TestNewSystem(t *testing.T) {
12//
13// 	ec := ecc.NewEC(0, 7, 11)
14// 	g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(8))} // Generator
15// 	r := big.NewInt(int64(7))                                  // random r
16// 	schnorr, sk, err := Gen(ec, g, r)
17// 	assert.Nil(t, err)
18//
19// 	fmt.Print("schnorr")
20// 	fmt.Println(schnorr)
21// 	fmt.Print("sk")
22// 	fmt.Println(sk)
23// }
24
25func TestHash(t *testing.T) {
26	c := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(8))} // Generator
27	h := Hash([]byte("hola"), c)
28	assert.Equal(t, h.String(), "34719153732582497359642109898768696927847420320548121616059449972754491425079")
29}
30
31func TestSign(t *testing.T) {
32	ec := ecc.NewEC(0, 7, 11)
33	g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(8))} // Generator
34	r := big.NewInt(int64(7))                                  // random r
35	schnorr, sk, err := Gen(ec, g, r)
36	assert.Nil(t, err)
37
38	m := []byte("hola")
39
40	s, rPoint, err := schnorr.Sign(sk, m)
41	assert.Nil(t, err)
42
43	verified, err := Verify(schnorr.EC, sk.PubK, m, s, rPoint)
44	assert.Nil(t, err)
45
46	assert.True(t, verified)
47}
48
49func TestSign2(t *testing.T) {
50	ec := ecc.NewEC(0, 7, 29)
51	g := ecc.Point{big.NewInt(int64(11)), big.NewInt(int64(27))} // Generator
52	r := big.NewInt(int64(23))                                   // random r
53	schnorr, sk, err := Gen(ec, g, r)
54	assert.Nil(t, err)
55
56	m := []byte("hola")
57
58	s, rPoint, err := schnorr.Sign(sk, m)
59	assert.Nil(t, err)
60
61	verified, err := Verify(schnorr.EC, sk.PubK, m, s, rPoint)
62	assert.Nil(t, err)
63
64	assert.True(t, verified)
65}