From e1172383cebf3c84a630090cc1d96078e93d0390 Mon Sep 17 00:00:00 2001 From: Dan Laine Date: Thu, 3 Aug 2023 14:32:00 -0400 Subject: [PATCH 1/2] add fuzz tests --- utils/crypto/secp256k1/secp256k1_test.go | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/utils/crypto/secp256k1/secp256k1_test.go b/utils/crypto/secp256k1/secp256k1_test.go index b9c47ac4e8b9..6f7d497ce1dc 100644 --- a/utils/crypto/secp256k1/secp256k1_test.go +++ b/utils/crypto/secp256k1/secp256k1_test.go @@ -238,3 +238,46 @@ func TestSigning(t *testing.T) { }) } } + +func FuzzVerifySignature(f *testing.F) { + factory := Factory{} + + f.Fuzz(func(t *testing.T, data []byte) { + require := require.New(t) + + privateKey, err := factory.NewPrivateKey() + require.NoError(err) + + publicKey := privateKey.PublicKey() + + sig, err := privateKey.Sign(data) + require.NoError(err) + + recoveredPublicKey, err := factory.RecoverPublicKey(data, sig) + require.NoError(err) + + require.Equal(publicKey.Bytes(), recoveredPublicKey.Bytes()) + }) +} + +func FuzzVerifyInvalidSignature(f *testing.F) { + factory := Factory{} + realPrivateKey, err := factory.NewPrivateKey() + require.NoError(f, err) + + f.Fuzz(func(t *testing.T, data []byte) { + require := require.New(t) + + sig, err := realPrivateKey.Sign(data) + require.NoError(err) + + fakePrivateKey, err := factory.NewPrivateKey() + require.NoError(err) + fakePublicKey := fakePrivateKey.PublicKey() + + recoveredPublicKey, err := factory.RecoverPublicKey(data, sig) + require.NoError(err) + + require.NotEqual(recoveredPublicKey.Bytes(), fakePublicKey.Bytes()) + }) +} From d0c37d5a9cef99fe8c43e992a1dc1ff0085dbbe0 Mon Sep 17 00:00:00 2001 From: Dan Laine Date: Mon, 14 Aug 2023 09:59:29 -0400 Subject: [PATCH 2/2] remove fuzz test with questionable utility --- utils/crypto/secp256k1/secp256k1_test.go | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/utils/crypto/secp256k1/secp256k1_test.go b/utils/crypto/secp256k1/secp256k1_test.go index 6f7d497ce1dc..9a8dbdb89077 100644 --- a/utils/crypto/secp256k1/secp256k1_test.go +++ b/utils/crypto/secp256k1/secp256k1_test.go @@ -259,25 +259,3 @@ func FuzzVerifySignature(f *testing.F) { require.Equal(publicKey.Bytes(), recoveredPublicKey.Bytes()) }) } - -func FuzzVerifyInvalidSignature(f *testing.F) { - factory := Factory{} - realPrivateKey, err := factory.NewPrivateKey() - require.NoError(f, err) - - f.Fuzz(func(t *testing.T, data []byte) { - require := require.New(t) - - sig, err := realPrivateKey.Sign(data) - require.NoError(err) - - fakePrivateKey, err := factory.NewPrivateKey() - require.NoError(err) - fakePublicKey := fakePrivateKey.PublicKey() - - recoveredPublicKey, err := factory.RecoverPublicKey(data, sig) - require.NoError(err) - - require.NotEqual(recoveredPublicKey.Bytes(), fakePublicKey.Bytes()) - }) -}