// +build libsecp256k1 package secp256k1 import ( "testing" "github.com/magiconair/properties/assert" "github.com/stretchr/testify/require" ) func TestPrivKeySecp256k1SignVerify(t *testing.T) { msg := []byte("A.1.2 ECC Key Pair Generation by Testing Candidates") priv := GenPrivKey() tests := []struct { name string privKey PrivKey wantSignErr bool wantVerifyPasses bool }{ {name: "valid sign-verify round", privKey: priv, wantSignErr: false, wantVerifyPasses: true}, {name: "invalid private key", privKey: [32]byte{}, wantSignErr: true, wantVerifyPasses: false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := tt.privKey.Sign(msg) if tt.wantSignErr { require.Error(t, err) t.Logf("Got error: %s", err) return } require.NoError(t, err) require.NotNil(t, got) pub := tt.privKey.PubKey() assert.Equal(t, tt.wantVerifyPasses, pub.VerifyBytes(msg, got)) }) } }