summaryrefslogtreecommitdiff
path: root/test_srp.py
diff options
context:
space:
mode:
Diffstat (limited to 'test_srp.py')
-rw-r--r--test_srp.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/test_srp.py b/test_srp.py
new file mode 100644
index 0000000..cbfa54a
--- /dev/null
+++ b/test_srp.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+
+NTHREADS = 2
+NTEST = 10
+
+import _pysrp
+User = _pysrp.User
+Verifier = _pysrp.Verifier
+gen_sv = _pysrp.gen_sv
+
+import _ctsrp
+#User = _ctsrp.User
+#Verifier = _ctsrp.Verifier
+#gen_sv = _ctsrp.gen_sv
+
+import _srp
+#User = _srp.User
+#Verifier = _srp.Verifier
+#gen_sv = _srp.gen_sv
+
+import srp
+#User = srp.User
+#Verifier = srp.Verifier
+#gen_sv = srp.gen_sv
+
+username = 'testuser'
+password = 'testpassword'
+
+_s, _v = gen_sv( username, password )
+
+def test_one():
+ usr = User( username, password )
+ uname, A = usr.start_authentication()
+
+ # username, A => server
+ svr = Verifier( uname, _s, _v, A )
+ s,B = svr.get_challenge()
+
+ # s,B => client
+ M = usr.process_challenge( s, B )
+
+ # M => server
+ HAMK = svr.verify_session( M )
+
+ # HAMK => client
+ usr.verify_session( HAMK )
+
+ if not svr.authenticated() or not usr.authenticated():
+ raise Exception('Authentication failed!')
+
+#---------------------------------------------------------------
+
+import time
+import thread
+
+NTESTED = 0
+
+def test_thread():
+ global NTESTED
+ while NTESTED < NTEST:
+ test_one()
+ NTESTED += 1
+
+start = time.time()
+while NTHREADS > 1:
+ thread.start_new_thread( test_thread, () )
+ NTHREADS -= 1
+test_thread()
+duration = time.time() - start
+
+# Pause briefly to ensure no background threads are still executing
+time.sleep(0.1)
+
+print 'Total time: ', duration
+print 'Time per call: ', duration/NTEST
+