aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pyecsca/ec/error.py7
-rw-r--r--test/ec/test_configuration.py1
-rw-r--r--test/ec/test_mod.py13
3 files changed, 13 insertions, 8 deletions
diff --git a/pyecsca/ec/error.py b/pyecsca/ec/error.py
index fac4aac..87ca335 100644
--- a/pyecsca/ec/error.py
+++ b/pyecsca/ec/error.py
@@ -1,4 +1,5 @@
"""This module contains exceptions and warnings used in the library."""
+import warnings
from public import public
from ..misc.cfg import getconfig
@@ -27,7 +28,7 @@ def raise_non_invertible():
if cfg.ec.no_inverse_action == "error":
raise NonInvertibleError("Element not invertible.")
elif cfg.ec.no_inverse_action == "warning":
- raise NonInvertibleWarning("Element not invertible.")
+ warnings.warn(NonInvertibleWarning("Element not invertible."))
@public
@@ -54,7 +55,7 @@ def raise_non_residue():
if cfg.ec.non_residue_action == "error":
raise NonResidueError("No square root exists.")
elif cfg.ec.non_residue_action == "warning":
- raise NonResidueWarning("No square root exists.")
+ warnings.warn(NonResidueWarning("No square root exists."))
@public
@@ -80,4 +81,4 @@ def raise_unsatisified_assumption(action: str, msg: str):
if action == "error":
raise UnsatisfiedAssumptionError(msg)
elif action == "warning":
- raise UnsatisfiedAssumptionWarning(msg)
+ warnings.warn(UnsatisfiedAssumptionWarning(msg))
diff --git a/test/ec/test_configuration.py b/test/ec/test_configuration.py
index 7603321..d2ab3f5 100644
--- a/test/ec/test_configuration.py
+++ b/test/ec/test_configuration.py
@@ -30,7 +30,6 @@ class ConfigurationTests(TestCase):
j = 0
for _ in all_configurations(model=ShortWeierstrassModel()):
j += 1
- print(j)
def test_weierstrass_projective(self):
model = ShortWeierstrassModel()
diff --git a/test/ec/test_mod.py b/test/ec/test_mod.py
index 864cc2e..cac9be4 100644
--- a/test/ec/test_mod.py
+++ b/test/ec/test_mod.py
@@ -1,3 +1,4 @@
+import warnings
from sympy import FF, symbols
from unittest import TestCase
@@ -61,10 +62,12 @@ class ModTests(TestCase):
with self.assertRaises(NonInvertibleError):
Mod(5, 10).inverse()
getconfig().ec.no_inverse_action = "warning"
- with self.assertRaises(NonInvertibleWarning):
+ with warnings.catch_warnings(record=True) as w:
Mod(0, p).inverse()
- with self.assertRaises(NonInvertibleWarning):
+ self.assertTrue(issubclass(w[0].category, NonInvertibleWarning))
+ with warnings.catch_warnings(record=True) as w:
Mod(5, 10).inverse()
+ self.assertTrue(issubclass(w[0].category, NonInvertibleWarning))
getconfig().ec.no_inverse_action = "ignore"
Mod(0, p).inverse()
Mod(5, 10).inverse()
@@ -92,21 +95,23 @@ class ModTests(TestCase):
0x702BDAFD3C1C837B23A1CB196ED7F9FADB333C5CFE4A462BE32ADCD67BFB6AC1, p
).sqrt()
getconfig().ec.non_residue_action = "warning"
- with self.assertRaises(NonResidueWarning):
+ with warnings.catch_warnings(record=True) as w:
Mod(
0x702BDAFD3C1C837B23A1CB196ED7F9FADB333C5CFE4A462BE32ADCD67BFB6AC1, p
).sqrt()
+ self.assertTrue(issubclass(w[0].category, NonResidueWarning))
getconfig().ec.non_residue_action = "ignore"
Mod(
0x702BDAFD3C1C837B23A1CB196ED7F9FADB333C5CFE4A462BE32ADCD67BFB6AC1, p
).sqrt()
with TemporaryConfig() as cfg:
cfg.ec.non_residue_action = "warning"
- with self.assertRaises(NonResidueWarning):
+ with warnings.catch_warnings(record=True) as w:
Mod(
0x702BDAFD3C1C837B23A1CB196ED7F9FADB333C5CFE4A462BE32ADCD67BFB6AC1,
p,
).sqrt()
+ self.assertTrue(issubclass(w[0].category, NonResidueWarning))
self.assertEqual(Mod(0, p).sqrt(), Mod(0, p))
q = 0x75D44FEE9A71841AE8403C0C251FBAD
self.assertIn(