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