eddsa-threshold 0.2.0a2__tar.gz → 0.2.0a3__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 (82) hide show
  1. {eddsa_threshold-0.2.0a2/src/eddsa_threshold.egg-info → eddsa_threshold-0.2.0a3}/PKG-INFO +1 -1
  2. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/coordinator.py +9 -1
  3. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/frost_types.py +1 -0
  4. eddsa_threshold-0.2.0a3/src/eddsa_threshold/py.typed +0 -0
  5. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3/src/eddsa_threshold.egg-info}/PKG-INFO +1 -1
  6. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold.egg-info/SOURCES.txt +3 -0
  7. eddsa_threshold-0.2.0a3/src/eddsa_threshold.egg-info/scm_file_list.json +77 -0
  8. eddsa_threshold-0.2.0a3/src/eddsa_threshold.egg-info/scm_version.json +8 -0
  9. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/.github/workflows/release.yaml +0 -0
  10. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/.gitignore +0 -0
  11. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/.vscode/settings.json +0 -0
  12. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/LICENSE +0 -0
  13. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/MANIFEST.in +0 -0
  14. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/README.md +0 -0
  15. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/pyproject.toml +0 -0
  16. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/setup.cfg +0 -0
  17. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/__init__.py +0 -0
  18. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/__init__.py +0 -0
  19. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/algorithms/__init__.py +0 -0
  20. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/algorithms/ed25519.py +0 -0
  21. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/algorithms/ed25519ctx.py +0 -0
  22. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/algorithms/ed25519ph.py +0 -0
  23. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/algorithms/ed448.py +0 -0
  24. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/algorithms/ed448ph.py +0 -0
  25. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/__init__.py +0 -0
  26. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/base/__init__.py +0 -0
  27. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/base/edwards_curve.py +0 -0
  28. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/base/encoding.py +0 -0
  29. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/base/field_ops.py +0 -0
  30. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/base/scalar_ops.py +0 -0
  31. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed25519/__init__.py +0 -0
  32. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed25519/constants.py +0 -0
  33. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed25519/ed25519_curve.py +0 -0
  34. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed25519/encoding.py +0 -0
  35. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed25519/field_ops.py +0 -0
  36. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed25519/scalar_ops.py +0 -0
  37. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed448/__init__.py +0 -0
  38. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed448/constants.py +0 -0
  39. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed448/ed448_curve.py +0 -0
  40. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed448/encoding.py +0 -0
  41. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed448/field_ops.py +0 -0
  42. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/curves/ed448/scalar_ops.py +0 -0
  43. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/keys/__init__.py +0 -0
  44. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/keys/ed25519_keypair.py +0 -0
  45. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/keys/ed448_keypair.py +0 -0
  46. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/keys/keypair.py +0 -0
  47. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/util/__init__.py +0 -0
  48. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/util/dom.py +0 -0
  49. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/eddsa/util/hash_bindings.py +0 -0
  50. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/__init__.py +0 -0
  51. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/__init__.py +0 -0
  52. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/base/__init__.py +0 -0
  53. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/base/frost_hashing.py +0 -0
  54. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/ed25519/__init__.py +0 -0
  55. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/ed25519/frost_hashing.py +0 -0
  56. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/ed448/__init__.py +0 -0
  57. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/ed448/frost_hashing.py +0 -0
  58. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/polynomial.py +0 -0
  59. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/secrets/__init__.py +0 -0
  60. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/secrets/secret_sharing.py +0 -0
  61. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/secrets/shamir_secret_sharing.py +0 -0
  62. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/core/util.py +0 -0
  63. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/participant.py +0 -0
  64. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold/frost/trusted_dealer.py +0 -0
  65. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold.egg-info/dependency_links.txt +0 -0
  66. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold.egg-info/requires.txt +0 -0
  67. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/src/eddsa_threshold.egg-info/top_level.txt +0 -0
  68. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_cases_curves.py +0 -0
  69. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_cases_eddsa_vectors.py +0 -0
  70. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_cases_fields.py +0 -0
  71. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_ed25519.py +0 -0
  72. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_ed448.py +0 -0
  73. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_field_arithmetic.py +0 -0
  74. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_keypair_generation.py +0 -0
  75. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_point_arithmetic.py +0 -0
  76. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_point_conversion.py +0 -0
  77. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/eddsa/test_point_encoding.py +0 -0
  78. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/frost/test_cases_scalars.py +0 -0
  79. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/frost/test_cases_simple_frost.py +0 -0
  80. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/frost/test_polynomial.py +0 -0
  81. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/frost/test_shamir_secret_sharing.py +0 -0
  82. {eddsa_threshold-0.2.0a2 → eddsa_threshold-0.2.0a3}/test/frost/test_simple_frost.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eddsa-threshold
3
- Version: 0.2.0a2
3
+ Version: 0.2.0a3
4
4
  Summary: Educational EdDSA and FROST implementations
5
5
  Author-email: Maximilian <23641084+xfallme@users.noreply.github.com>
6
6
  License-Expression: 0BSD
@@ -168,6 +168,9 @@ class FrostCoordinator:
168
168
 
169
169
  if not signing_session.round_two_completed:
170
170
  raise ValueError("round two not completed yet")
171
+
172
+ if signing_session.session_completed:
173
+ raise ValueError("session has already been completed and aggregated")
171
174
 
172
175
  commitments = list(signing_session.commitments.values())
173
176
  signature_shares = list(signing_session.signature_shares.values())
@@ -182,4 +185,9 @@ class FrostCoordinator:
182
185
 
183
186
  z = self._CURVE.scalar_ops.reduce(z)
184
187
 
185
- return self._CURVE.encoding.encode_point(group_commitment) + self._CURVE.encoding.encode_scalar(z)
188
+ signature = self._CURVE.encoding.encode_point(group_commitment) + self._CURVE.encoding.encode_scalar(z)
189
+
190
+ signing_session.signature_shares.clear()
191
+ signing_session.session_completed = True
192
+
193
+ return signature
@@ -51,3 +51,4 @@ class SigningSession:
51
51
  signing_in_progress: bool = False
52
52
  round_one_completed: bool = False
53
53
  round_two_completed: bool = False
54
+ session_completed: bool = False
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eddsa-threshold
3
- Version: 0.2.0a2
3
+ Version: 0.2.0a3
4
4
  Summary: Educational EdDSA and FROST implementations
5
5
  Author-email: Maximilian <23641084+xfallme@users.noreply.github.com>
6
6
  License-Expression: 0BSD
@@ -6,10 +6,13 @@ pyproject.toml
6
6
  .github/workflows/release.yaml
7
7
  .vscode/settings.json
8
8
  src/eddsa_threshold/__init__.py
9
+ src/eddsa_threshold/py.typed
9
10
  src/eddsa_threshold.egg-info/PKG-INFO
10
11
  src/eddsa_threshold.egg-info/SOURCES.txt
11
12
  src/eddsa_threshold.egg-info/dependency_links.txt
12
13
  src/eddsa_threshold.egg-info/requires.txt
14
+ src/eddsa_threshold.egg-info/scm_file_list.json
15
+ src/eddsa_threshold.egg-info/scm_version.json
13
16
  src/eddsa_threshold.egg-info/top_level.txt
14
17
  src/eddsa_threshold/eddsa/__init__.py
15
18
  src/eddsa_threshold/eddsa/algorithms/__init__.py
@@ -0,0 +1,77 @@
1
+ {
2
+ "files": [
3
+ "README.md",
4
+ "LICENSE",
5
+ "pyproject.toml",
6
+ "MANIFEST.in",
7
+ ".gitignore",
8
+ ".vscode/settings.json",
9
+ "src/eddsa_threshold/py.typed",
10
+ "src/eddsa_threshold/__init__.py",
11
+ "src/eddsa_threshold/eddsa/__init__.py",
12
+ "src/eddsa_threshold/eddsa/util/hash_bindings.py",
13
+ "src/eddsa_threshold/eddsa/util/__init__.py",
14
+ "src/eddsa_threshold/eddsa/util/dom.py",
15
+ "src/eddsa_threshold/eddsa/keys/__init__.py",
16
+ "src/eddsa_threshold/eddsa/keys/ed448_keypair.py",
17
+ "src/eddsa_threshold/eddsa/keys/ed25519_keypair.py",
18
+ "src/eddsa_threshold/eddsa/keys/keypair.py",
19
+ "src/eddsa_threshold/eddsa/curves/__init__.py",
20
+ "src/eddsa_threshold/eddsa/curves/ed448/__init__.py",
21
+ "src/eddsa_threshold/eddsa/curves/ed448/encoding.py",
22
+ "src/eddsa_threshold/eddsa/curves/ed448/ed448_curve.py",
23
+ "src/eddsa_threshold/eddsa/curves/ed448/constants.py",
24
+ "src/eddsa_threshold/eddsa/curves/ed448/scalar_ops.py",
25
+ "src/eddsa_threshold/eddsa/curves/ed448/field_ops.py",
26
+ "src/eddsa_threshold/eddsa/curves/ed25519/ed25519_curve.py",
27
+ "src/eddsa_threshold/eddsa/curves/ed25519/__init__.py",
28
+ "src/eddsa_threshold/eddsa/curves/ed25519/encoding.py",
29
+ "src/eddsa_threshold/eddsa/curves/ed25519/constants.py",
30
+ "src/eddsa_threshold/eddsa/curves/ed25519/scalar_ops.py",
31
+ "src/eddsa_threshold/eddsa/curves/ed25519/field_ops.py",
32
+ "src/eddsa_threshold/eddsa/curves/base/edwards_curve.py",
33
+ "src/eddsa_threshold/eddsa/curves/base/__init__.py",
34
+ "src/eddsa_threshold/eddsa/curves/base/encoding.py",
35
+ "src/eddsa_threshold/eddsa/curves/base/scalar_ops.py",
36
+ "src/eddsa_threshold/eddsa/curves/base/field_ops.py",
37
+ "src/eddsa_threshold/eddsa/algorithms/ed25519ctx.py",
38
+ "src/eddsa_threshold/eddsa/algorithms/__init__.py",
39
+ "src/eddsa_threshold/eddsa/algorithms/ed448ph.py",
40
+ "src/eddsa_threshold/eddsa/algorithms/ed25519.py",
41
+ "src/eddsa_threshold/eddsa/algorithms/ed25519ph.py",
42
+ "src/eddsa_threshold/eddsa/algorithms/ed448.py",
43
+ "src/eddsa_threshold/frost/__init__.py",
44
+ "src/eddsa_threshold/frost/trusted_dealer.py",
45
+ "src/eddsa_threshold/frost/coordinator.py",
46
+ "src/eddsa_threshold/frost/participant.py",
47
+ "src/eddsa_threshold/frost/core/__init__.py",
48
+ "src/eddsa_threshold/frost/core/frost_types.py",
49
+ "src/eddsa_threshold/frost/core/polynomial.py",
50
+ "src/eddsa_threshold/frost/core/util.py",
51
+ "src/eddsa_threshold/frost/core/ed448/__init__.py",
52
+ "src/eddsa_threshold/frost/core/ed448/frost_hashing.py",
53
+ "src/eddsa_threshold/frost/core/secrets/__init__.py",
54
+ "src/eddsa_threshold/frost/core/secrets/secret_sharing.py",
55
+ "src/eddsa_threshold/frost/core/secrets/shamir_secret_sharing.py",
56
+ "src/eddsa_threshold/frost/core/ed25519/__init__.py",
57
+ "src/eddsa_threshold/frost/core/ed25519/frost_hashing.py",
58
+ "src/eddsa_threshold/frost/core/base/__init__.py",
59
+ "src/eddsa_threshold/frost/core/base/frost_hashing.py",
60
+ "test/eddsa/test_cases_eddsa_vectors.py",
61
+ "test/eddsa/test_ed448.py",
62
+ "test/eddsa/test_cases_fields.py",
63
+ "test/eddsa/test_keypair_generation.py",
64
+ "test/eddsa/test_cases_curves.py",
65
+ "test/eddsa/test_point_conversion.py",
66
+ "test/eddsa/test_point_encoding.py",
67
+ "test/eddsa/test_ed25519.py",
68
+ "test/eddsa/test_point_arithmetic.py",
69
+ "test/eddsa/test_field_arithmetic.py",
70
+ "test/frost/test_shamir_secret_sharing.py",
71
+ "test/frost/test_cases_scalars.py",
72
+ "test/frost/test_polynomial.py",
73
+ "test/frost/test_simple_frost.py",
74
+ "test/frost/test_cases_simple_frost.py",
75
+ ".github/workflows/release.yaml"
76
+ ]
77
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.2.0a3",
3
+ "distance": 0,
4
+ "node": "gc08f889960ef94565caca95d90039b2e83f8bd7c",
5
+ "dirty": false,
6
+ "branch": "main",
7
+ "node_date": "2026-07-10"
8
+ }