mirror of https://github.com/poanetwork/gecko.git
49 lines
891 B
Go
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()
|
|
}
|
|
}
|