bench_test.go raw

   1  package secp256k1
   2  
   3  import (
   4  	"encoding/hex"
   5  	"testing"
   6  
   7  	"git.smesh.lol/torly/pkg/crypto/btcec/schnorr"
   8  )
   9  
  10  func BenchmarkVerify(b *testing.B) {
  11  	pubB, _ := hex.DecodeString("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9")
  12  	sigB, _ := hex.DecodeString("e907831f80848d1069a5371b402410364bdf1c5f8307b0084c55f1ce2dca821525f66a4a85ea8b71e482a74f382d2ce5ebeee8fdb2172f477df4900d310536c0")
  13  	var pub [32]byte
  14  	var sig [64]byte
  15  	copy(pub[:], pubB)
  16  	copy(sig[:], sigB)
  17  	var msg [32]byte
  18  	b.ResetTimer()
  19  	for i := 0; i < b.N; i++ {
  20  		if !Verify(pub, msg, sig) {
  21  			b.Fatal("verify failed")
  22  		}
  23  	}
  24  }
  25  
  26  func BenchmarkParseVerify(b *testing.B) {
  27  	pubB, _ := hex.DecodeString("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9")
  28  	sigB, _ := hex.DecodeString("e907831f80848d1069a5371b402410364bdf1c5f8307b0084c55f1ce2dca821525f66a4a85ea8b71e482a74f382d2ce5ebeee8fdb2172f477df4900d310536c0")
  29  	var pub [32]byte
  30  	var sig [64]byte
  31  	copy(pub[:], pubB)
  32  	copy(sig[:], sigB)
  33  	var msg [32]byte
  34  	b.ResetTimer()
  35  	for i := 0; i < b.N; i++ {
  36  		if !verifyFast(pub, msg, sig) {
  37  			b.Fatal("verify failed")
  38  		}
  39  	}
  40  }
  41  
  42  func BenchmarkParsedVerify(b *testing.B) {
  43  	pubB, _ := hex.DecodeString("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9")
  44  	sigB, _ := hex.DecodeString("e907831f80848d1069a5371b402410364bdf1c5f8307b0084c55f1ce2dca821525f66a4a85ea8b71e482a74f382d2ce5ebeee8fdb2172f477df4900d310536c0")
  45  	pk, err := schnorr.ParsePubKey(pubB)
  46  	if err != nil {
  47  		b.Fatal(err)
  48  	}
  49  	sig, err := schnorr.ParseSignature(sigB)
  50  	if err != nil {
  51  		b.Fatal(err)
  52  	}
  53  	var msg [32]byte
  54  	b.ResetTimer()
  55  	for i := 0; i < b.N; i++ {
  56  		if !sig.Verify(msg[:], pk) {
  57  			b.Fatal("verify failed")
  58  		}
  59  	}
  60  }
  61  
  62  func BenchmarkParsePubKey(b *testing.B) {
  63  	pubB, _ := hex.DecodeString("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9")
  64  	b.ResetTimer()
  65  	for i := 0; i < b.N; i++ {
  66  		if _, err := schnorr.ParsePubKey(pubB); err != nil {
  67  			b.Fatal(err)
  68  		}
  69  	}
  70  }
  71