|
|
package ecdsa
import ( "math/big" "testing"
"github.com/arnaucube/cryptofun/ecc" "github.com/stretchr/testify/assert" )
func TestNewECDSA(t *testing.T) { ec := ecc.NewEC(big.NewInt(int64(1)), big.NewInt(int64(18)), big.NewInt(int64(19))) g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(11))} dsa, err := NewDSA(ec, g) assert.Nil(t, err)
privK := big.NewInt(int64(5)) pubK, err := dsa.PubK(privK) assert.Nil(t, err)
if !pubK.Equal(ecc.Point{big.NewInt(int64(13)), big.NewInt(int64(9))}) { t.Errorf("pubK!=(13, 9)") } }
func TestECDSASignAndVerify(t *testing.T) { ec := ecc.NewEC(big.NewInt(int64(1)), big.NewInt(int64(18)), big.NewInt(int64(19))) g := ecc.Point{big.NewInt(int64(7)), big.NewInt(int64(11))} dsa, err := NewDSA(ec, g) assert.Nil(t, err)
privK := big.NewInt(int64(5)) pubK, err := dsa.PubK(privK) assert.Nil(t, err)
hashval := big.NewInt(int64(40)) r := big.NewInt(int64(11))
sig, err := dsa.Sign(hashval, privK, r) assert.Nil(t, err)
verified, err := dsa.Verify(hashval, sig, pubK) assert.True(t, verified) }
|