aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2015-11-29 14:50:02 +0100
committerJakob Unterwurzacher2015-11-29 14:50:02 +0100
commit71bfa1f0fb540790f87faac600e4041052b4d217 (patch)
treed40fcd4c9f10859d84074719fab4b434e298f880
parenteb38a3611448ba711a17aedd6f9654e501d2b2ab (diff)
tests: add scrypt benchmark
Times the impact of the parameter "N" to scrypt. Results on a 2.7GHz Pentium G630: gocryptfs/cryptfs$ go test -bench=. PASS BenchmarkScrypt10-2 300 6021435 ns/op ... 6ms BenchmarkScrypt11-2 100 11861460 ns/op BenchmarkScrypt12-2 100 23420822 ns/op BenchmarkScrypt13-2 30 47666518 ns/op BenchmarkScrypt14-2 20 92561590 ns/op ... 92ms BenchmarkScrypt15-2 10 183971593 ns/op BenchmarkScrypt16-2 3 368506365 ns/op BenchmarkScrypt17-2 2 755502608 ns/op ... 755ms ok github.com/rfjakob/gocryptfs/cryptfs 18.772s
-rw-r--r--cryptfs/kdf_test.go60
1 files changed, 60 insertions, 0 deletions
diff --git a/cryptfs/kdf_test.go b/cryptfs/kdf_test.go
new file mode 100644
index 0000000..4d909ea
--- /dev/null
+++ b/cryptfs/kdf_test.go
@@ -0,0 +1,60 @@
+package cryptfs
+
+import (
+ "testing"
+)
+
+/*
+Results on a 2.7GHz Pentium G630:
+
+gocryptfs/cryptfs$ go test -bench=.
+PASS
+BenchmarkScrypt10-2 300 6021435 ns/op ... 6ms
+BenchmarkScrypt11-2 100 11861460 ns/op
+BenchmarkScrypt12-2 100 23420822 ns/op
+BenchmarkScrypt13-2 30 47666518 ns/op
+BenchmarkScrypt14-2 20 92561590 ns/op ... 92ms
+BenchmarkScrypt15-2 10 183971593 ns/op
+BenchmarkScrypt16-2 3 368506365 ns/op
+BenchmarkScrypt17-2 2 755502608 ns/op ... 755ms
+ok github.com/rfjakob/gocryptfs/cryptfs 18.772s
+*/
+
+func benchmarkScryptN(n int, b *testing.B) {
+ kdf := NewScryptKdf(n)
+ for i := 0; i < b.N; i++ {
+ kdf.DeriveKey("test")
+ }
+}
+
+func BenchmarkScrypt10(b *testing.B) {
+ benchmarkScryptN(10, b)
+}
+
+func BenchmarkScrypt11(b *testing.B) {
+ benchmarkScryptN(11, b)
+}
+
+func BenchmarkScrypt12(b *testing.B) {
+ benchmarkScryptN(12, b)
+}
+
+func BenchmarkScrypt13(b *testing.B) {
+ benchmarkScryptN(13, b)
+}
+
+func BenchmarkScrypt14(b *testing.B) {
+ benchmarkScryptN(14, b)
+}
+
+func BenchmarkScrypt15(b *testing.B) {
+ benchmarkScryptN(15, b)
+}
+
+func BenchmarkScrypt16(b *testing.B) {
+ benchmarkScryptN(16, b)
+}
+
+func BenchmarkScrypt17(b *testing.B) {
+ benchmarkScryptN(17, b)
+}