Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for using the modularized passagemath distributions #3

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions cry/eq/interpolator.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
from sage.all import *

from itertools import product

try:
import sage.all_cmdline
except ImportError:
import sage.all__sagemath_modules

from sage.rings.ideal import Ideal
from sage.misc.misc_c import prod
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing


# class Interpolator:
# """
Expand Down
68 changes: 28 additions & 40 deletions cry/sagestuff.py
Original file line number Diff line number Diff line change
@@ -1,51 +1,39 @@
"""
Trying to import only required stuff from sage.
Single point of import is good.

Tried to import from inner modules, but probably worthless.
Seems sage.all must be imported.
"""

# sage is a gigantic mess

from sage.all_cmdline import (
copy, power_mod,
Integer, Zmod, ZZ, QQ, RR, CDF, Integer, GF,
loads, dumps,
matrix, identity_matrix, random_matrix, matrix_plot,
vector, random_vector,
binomial,
lcm, gcd, log,
Combinations, Permutation,
LinearCode,
floor, ceil, inverse_mod, floor,
)

from random import randint, shuffle, choice

# import sage.structure

# from sage.plot.matrix_plot import matrix_plot

# from sage.misc.persist import loads, dumps

# from sage.matrix.constructor import matrix, identity_matrix, random_matrix
# from sage.modules.free_module_element import vector
# Matrix = matrix

# from sage.rings.finite_rings.finite_field_constructor import GF
# from sage.rings.integer import Integer
# from sage.rings.integer_ring import ZZ
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
from sage.rings.polynomial.polynomial_ring_constructor import BooleanPolynomialRing_constructor as BooleanPolynomialRing
# from sage.groups.matrix_gps.catalog import GL
try:
import sage.all_cmdline
except ImportError:
import sage.all__sagemath_modules

# from sage.functions import log

# from sage.misc.prandom import randint, shuffle, choice
# from sage.arith.all import lcm, gcd
from copy import copy
from random import randint, shuffle, choice

from sage.arith.functions import lcm
from sage.arith.misc import GCD as gcd, inverse_mod, power_mod
from sage.coding.linear_code import LinearCode
from sage.combinat.combination import Combinations
from sage.combinat.permutation import Permutation
from sage.crypto.boolean_function import BooleanFunction

# from sage.combinat.combination import Combinations
# from sage.functions.other import binomial
from sage.functions.other import binomial, ceil, floor
from sage.matrix.constructor import Matrix as matrix
from sage.matrix.special import identity_matrix, random_matrix
from sage.misc.functional import log
from sage.misc.persist import dumps, loads
from sage.modules.free_module_element import free_module_element as vector
from sage.modules.free_module_element import random_vector
from sage.plot.matrix_plot import matrix_plot
from sage.rings.complex_double import CDF
from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF
from sage.rings.finite_rings.integer_mod_ring import IntegerModRing as Zmod
from sage.rings.integer import Integer
from sage.rings.integer_ring import ZZ
from sage.rings.polynomial.polynomial_ring_constructor import BooleanPolynomialRing_constructor as BooleanPolynomialRing
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
from sage.rings.rational_field import QQ
from sage.rings.real_mpfr import RR
17 changes: 17 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,23 @@ homepage = "http://github.com/hellman/cry"
python = "^3.5"
binteger = "^0.8.0"

passagemath-brial = { version = "^10.4", optional = true }
passagemath-modules = { version = "^10.4", optional = true }
passagemath-plot = { version = "^10.4", optional = true }
passagemath-repl = { version = "^10.4", optional = true }
passagemath-schemes = { version = "^10.4", optional = true }
passagemath-symbolics = { version = "^10.4", optional = true }

[tool.poetry.extras]
passagemath = [
"passagemath-brial",
"passagemath-modules",
"passagemath-plot",
"passagemath-repl",
"passagemath-schemes",
"passagemath-symbolics",
]

[tool.poetry.dev-dependencies]
pytest = "^6.1.1"

Expand Down
2 changes: 1 addition & 1 deletion tests_sage/test_lattice.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@


def test_SECCON_2020_sharsable():
from bint import Bin
from binteger import Bin

# SECCON 2020 - sharsable
n = 142793817321992828777925840162504083304079023834001118099549928854335392622287928254035247188624975743042449746066633491912316354241339908190889792327014012472372654378644158878787350693992259970146885854641856991605625756536504266728483088687985429310233421251081614258665472164668993082471923690196082829593 # noqa
Expand Down
12 changes: 7 additions & 5 deletions tests_sage/test_rsa.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from sage.all import (
EllipticCurve, Zmod, QQ,
is_prime, inverse_mod, crt
)
from sage.schemes.elliptic_curves.constructor import EllipticCurve
from sage.rings.finite_rings.integer_mod_ring import IntegerModRing as Zmod
from sage.rings.rational_field import Q as QQ
from sage.arith.misc import is_prime
from sage.arith.misc import inverse_mod
from sage.arith.misc import CRT as crt

from bint import Bin
from binteger import Bin
from cry.env import RSA


Expand Down
15 changes: 15 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# tox -c tox-passagemath.ini
[tox]
envlist = passagemath

[testenv:passagemath]
usedevelop = True
extras = passagemath
deps = pytest

setenv =
# For access to _doctest_environment.py
PYTHONPATH=.

commands =
pytest tests_sage/