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}