transcrypto 1.7.0__tar.gz → 1.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {transcrypto-1.7.0 → transcrypto-1.8.0}/PKG-INFO +12 -10
  2. {transcrypto-1.7.0 → transcrypto-1.8.0}/README.md +8 -8
  3. {transcrypto-1.7.0 → transcrypto-1.8.0}/pyproject.toml +16 -13
  4. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/__init__.py +1 -1
  5. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/base.py +58 -339
  6. transcrypto-1.8.0/src/transcrypto/cli/__init__.py +3 -0
  7. transcrypto-1.8.0/src/transcrypto/cli/aeshash.py +368 -0
  8. transcrypto-1.8.0/src/transcrypto/cli/bidsecret.py +334 -0
  9. transcrypto-1.8.0/src/transcrypto/cli/clibase.py +303 -0
  10. transcrypto-1.8.0/src/transcrypto/cli/intmath.py +427 -0
  11. transcrypto-1.8.0/src/transcrypto/cli/publicalgos.py +877 -0
  12. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/profiler.py +10 -7
  13. transcrypto-1.8.0/src/transcrypto/transcrypto.py +461 -0
  14. transcrypto-1.7.0/src/transcrypto/transcrypto.py +0 -2407
  15. {transcrypto-1.7.0 → transcrypto-1.8.0}/LICENSE +0 -0
  16. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/aes.py +0 -0
  17. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/constants.py +0 -0
  18. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/dsa.py +0 -0
  19. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/elgamal.py +0 -0
  20. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/modmath.py +0 -0
  21. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/py.typed +0 -0
  22. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/rsa.py +0 -0
  23. {transcrypto-1.7.0 → transcrypto-1.8.0}/src/transcrypto/sss.py +0 -0
@@ -1,15 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: transcrypto
3
- Version: 1.7.0
3
+ Version: 1.8.0
4
4
  Summary: Basic crypto primitives, not intended for actual use, but as a companion to --Criptografia, Métodos e Algoritmos--
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
7
7
  Keywords: cryptography,validation,encryption,signing,random-generation,prime-numbers,aes-encryption,decryption,rsa-cryptography,elgamal-encryption,dsa-algorithm,modular-mathematics,rsa,dsa,elgamal,aes,python,poetry,typer,rich,cli
8
8
  Author: Daniel Balparda
9
9
  Author-email: balparda@github.com
10
- Requires-Python: >=3.13
10
+ Requires-Python: >=3.12
11
11
  Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.12
12
13
  Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
13
15
  Classifier: Operating System :: OS Independent
14
16
  Classifier: Topic :: Utilities
15
17
  Classifier: Topic :: Security :: Cryptography
@@ -932,7 +934,7 @@ print(priv.RawVerifyShare(secret, tampered)) # ▶ False
932
934
 
933
935
  ### Setup
934
936
 
935
- If you want to develop for this project, first install python 3.13 and [Poetry](https://python-poetry.org/docs/cli/), but to get the versions you will need, we suggest you do it like this (*Linux*):
937
+ If you want to develop for this project, first install python 3.12 and [Poetry](https://python-poetry.org/docs/cli/), but to get the versions you will need, we suggest you do it like this (*Linux*):
936
938
 
937
939
  ```sh
938
940
  sudo apt-get update
@@ -941,10 +943,10 @@ sudo apt-get install git python3 python3-pip pipx python3-dev python3-venv build
941
943
 
942
944
  sudo add-apt-repository ppa:deadsnakes/ppa # install arbitrary python version
943
945
  sudo apt-get update
944
- sudo apt-get install python3.13
946
+ sudo apt-get install python3.12
945
947
 
946
948
  sudo apt-get remove python3-poetry
947
- python3.13 -m pipx ensurepath
949
+ python3.12 -m pipx ensurepath
948
950
  # re-open terminal
949
951
  pipx install poetry
950
952
  poetry --version # should be >=2.1
@@ -960,11 +962,11 @@ brew update
960
962
  brew upgrade
961
963
  brew cleanup -s
962
964
 
963
- brew install git python@3.13 # install arbitrary python version
965
+ brew install git python@3.12 # install arbitrary python version
964
966
 
965
967
  brew uninstall poetry
966
- python3.13 -m pip install --user pipx
967
- python3.13 -m pipx ensurepath
968
+ python3.12 -m pip install --user pipx
969
+ python3.12 -m pipx ensurepath
968
970
  # re-open terminal
969
971
  pipx install poetry
970
972
  poetry --version # should be >=2.1
@@ -979,7 +981,7 @@ Now install the project:
979
981
  git clone https://github.com/balparda/transcrypto.git transcrypto
980
982
  cd transcrypto
981
983
 
982
- poetry env use python3.13 # creates the venv
984
+ poetry env use python3.12 # creates the venv
983
985
  poetry sync # sync env to project's poetry.lock file
984
986
  poetry env info # no-op: just to check
985
987
 
@@ -1017,7 +1019,7 @@ If you manually added a dependency to `pyproject.toml` you should ***very carefu
1017
1019
 
1018
1020
  ```sh
1019
1021
  rm -rf .venv .poetry poetry.lock
1020
- poetry env use python3.13
1022
+ poetry env use python3.12
1021
1023
  poetry install
1022
1024
  ```
1023
1025
 
@@ -903,7 +903,7 @@ print(priv.RawVerifyShare(secret, tampered)) # ▶ False
903
903
 
904
904
  ### Setup
905
905
 
906
- If you want to develop for this project, first install python 3.13 and [Poetry](https://python-poetry.org/docs/cli/), but to get the versions you will need, we suggest you do it like this (*Linux*):
906
+ If you want to develop for this project, first install python 3.12 and [Poetry](https://python-poetry.org/docs/cli/), but to get the versions you will need, we suggest you do it like this (*Linux*):
907
907
 
908
908
  ```sh
909
909
  sudo apt-get update
@@ -912,10 +912,10 @@ sudo apt-get install git python3 python3-pip pipx python3-dev python3-venv build
912
912
 
913
913
  sudo add-apt-repository ppa:deadsnakes/ppa # install arbitrary python version
914
914
  sudo apt-get update
915
- sudo apt-get install python3.13
915
+ sudo apt-get install python3.12
916
916
 
917
917
  sudo apt-get remove python3-poetry
918
- python3.13 -m pipx ensurepath
918
+ python3.12 -m pipx ensurepath
919
919
  # re-open terminal
920
920
  pipx install poetry
921
921
  poetry --version # should be >=2.1
@@ -931,11 +931,11 @@ brew update
931
931
  brew upgrade
932
932
  brew cleanup -s
933
933
 
934
- brew install git python@3.13 # install arbitrary python version
934
+ brew install git python@3.12 # install arbitrary python version
935
935
 
936
936
  brew uninstall poetry
937
- python3.13 -m pip install --user pipx
938
- python3.13 -m pipx ensurepath
937
+ python3.12 -m pip install --user pipx
938
+ python3.12 -m pipx ensurepath
939
939
  # re-open terminal
940
940
  pipx install poetry
941
941
  poetry --version # should be >=2.1
@@ -950,7 +950,7 @@ Now install the project:
950
950
  git clone https://github.com/balparda/transcrypto.git transcrypto
951
951
  cd transcrypto
952
952
 
953
- poetry env use python3.13 # creates the venv
953
+ poetry env use python3.12 # creates the venv
954
954
  poetry sync # sync env to project's poetry.lock file
955
955
  poetry env info # no-op: just to check
956
956
 
@@ -988,7 +988,7 @@ If you manually added a dependency to `pyproject.toml` you should ***very carefu
988
988
 
989
989
  ```sh
990
990
  rm -rf .venv .poetry poetry.lock
991
- poetry env use python3.13
991
+ poetry env use python3.12
992
992
  poetry install
993
993
  ```
994
994
 
@@ -12,7 +12,7 @@ build-backend = "poetry.core.masonry.api"
12
12
  [project]
13
13
 
14
14
  name = "transcrypto"
15
- version = "1.7.0" # also update src/transcrypto/__init__.py
15
+ version = "1.8.0" # also update src/transcrypto/__init__.py
16
16
 
17
17
  description = "Basic crypto primitives, not intended for actual use, but as a companion to --Criptografia, Métodos e Algoritmos--"
18
18
  license = "Apache-2.0"
@@ -45,20 +45,22 @@ keywords = [
45
45
  ]
46
46
  classifiers = [ # see: https://pypi.org/classifiers/
47
47
  "Programming Language :: Python :: 3",
48
+ "Programming Language :: Python :: 3.12",
48
49
  "Programming Language :: Python :: 3.13",
50
+ "Programming Language :: Python :: 3.14",
49
51
  "Operating System :: OS Independent",
50
52
  "Topic :: Utilities",
51
53
  "Topic :: Security :: Cryptography"
52
54
  ]
53
55
 
54
- requires-python = ">=3.13"
56
+ requires-python = ">=3.12"
55
57
  readme = "README.md"
56
58
  license-files = [ "LICENSE" ]
57
59
 
58
60
  dependencies = [
59
61
 
60
- "typer>=0.21", # if this changes, also change: [tool.poetry.dependencies] and .pre-commit-config.yaml
61
- "rich>=14.3", # if this changes, also change: .pre-commit-config.yaml
62
+ "typer>=0.21", # if this changes, also change: [tool.poetry.dependencies]
63
+ "rich>=14.3",
62
64
  "platformdirs>=4.5",
63
65
 
64
66
  # best place for project dependencies, if possible
@@ -115,14 +117,14 @@ include = [
115
117
 
116
118
  # prefer to add dependencies inside the [project.dependencies] section
117
119
 
118
- python = "^3.13" # if version changes, remember to change README.md
119
- typer = { version = "^0.21", extras = ["all"] } # if this changes, also change: .pre-commit-config.yaml
120
+ python = "^3.12" # if version changes, remember to change README.md
121
+ typer = { version = "^0.21", extras = ["all"] }
120
122
 
121
123
  [tool.poetry.group.dev.dependencies]
122
124
 
123
- ruff = "~0.14.14" # if this changes, also change: .pre-commit-config.yaml
124
- mypy = "~1.19.1" # if this changes, also change: .pre-commit-config.yaml
125
- pytest = "^9.0" # if this changes, also change: .pre-commit-config.yaml
125
+ ruff = "~0.14.14"
126
+ mypy = "~1.19.1"
127
+ pytest = "^9.0"
126
128
  pytest-cov = "^7.0"
127
129
  pytest-flakefinder = "^1.1"
128
130
  pyright = "^1.1"
@@ -139,7 +141,7 @@ poetry-plugin-export = "^1.10"
139
141
  ####################################################################################################
140
142
  [tool.ruff]
141
143
 
142
- target-version = "py313"
144
+ target-version = "py312"
143
145
  line-length = 100
144
146
  indent-width = 2
145
147
 
@@ -213,7 +215,7 @@ ignore = [
213
215
 
214
216
  "TD002", # allow TODOs without authors
215
217
  "TD003", # allow TODOs without bugs
216
- "FIX002", # fix the todos... # TODO: remove this line: you usually want this
218
+ "FIX002", # fix the todos... if you want to still see them in VSCode: "Todo Tree" extension (Gruntfuggly)
217
219
  "PGH003", # allow ignoring type issues without giving extra codes
218
220
 
219
221
  "LOG015", # allows for calls into top-level logging methods
@@ -236,7 +238,7 @@ preview = true # if you want new features being previewed
236
238
  ####################################################################################################
237
239
  [tool.mypy]
238
240
 
239
- python_version = "3.13"
241
+ python_version = "3.12"
240
242
  mypy_path = [ "src" ]
241
243
 
242
244
  warn_return_any = true
@@ -256,11 +258,12 @@ strict = true
256
258
  [tool.pyright]
257
259
 
258
260
  typeCheckingMode = "strict"
259
- pythonVersion = "3.13"
261
+ pythonVersion = "3.12"
260
262
  venvPath = "."
261
263
  venv = ".venv"
262
264
 
263
265
  include = [ "src", "tests", "tests_integration" ]
266
+ extraPaths = [ ".", "src" ] # needed to find tests/ directory modules
264
267
  exclude = [
265
268
  "**/.venv",
266
269
  "**/__pycache__",
@@ -3,5 +3,5 @@
3
3
  """Basic cryptography primitives implementation."""
4
4
 
5
5
  __all__: list[str] = ['__author__', '__version__']
6
- __version__ = '1.7.0' # remember to also update pyproject.toml
6
+ __version__ = '1.8.0' # remember to also update pyproject.toml
7
7
  __author__ = 'Daniel Balparda <balparda@github.com>'