github.com/vipernet-xyz/tendermint-core@v0.32.0/crypto/secp256k1/secp256k1_cgo_test.go (about) 1 // +build libsecp256k1 2 3 package secp256k1 4 5 import ( 6 "testing" 7 8 "github.com/magiconair/properties/assert" 9 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestPrivKeySecp256k1SignVerify(t *testing.T) { 14 msg := []byte("A.1.2 ECC Key Pair Generation by Testing Candidates") 15 priv := GenPrivKey() 16 tests := []struct { 17 name string 18 privKey PrivKeySecp256k1 19 wantSignErr bool 20 wantVerifyPasses bool 21 }{ 22 {name: "valid sign-verify round", privKey: priv, wantSignErr: false, wantVerifyPasses: true}, 23 {name: "invalid private key", privKey: [32]byte{}, wantSignErr: true, wantVerifyPasses: false}, 24 } 25 for _, tt := range tests { 26 t.Run(tt.name, func(t *testing.T) { 27 got, err := tt.privKey.Sign(msg) 28 if tt.wantSignErr { 29 require.Error(t, err) 30 t.Logf("Got error: %s", err) 31 return 32 } 33 require.NoError(t, err) 34 require.NotNil(t, got) 35 36 pub := tt.privKey.PubKey() 37 assert.Equal(t, tt.wantVerifyPasses, pub.VerifyBytes(msg, got)) 38 }) 39 } 40 }