aboutsummaryrefslogtreecommitdiff
path: root/pyproject.toml
blob: 4c1e68bcdd9824ea74470ba6902669e21e47438f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
[build-system]
  requires = ["setuptools>=61.0", "setuptools_scm[toml]>=6.2"]
  build-backend = "setuptools.build_meta"

[project]
  name = "pyecsca"
  version = "0.3.0"
  authors = [
    { name = "Jan Jancar", email = "johny@neuromancer.sk" },
    { name = "Tomas Jusko" },
    { name = "Andrej Batora" },
    { name = "Vojtech Suchanek" }
  ]
  description = "Python Elliptic Curve cryptography Side Channel Analysis toolkit."
  readme = "README.md"
  license = { "text" = "MIT" }
  classifiers = [
    "Development Status :: 4 - Beta",
    "License :: OSI Approved :: MIT License",
    "Topic :: Security",
    "Topic :: Security :: Cryptography",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Intended Audience :: Developers",
    "Intended Audience :: Science/Research"
  ]
  requires-python = ">=3.9"
  dependencies = [
    "numpy==1.24.4",
    "scipy",
    "sympy>=1.7.1",
    "pandas",
    "atpublic",
    "cython",
    "fastdtw",
    "asn1crypto",
    "h5py",
    "holoviews",
    "bokeh",
    "matplotlib",
    "datashader",
    "dask[dataframe]",
    "xarray",
    "astunparse",
    "numba==0.57.1",
    "networkx",
    "importlib-resources",
    "anytree"
  ]

[project.urls]
  "Homepage" = "https://https://neuromancer.sk/pyecsca/"
  "Documentation" = "https://https://neuromancer.sk/pyecsca/"
  "Bug Tracker" = "https://github.com/J08nY/pyecsca/issues"
  "Repository" = "https://github.com/J08nY/pyecsca"

[project.optional-dependencies]
  "picoscope_sdk" = ["picosdk"]
  "picoscope_alt" = ["picoscope"]
  "chipwhisperer" = ["chipwhisperer"]
  "smartcard" = ["pyscard"]
  "leia" = ["smartleia"]
  "gmp" = ["gmpy2"]
  "pari" = ["cysignals", "cypari2"]
  "dev" = ["mypy", "flake8", "interrogate", "pyinstrument", "black", "types-setuptools", "pydocstyle"]
  "test" = ["pytest>=7.0.0", "coverage", "pytest-cov", "pytest-sugar", "pytest-mock"]
  "doc" = ["sphinx", "sphinx-autodoc-typehints", "nbsphinx", "sphinx-paramlinks", "sphinx_design", "alabaster>=0.7.16"]

[tool.setuptools.packages.find]
  include = ["pyecsca*"]
  namespaces = true

[tool.setuptools.package-data]
  pyecsca = ["ec/efd/*/*", "ec/efd/*/*/*", "ec/efd/*/*/*/*", "ec/std/*", "ec/std/*/*"]

[tool.setuptools_scm]

[tool.pytest.ini_options]
  testpaths = ["test"]
  markers = [
    "slow: marks tests as slow (deselect with '-m \"not slow\"')",
  ]
  filterwarnings = [
    "ignore:(?s).*pkg_resources is deprecated as an API:DeprecationWarning:chipwhisperer.capture.trace.TraceWhisperer", # ChipWhisperer
    "ignore:Deprecated call to `pkg_resources.declare_namespace", # sphinxcontrib
    "ignore:(?s).*Pyarrow will become a required dependency of pandas:DeprecationWarning", # pandas pyarrow (pandas<3.0),
  ]

[tool.mypy]
  plugins = "numpy.typing.mypy_plugin"

[tool.interrogate]
  exclude = ["pyecsca/ec/formula/fliparoo.py", "pyecsca/ec/formula/graph.py", "pyecsca/ec/formula/partitions.py", "pyecsca/ec/formula/switch_sign.py", "pyecsca/ec/std/.github/"]