gecko/utils/crypto/secp256k1_recover_benchmark...

49 lines
891 B
Go

package crypto
import (
"testing"
"github.com/ava-labs/gecko/utils/hashing"
)
// NumRecoveries is the number of recoveries to run per operation
const NumRecoveries = 1
var (
secpSigs [][]byte
)
func init() {
factory := FactorySECP256K1R{}
hash := hashing.ComputeHash256(nil)
for i := byte(0); i < NumRecoveries; i++ {
key, err := factory.NewPrivateKey()
if err != nil {
panic(err)
}
sig, err := key.SignHash(hash)
if err != nil {
panic(err)
}
secpSigs = append(secpSigs, sig)
}
}
func recover() {
factory := FactorySECP256K1R{}
hash := hashing.ComputeHash256(nil)
for _, sig := range secpSigs {
if _, err := factory.RecoverHashPublicKey(hash, sig); err != nil {
panic(err)
}
}
}
// BenchmarkSecp256k1RecoverVerify runs the benchmark with secp sig
func BenchmarkSecp256k1RecoverVerify(b *testing.B) {
for n := 0; n < b.N; n++ {
recover()
}
}