aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/ec/test_key_agreement.py
diff options
context:
space:
mode:
authorJ08nY2019-04-22 18:04:44 +0200
committerJ08nY2019-04-22 18:04:44 +0200
commit24b9b3958a54bdf7f18df62ae14199749934e3c2 (patch)
treea758d0289337f6aee7540dca4a94ea31ced69217 /test/ec/test_key_agreement.py
parent037194fd8cfe50aa2367c2f3c7fae5b41e7b46f9 (diff)
downloadpyecsca-24b9b3958a54bdf7f18df62ae14199749934e3c2.tar.gz
pyecsca-24b9b3958a54bdf7f18df62ae14199749934e3c2.tar.zst
pyecsca-24b9b3958a54bdf7f18df62ae14199749934e3c2.zip
Add ECDH and ECDSA simulation.
Diffstat (limited to 'test/ec/test_key_agreement.py')
-rw-r--r--test/ec/test_key_agreement.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/ec/test_key_agreement.py b/test/ec/test_key_agreement.py
new file mode 100644
index 0000000..f22ee75
--- /dev/null
+++ b/test/ec/test_key_agreement.py
@@ -0,0 +1,25 @@
+from unittest import TestCase
+
+from pyecsca.ec.key_agreement import *
+from pyecsca.ec.mult import LTRMultiplier
+from .curves import get_secp128r1
+
+
+class KeyAgreementTests(TestCase):
+
+ def setUp(self):
+ self.secp128r1 = get_secp128r1()
+ self.add = self.secp128r1.curve.coordinate_model.formulas["add-2007-bl"]
+ self.dbl = self.secp128r1.curve.coordinate_model.formulas["dbl-2007-bl"]
+ self.mult = LTRMultiplier(self.secp128r1, self.add, self.dbl)
+ self.priv_a = 0xdeadbeef
+ self.pub_a = self.mult.multiply(self.priv_a, self.secp128r1.generator)
+ self.priv_b = 0xcafebabe
+ self.pub_b = self.mult.multiply(self.priv_b, self.secp128r1.generator)
+ self.algos = [ECDH_NONE, ECDH_SHA1, ECDH_SHA224, ECDH_SHA256, ECDH_SHA384, ECDH_SHA512]
+
+ def test_all(self):
+ for algo in self.algos:
+ result_ab = algo(self.mult, self.pub_a, self.priv_b).perform()
+ result_ba = algo(self.mult, self.pub_b, self.priv_a).perform()
+ self.assertEqual(result_ab, result_ba)