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