You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.6 KiB

package schnorr
import (
"math/big"
"testing"
"github.com/arnaucube/cryptofun/ecc"
"github.com/stretchr/testify/assert"
)
// func TestNewSystem(t *testing.T) {
//
// ec := ecc.NewEC(0, 7, 11)
// g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(8))} // Generator
// r := big.NewInt(int64(7)) // random r
// schnorr, sk, err := Gen(ec, g, r)
// assert.Nil(t, err)
//
// fmt.Print("schnorr")
// fmt.Println(schnorr)
// fmt.Print("sk")
// fmt.Println(sk)
// }
func TestHash(t *testing.T) {
c := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(8))} // Generator
h := Hash([]byte("hola"), c)
assert.Equal(t, h.String(), "34719153732582497359642109898768696927847420320548121616059449972754491425079")
}
func TestSign(t *testing.T) {
ec := ecc.NewEC(0, 7, 11)
g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(8))} // Generator
r := big.NewInt(int64(7)) // random r
schnorr, sk, err := Gen(ec, g, r)
assert.Nil(t, err)
m := []byte("hola")
s, rPoint, err := schnorr.Sign(sk, m)
assert.Nil(t, err)
verified, err := Verify(schnorr.EC, sk.PubK, m, s, rPoint)
assert.Nil(t, err)
assert.True(t, verified)
}
func TestSign2(t *testing.T) {
ec := ecc.NewEC(0, 7, 29)
g := ecc.Point{big.NewInt(int64(11)), big.NewInt(int64(27))} // Generator
r := big.NewInt(int64(23)) // random r
schnorr, sk, err := Gen(ec, g, r)
assert.Nil(t, err)
m := []byte("hola")
s, rPoint, err := schnorr.Sign(sk, m)
assert.Nil(t, err)
verified, err := Verify(schnorr.EC, sk.PubK, m, s, rPoint)
assert.Nil(t, err)
assert.True(t, verified)
}