aboutsummaryrefslogtreecommitdiff
path: root/lib/curve25519-donna/python-src/curve25519/test/test_speed.py
diff options
context:
space:
mode:
authorMark Haines <mjark@negativecurvature.net>2015-02-26 16:40:56 +0000
committerMark Haines <mjark@negativecurvature.net>2015-02-26 16:40:56 +0000
commit6c56bcf2fd3db38c679b9cf9345051a7309fa02f (patch)
treed587e9a7d8f7e0fc91d4d04b2e4903175a682a83 /lib/curve25519-donna/python-src/curve25519/test/test_speed.py
parent09d8e84c7cbbf21195f3fd2eabbcff44042d5a4e (diff)
parente50ac707316ea6d8059f7036322450727773952d (diff)
Merge commit 'e50ac707316ea6d8059f7036322450727773952d' as 'lib/curve25519-donna'
Diffstat (limited to 'lib/curve25519-donna/python-src/curve25519/test/test_speed.py')
-rwxr-xr-xlib/curve25519-donna/python-src/curve25519/test/test_speed.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/curve25519-donna/python-src/curve25519/test/test_speed.py b/lib/curve25519-donna/python-src/curve25519/test/test_speed.py
new file mode 100755
index 0000000..87952fa
--- /dev/null
+++ b/lib/curve25519-donna/python-src/curve25519/test/test_speed.py
@@ -0,0 +1,46 @@
+#! /usr/bin/python
+
+from time import time
+from curve25519 import Private
+
+count = 10000
+elapsed_get_public = 0.0
+elapsed_get_shared = 0.0
+
+def abbreviate_time(data):
+ # 1.23s, 790ms, 132us
+ if data is None:
+ return ""
+ s = float(data)
+ if s >= 10:
+ #return abbreviate.abbreviate_time(data)
+ return "%d" % s
+ if s >= 1.0:
+ return "%.2fs" % s
+ if s >= 0.01:
+ return "%dms" % (1000*s)
+ if s >= 0.001:
+ return "%.1fms" % (1000*s)
+ if s >= 0.000001:
+ return "%.1fus" % (1000000*s)
+ return "%dns" % (1000000000*s)
+
+def nohash(key): return key
+
+for i in range(count):
+ p = Private()
+ start = time()
+ pub = p.get_public()
+ elapsed_get_public += time() - start
+ pub2 = Private().get_public()
+ start = time()
+ shared = p.get_shared_key(pub2) #, hashfunc=nohash)
+ elapsed_get_shared += time() - start
+
+print("get_public: %s" % abbreviate_time(elapsed_get_public / count))
+print("get_shared: %s" % abbreviate_time(elapsed_get_shared / count))
+
+# these take about 560us-570us each (with the default compiler settings, -Os)
+# on my laptop, same with -O2
+# of which the python overhead is about 5us
+# and the get_shared_key() hash step adds about 5us