diff options
| author | J08nY | 2024-01-23 13:06:55 +0100 |
|---|---|---|
| committer | J08nY | 2024-01-23 13:06:55 +0100 |
| commit | 580da4adb97d145e5da08e1fd39ff6911dcbdc3e (patch) | |
| tree | 8724d98a894b8426307a63b0a00796077b78f3ce /pyecsca | |
| parent | b00d073f2fcd07bb36f3f919aa0a75c878bef5f5 (diff) | |
| download | pyecsca-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.py | 20 |
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 |
