aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca
diff options
context:
space:
mode:
authorJ08nY2024-01-23 13:06:55 +0100
committerJ08nY2024-01-23 13:06:55 +0100
commit580da4adb97d145e5da08e1fd39ff6911dcbdc3e (patch)
tree8724d98a894b8426307a63b0a00796077b78f3ce /pyecsca
parentb00d073f2fcd07bb36f3f919aa0a75c878bef5f5 (diff)
downloadpyecsca-580da4adb97d145e5da08e1fd39ff6911dcbdc3e.tar.gz
pyecsca-580da4adb97d145e5da08e1fd39ff6911dcbdc3e.tar.zst
pyecsca-580da4adb97d145e5da08e1fd39ff6911dcbdc3e.zip
Add pari to CI.
Diffstat (limited to 'pyecsca')
-rw-r--r--pyecsca/sca/re/zvp.py20
1 files changed, 11 insertions, 9 deletions
diff --git a/pyecsca/sca/re/zvp.py b/pyecsca/sca/re/zvp.py
index 21915da..517299f 100644
--- a/pyecsca/sca/re/zvp.py
+++ b/pyecsca/sca/re/zvp.py
@@ -8,13 +8,6 @@ from public import public
from astunparse import unparse
from sympy import FF, Poly, Monomial, Symbol, Expr, sympify, symbols, div
-from tqdm.auto import tqdm
-
-try:
- import cypari2
-except ModuleNotFoundError:
- pass
-
from .rpa import MultipleContext
from ...ec.context import local
from ...ec.curve import EllipticCurve
@@ -34,6 +27,15 @@ from ...ec.params import DomainParameters
from ...ec.point import Point
+has_pari = False
+try:
+ import cypari2
+
+ has_pari = True
+except ImportError:
+ cypari2 = None
+
+
@public
def unroll_formula_expr(formula: Formula) -> List[Tuple[str, Expr]]:
"""
@@ -504,7 +506,7 @@ def zvp_points(poly: Poly, curve: EllipticCurve, k: int, n: int) -> Set[Point]:
def solve_easy_dcp(xonly_polynomial: Poly, curve: EllipticCurve) -> Set[Point]:
points = set()
final = subs_curve_params(xonly_polynomial, curve)
- if "cypari2" in dir():
+ if has_pari:
pari = cypari2.Pari()
polynomial = pari(str(xonly_polynomial.expr).replace("**", "^"))
roots = list(map(int, pari.polrootsmod(polynomial, curve.prime)))
@@ -517,7 +519,7 @@ def solve_easy_dcp(xonly_polynomial: Poly, curve: EllipticCurve) -> Set[Point]:
def solve_hard_dcp(xonly_polynomial: Poly, curve: EllipticCurve, k: int) -> Set[Point]:
points = set()
- if "cypari2" in dir():
+ if has_pari:
roots = solve_hard_dcp_cypari(xonly_polynomial, curve, k)
else:
# Substitute in the mult-by-k map