You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
4
4
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
7
+
## [v1.1.3] - 2024-10-26
8
+
9
+
### Changed
10
+
- Expand README and API documentation with usage examples and multi-language support
- Applies a partial decryption using the inverse of the private key.
178
+
-**Parameters**:
179
+
-`encrypted_message`: The encrypted message as a `Point`.
180
+
-**Returns**: A partially decrypted `Point`.
181
+
182
+
---
183
+
184
+
#### Class: **`EllipticCurve`**
185
+
186
+
##### Constructor
187
+
-**`__init__(self, p, a, b, G, n, h, use_projective_coordinates=True)`**
188
+
- Creates a new instance of the `EllipticCurve` class to define the elliptic curve parameters and available mathematical operations.
189
+
-**Parameters**:
190
+
-`p`: The prime order of the finite field.
191
+
-`a`: The coefficient `a` in the elliptic curve equation.
192
+
-`b`: The coefficient `b` in the elliptic curve equation.
193
+
-`G`: The base point/origin of the curve (point generator).
194
+
-`n`: The order of the base point.
195
+
-`h`: The cofactor of the elliptic curve.
196
+
-`use_projective_coordinates`: (Optional) Whether to use Jacobian/projective coordinate systems for efficient point operations. Defaults to `True`.
197
+
198
+
##### Methods
199
+
-**`add_points(self, p1, p2)`**
200
+
- Adds two points `p1` and `p2` on the elliptic curve.
201
+
-**Parameters**:
202
+
-`p1`: Point on the elliptic curve.
203
+
-`p2`: Another point to be added.
204
+
-**Returns**: `Point` representing the sum of the two points.
205
+
206
+
-**`double_point(self, p)`**
207
+
- Doubles a point on the elliptic curve.
208
+
-**Parameters**:
209
+
-`p`: The point on the elliptic curve to be doubled.
210
+
-**Returns**: The resulting `Point`.
211
+
212
+
-**`multiply_point(self, k, p)`**
213
+
- Multiplies a point by an integer scalar `k` on the elliptic curve.
214
+
-**Parameters**:
215
+
-`k`: The integer scalar to multiply by.
216
+
-`p`: The point to be multiplied.
217
+
-**Returns**: The resulting `Point`.
218
+
219
+
-**`is_point_on_curve(self, p)`**
220
+
- Checks whether a point lies on the elliptic curve.
221
+
-**Parameters**:
222
+
-`p`: The point to check.
223
+
-**Returns**: `True` if the point is on the curve; `False` otherwise.
224
+
225
+
For more in-depth use and examples, check out the [official documentation](https://ecutils.readthedocs.io/en/stable/).
226
+
227
+
## Examples
228
+
229
+
In the following examples, you'll see how to use ecutils for essential elliptic curve operations and cryptographic protocols, including message encoding, digital signatures with ECDSA, and key exchange methods. These practical implementations will help you quickly integrate elliptic curve cryptography into your applications.
For more in-depth use and examples, check out the [official documentation](https://ecutils.readthedocs.io/en/stable/).
146
-
147
344
## Support
148
345
149
346
For issues, questions, or contributions, please refer to the project's [GitHub repository](https://github.com/isakruas/ecutils).
@@ -154,11 +351,12 @@ This project is licensed under the [MIT License](https://opensource.org/licenses
154
351
155
352
Don't forget to give this project a star if you find it useful! 🌟
156
353
157
-
## Cross-Platform Compiled Library
354
+
## Language-Specific Libraries for Elliptic Curve Cryptography
158
355
159
-
In addition to this Python module, there exists a cross-platform compiled library that offers similar functionalities. This library is available under the [Apache Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) license and can be found on the official website:
356
+
In addition to the Python module, there are other language-specific libraries available for elliptic curve cryptography:
-**JavaScript Library for Elliptic Curve Cryptography**: The `js-ecutils` package provides elliptic curve functionalities tailored for JavaScript developers. You can find it on [GitHub](https://github.com/isakruas/js-ecutils).
162
359
163
-
If you need an implementation outside of the Python environment or seek integration with other programming languages, this library might be an excellent alternative.
360
+
-**Go Library for Elliptic Curve Cryptography**: The `go-ecutils` library offers similar elliptic curve utilities for Go developers. More information and documentation can be found on [GitHub](https://github.com/isakruas/go-ecutils).
164
361
362
+
These libraries enable developers to utilize elliptic curve cryptography in their preferred programming environments, ensuring flexibility and ease of integration.
Copy file name to clipboardExpand all lines: docs/index.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,11 +49,12 @@ However, please be aware that the software comes "as is," with no warranty of an
49
49
50
50
Before incorporating ECUtils, it's advised to read the full license text, available in the `LICENSE.md` file in the [source code repository](https://github.com/isakruas/ecutils/blob/master/LICENSE.md) or on the official website.
51
51
52
-
## Cross-Platform Compiled Library
52
+
## Language-Specific Libraries for Elliptic Curve Cryptography
53
53
54
-
In addition to this Python module, there exists a cross-platform compiled library that offers similar functionalities. This library is available under the [Apache Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) license and can be found on the official website:
54
+
In addition to the Python module, there are other language-specific libraries available for elliptic curve cryptography:
-**JavaScript Library for Elliptic Curve Cryptography**: The `js-ecutils` package provides elliptic curve functionalities tailored for JavaScript developers. You can find it on [GitHub](https://github.com/isakruas/js-ecutils).
57
57
58
-
If you need an implementation outside of the Python environment or seek integration with other programming languages, this library might be an excellent alternative.
58
+
-**Go Library for Elliptic Curve Cryptography**: The `go-ecutils` library offers similar elliptic curve utilities for Go developers. More information and documentation can be found on [GitHub](https://github.com/isakruas/go-ecutils).
59
59
60
+
These libraries enable developers to utilize elliptic curve cryptography in their preferred programming environments, ensuring flexibility and ease of integration.
0 commit comments