OSDN Git Service

add package
[bytom/vapor.git] / vendor / github.com / libp2p / go-libp2p-crypto / bench_test.go
1 package crypto
2
3 import "testing"
4
5 func BenchmarkSignRSA1B(b *testing.B)      { RunBenchmarkSignRSA(b, 1) }
6 func BenchmarkSignRSA10B(b *testing.B)     { RunBenchmarkSignRSA(b, 10) }
7 func BenchmarkSignRSA100B(b *testing.B)    { RunBenchmarkSignRSA(b, 100) }
8 func BenchmarkSignRSA1000B(b *testing.B)   { RunBenchmarkSignRSA(b, 1000) }
9 func BenchmarkSignRSA10000B(b *testing.B)  { RunBenchmarkSignRSA(b, 10000) }
10 func BenchmarkSignRSA100000B(b *testing.B) { RunBenchmarkSignRSA(b, 100000) }
11
12 func BenchmarkVerifyRSA1B(b *testing.B)      { RunBenchmarkVerifyRSA(b, 1) }
13 func BenchmarkVerifyRSA10B(b *testing.B)     { RunBenchmarkVerifyRSA(b, 10) }
14 func BenchmarkVerifyRSA100B(b *testing.B)    { RunBenchmarkVerifyRSA(b, 100) }
15 func BenchmarkVerifyRSA1000B(b *testing.B)   { RunBenchmarkVerifyRSA(b, 1000) }
16 func BenchmarkVerifyRSA10000B(b *testing.B)  { RunBenchmarkVerifyRSA(b, 10000) }
17 func BenchmarkVerifyRSA100000B(b *testing.B) { RunBenchmarkVerifyRSA(b, 100000) }
18
19 func BenchmarkSignEd255191B(b *testing.B)      { RunBenchmarkSignEd25519(b, 1) }
20 func BenchmarkSignEd2551910B(b *testing.B)     { RunBenchmarkSignEd25519(b, 10) }
21 func BenchmarkSignEd25519100B(b *testing.B)    { RunBenchmarkSignEd25519(b, 100) }
22 func BenchmarkSignEd255191000B(b *testing.B)   { RunBenchmarkSignEd25519(b, 1000) }
23 func BenchmarkSignEd2551910000B(b *testing.B)  { RunBenchmarkSignEd25519(b, 10000) }
24 func BenchmarkSignEd25519100000B(b *testing.B) { RunBenchmarkSignEd25519(b, 100000) }
25
26 func BenchmarkVerifyEd255191B(b *testing.B)      { RunBenchmarkVerifyEd25519(b, 1) }
27 func BenchmarkVerifyEd2551910B(b *testing.B)     { RunBenchmarkVerifyEd25519(b, 10) }
28 func BenchmarkVerifyEd25519100B(b *testing.B)    { RunBenchmarkVerifyEd25519(b, 100) }
29 func BenchmarkVerifyEd255191000B(b *testing.B)   { RunBenchmarkVerifyEd25519(b, 1000) }
30 func BenchmarkVerifyEd2551910000B(b *testing.B)  { RunBenchmarkVerifyEd25519(b, 10000) }
31 func BenchmarkVerifyEd25519100000B(b *testing.B) { RunBenchmarkVerifyEd25519(b, 100000) }
32
33 func RunBenchmarkSignRSA(b *testing.B, numBytes int) {
34         runBenchmarkSign(b, numBytes, RSA)
35 }
36
37 func RunBenchmarkSignEd25519(b *testing.B, numBytes int) {
38         runBenchmarkSign(b, numBytes, Ed25519)
39 }
40
41 func runBenchmarkSign(b *testing.B, numBytes int, t int) {
42         secret, _, err := GenerateKeyPair(t, 1024)
43         if err != nil {
44                 b.Fatal(err)
45         }
46         someData := make([]byte, numBytes)
47         b.ResetTimer()
48         for i := 0; i < b.N; i++ {
49                 _, err := secret.Sign(someData)
50                 if err != nil {
51                         b.Fatal(err)
52                 }
53         }
54 }
55
56 func RunBenchmarkVerifyRSA(b *testing.B, numBytes int) {
57         runBenchmarkSign(b, numBytes, RSA)
58 }
59
60 func RunBenchmarkVerifyEd25519(b *testing.B, numBytes int) {
61         runBenchmarkSign(b, numBytes, Ed25519)
62 }
63
64 func runBenchmarkVerify(b *testing.B, numBytes int, t int) {
65         secret, public, err := GenerateKeyPair(t, 1024)
66         if err != nil {
67                 b.Fatal(err)
68         }
69         someData := make([]byte, numBytes)
70         signature, err := secret.Sign(someData)
71         if err != nil {
72                 b.Fatal(err)
73         }
74         b.ResetTimer()
75         for i := 0; i < b.N; i++ {
76                 valid, err := public.Verify(someData, signature)
77                 if err != nil {
78                         b.Fatal(err)
79                 }
80                 if !valid {
81                         b.Fatal("signature should be valid")
82                 }
83         }
84 }