aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/test_client.py
diff options
context:
space:
mode:
authorJ08nY2023-09-28 17:31:33 +0200
committerJ08nY2023-09-28 17:31:33 +0200
commitf2a0476c778dd5f752bf522f28563ec7a01f186e (patch)
treece1566ffa0478131236cb603774f88222173f98b /test/test_client.py
parentedae0ca0627926772045c105ae4551c18f872653 (diff)
downloadpyecsca-codegen-f2a0476c778dd5f752bf522f28563ec7a01f186e.tar.gz
pyecsca-codegen-f2a0476c778dd5f752bf522f28563ec7a01f186e.tar.zst
pyecsca-codegen-f2a0476c778dd5f752bf522f28563ec7a01f186e.zip
Move to pytest.
Diffstat (limited to 'test/test_client.py')
-rw-r--r--test/test_client.py193
1 files changed, 92 insertions, 101 deletions
diff --git a/test/test_client.py b/test/test_client.py
index 3132e4e..170b32f 100644
--- a/test/test_client.py
+++ b/test/test_client.py
@@ -1,108 +1,99 @@
from os.path import join
-from unittest import TestCase
-
-from click.testing import CliRunner
-from pyecsca.ec.params import get_params
-from pyecsca.ec.mod import Mod
from pyecsca.codegen.builder import build_impl
-from pyecsca.codegen.client import (encode_data, decode_data, encode_scalar, cmd_init_prng,
- cmd_set_params, cmd_set_pubkey, cmd_set_privkey,
- cmd_scalar_mult,
- cmd_ecdh, cmd_ecdsa_sign, cmd_ecdsa_verify, cmd_generate,
- cmd_debug, main, cmd_set_trigger, Triggers)
-
-
-class EncodingTests(TestCase):
-
- def test_encode_decode(self):
- data = {"a": encode_scalar(0xcafebabe),
- "b": {
- "c": encode_scalar(Mod(1, 3)),
- "d": bytes([0x2])
- }}
- encoded = encode_data(None, data)
- result = decode_data(encoded)
- self.assertEqual(data, result)
-
-
-class CommandTest(TestCase):
-
- def setUp(self):
- self.curve = get_params("secg", "secp128r1", "projective")
- self.model = self.curve.curve.model
- self.coords = self.curve.curve.coordinate_model
-
- def test_init_prng(self):
- cmd_init_prng(bytes([0xca, 0xfe, 0xba, 0xbe]))
-
- def test_set_curve(self):
- cmd_set_params(self.curve)
-
- def test_generate(self):
- cmd_generate()
-
- def test_set_pubkey(self):
- cmd_set_pubkey(self.curve.generator)
-
- def test_set_privkey(self):
- cmd_set_privkey(0x123456789)
-
- def test_scalar_mult(self):
- cmd_scalar_mult(0x123456789, self.curve.generator)
-
- def test_ecdh(self):
- cmd_ecdh(self.curve.generator)
-
- def test_ecdsa_sign(self):
- cmd_ecdsa_sign(b"something")
-
- def test_ecdsa_verify(self):
- cmd_ecdsa_verify(b"something", b"signature")
-
- def test_set_trigger(self):
- cmd_set_trigger(Triggers.add)
-
- def test_debug(self):
- cmd_debug()
-
+from pyecsca.codegen.client import main
-class ClientTests(TestCase):
- def test_generate(self):
- runner = CliRunner()
- with runner.isolated_filesystem() as tmpdir:
- runner.invoke(build_impl,
- ["--platform", "HOST", "shortw", "projective",
- "add-1998-cmo", "dbl-1998-cmo", "z", "ltr(complete=False)", "."])
- result = runner.invoke(main,
- ["--platform", "HOST", "--fw",
- join(tmpdir, "pyecsca-codegen-HOST.elf"),
- "shortw", "projective", "gen", "secg/secp128r1"])
- self.assertEqual(result.exit_code, 0)
+def test_generate(cli_runner):
+ with cli_runner.isolated_filesystem() as tmpdir:
+ cli_runner.invoke(
+ build_impl,
+ [
+ "--platform",
+ "HOST",
+ "shortw",
+ "projective",
+ "add-1998-cmo",
+ "dbl-1998-cmo",
+ "z",
+ "ltr(complete=False)",
+ ".",
+ ],
+ )
+ result = cli_runner.invoke(
+ main,
+ [
+ "--platform",
+ "HOST",
+ "--fw",
+ join(tmpdir, "pyecsca-codegen-HOST.elf"),
+ "shortw",
+ "projective",
+ "gen",
+ "secg/secp128r1",
+ ],
+ )
+ assert result.exit_code == 0
- def test_ecdh(self):
- runner = CliRunner()
- with runner.isolated_filesystem() as tmpdir:
- runner.invoke(build_impl,
- ["--platform", "HOST", "shortw", "projective",
- "add-1998-cmo", "dbl-1998-cmo", "z", "ltr(complete=False)", "."])
- result = runner.invoke(main,
- ["--platform", "HOST", "--fw",
- join(tmpdir, "pyecsca-codegen-HOST.elf"),
- "shortw", "projective", "ecdh", "secg/secp128r1",
- "122835813094999453922649270086793500655,326514220558629293368386081113307347349"])
- self.assertEqual(result.exit_code, 0)
- result = runner.invoke(main,
- ["--platform", "HOST", "--fw",
- join(tmpdir, "pyecsca-codegen-HOST.elf"),
- "shortw", "projective", "ecdh", "secg/secp128r1",
- "045c69512b630addd5b6d347b7bce517eff5a459f98f015c6906ccfed3cf0bf995"])
- self.assertEqual(result.exit_code, 0)
- result = runner.invoke(main,
- ["--platform", "HOST", "--fw",
- join(tmpdir, "pyecsca-codegen-HOST.elf"),
- "shortw", "projective", "ecdh", "secg/secp128r1",
- "something"])
- self.assertEqual(result.exit_code, 2)
+def test_ecdh(cli_runner):
+ with cli_runner.isolated_filesystem() as tmpdir:
+ cli_runner.invoke(
+ build_impl,
+ [
+ "--platform",
+ "HOST",
+ "shortw",
+ "projective",
+ "add-1998-cmo",
+ "dbl-1998-cmo",
+ "z",
+ "ltr(complete=False)",
+ ".",
+ ],
+ )
+ result = cli_runner.invoke(
+ main,
+ [
+ "--platform",
+ "HOST",
+ "--fw",
+ join(tmpdir, "pyecsca-codegen-HOST.elf"),
+ "shortw",
+ "projective",
+ "ecdh",
+ "secg/secp128r1",
+ "122835813094999453922649270086793500655,326514220558629293368386081113307347349",
+ ],
+ )
+ assert result.exit_code == 0
+ result = cli_runner.invoke(
+ main,
+ [
+ "--platform",
+ "HOST",
+ "--fw",
+ join(tmpdir, "pyecsca-codegen-HOST.elf"),
+ "shortw",
+ "projective",
+ "ecdh",
+ "secg/secp128r1",
+ "045c69512b630addd5b6d347b7bce517eff5a459f98f015c6906ccfed3cf0bf995",
+ ],
+ )
+ assert result.exit_code == 0
+ result = cli_runner.invoke(
+ main,
+ [
+ "--platform",
+ "HOST",
+ "--fw",
+ join(tmpdir, "pyecsca-codegen-HOST.elf"),
+ "shortw",
+ "projective",
+ "ecdh",
+ "secg/secp128r1",
+ "something",
+ ],
+ )
+ assert result.exit_code == 2