github.com/cosmos/cosmos-sdk@v0.50.10/x/auth/ante/sigverify_benchmark_test.go (about)

     1  package ante_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	cmtcrypto "github.com/cometbft/cometbft/crypto"
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
    10  	"github.com/cosmos/cosmos-sdk/crypto/keys/secp256r1"
    11  )
    12  
    13  // This benchmark is used to asses the ante.Secp256k1ToR1GasFactor value
    14  func BenchmarkSig(b *testing.B) {
    15  	require := require.New(b)
    16  	msg := cmtcrypto.CRandBytes(1000)
    17  
    18  	skK := secp256k1.GenPrivKey()
    19  	pkK := skK.PubKey()
    20  	skR, _ := secp256r1.GenPrivKey()
    21  	pkR := skR.PubKey()
    22  
    23  	sigK, err := skK.Sign(msg)
    24  	require.NoError(err)
    25  	sigR, err := skR.Sign(msg)
    26  	require.NoError(err)
    27  	b.ResetTimer()
    28  
    29  	b.Run("secp256k1", func(b *testing.B) {
    30  		b.ReportAllocs()
    31  		for i := 0; i < b.N; i++ {
    32  			ok := pkK.VerifySignature(msg, sigK)
    33  			require.True(ok)
    34  		}
    35  	})
    36  
    37  	b.Run("secp256r1", func(b *testing.B) {
    38  		b.ReportAllocs()
    39  		for i := 0; i < b.N; i++ {
    40  			ok := pkR.VerifySignature(msg, sigR)
    41  			require.True(ok)
    42  		}
    43  	})
    44  }