package secp256k1 import ( "encoding/hex" "testing" "git.smesh.lol/torly/pkg/crypto/btcec/schnorr" ) func BenchmarkVerify(b *testing.B) { pubB, _ := hex.DecodeString("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9") sigB, _ := hex.DecodeString("e907831f80848d1069a5371b402410364bdf1c5f8307b0084c55f1ce2dca821525f66a4a85ea8b71e482a74f382d2ce5ebeee8fdb2172f477df4900d310536c0") var pub [32]byte var sig [64]byte copy(pub[:], pubB) copy(sig[:], sigB) var msg [32]byte b.ResetTimer() for i := 0; i < b.N; i++ { if !Verify(pub, msg, sig) { b.Fatal("verify failed") } } } func BenchmarkParseVerify(b *testing.B) { pubB, _ := hex.DecodeString("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9") sigB, _ := hex.DecodeString("e907831f80848d1069a5371b402410364bdf1c5f8307b0084c55f1ce2dca821525f66a4a85ea8b71e482a74f382d2ce5ebeee8fdb2172f477df4900d310536c0") var pub [32]byte var sig [64]byte copy(pub[:], pubB) copy(sig[:], sigB) var msg [32]byte b.ResetTimer() for i := 0; i < b.N; i++ { if !verifyFast(pub, msg, sig) { b.Fatal("verify failed") } } } func BenchmarkParsedVerify(b *testing.B) { pubB, _ := hex.DecodeString("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9") sigB, _ := hex.DecodeString("e907831f80848d1069a5371b402410364bdf1c5f8307b0084c55f1ce2dca821525f66a4a85ea8b71e482a74f382d2ce5ebeee8fdb2172f477df4900d310536c0") pk, err := schnorr.ParsePubKey(pubB) if err != nil { b.Fatal(err) } sig, err := schnorr.ParseSignature(sigB) if err != nil { b.Fatal(err) } var msg [32]byte b.ResetTimer() for i := 0; i < b.N; i++ { if !sig.Verify(msg[:], pk) { b.Fatal("verify failed") } } } func BenchmarkParsePubKey(b *testing.B) { pubB, _ := hex.DecodeString("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9") b.ResetTimer() for i := 0; i < b.N; i++ { if _, err := schnorr.ParsePubKey(pubB); err != nil { b.Fatal(err) } } }