github.com/keltia/go-ipfs@v0.3.8-0.20150909044612-210793031c63/p2p/crypto/bench_test.go (about) 1 package crypto 2 3 import "testing" 4 5 func BenchmarkSign1B(b *testing.B) { RunBenchmarkSign(b, 1) } 6 func BenchmarkSign10B(b *testing.B) { RunBenchmarkSign(b, 10) } 7 func BenchmarkSign100B(b *testing.B) { RunBenchmarkSign(b, 100) } 8 func BenchmarkSign1000B(b *testing.B) { RunBenchmarkSign(b, 1000) } 9 func BenchmarkSign10000B(b *testing.B) { RunBenchmarkSign(b, 10000) } 10 func BenchmarkSign100000B(b *testing.B) { RunBenchmarkSign(b, 100000) } 11 12 func BenchmarkVerify1B(b *testing.B) { RunBenchmarkVerify(b, 1) } 13 func BenchmarkVerify10B(b *testing.B) { RunBenchmarkVerify(b, 10) } 14 func BenchmarkVerify100B(b *testing.B) { RunBenchmarkVerify(b, 100) } 15 func BenchmarkVerify1000B(b *testing.B) { RunBenchmarkVerify(b, 1000) } 16 func BenchmarkVerify10000B(b *testing.B) { RunBenchmarkVerify(b, 10000) } 17 func BenchmarkVerify100000B(b *testing.B) { RunBenchmarkVerify(b, 100000) } 18 19 func RunBenchmarkSign(b *testing.B, numBytes int) { 20 secret, _, err := GenerateKeyPair(RSA, 1024) 21 if err != nil { 22 b.Fatal(err) 23 } 24 someData := make([]byte, numBytes) 25 b.ResetTimer() 26 for i := 0; i < b.N; i++ { 27 _, err := secret.Sign(someData) 28 if err != nil { 29 b.Fatal(err) 30 } 31 } 32 } 33 34 func RunBenchmarkVerify(b *testing.B, numBytes int) { 35 secret, public, err := GenerateKeyPair(RSA, 1024) 36 if err != nil { 37 b.Fatal(err) 38 } 39 someData := make([]byte, numBytes) 40 signature, err := secret.Sign(someData) 41 if err != nil { 42 b.Fatal(err) 43 } 44 b.ResetTimer() 45 for i := 0; i < b.N; i++ { 46 valid, err := public.Verify(someData, signature) 47 if err != nil { 48 b.Fatal(err) 49 } 50 if !valid { 51 b.Fatal("signature should be valid") 52 } 53 } 54 }