Skip to content

Commit 5aa87c5

Browse files
committed
release 0.17.0
1 parent 634e5b0 commit 5aa87c5

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

NEWS

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,64 @@
1+
* Relase 0.17.0 (27 May 2021)
2+
3+
New API:
4+
* Keys that use explicit curve parameters can now be read and written.
5+
Reading of explicit curves can be disabled by using the
6+
`valid_curve_encodings` keyword argument in `VerifyingKey.from_pem()`,
7+
`VerifyingKey.from_der()`, `SigningKey.from_pem()`, and
8+
`SigningKey.from_der()`.
9+
* Keys can now be written with use of explicit curve parameters,
10+
use `curve_parameters_encoding` keyword argument of `VerifyingKey.to_pem()`,
11+
`VerifyingKey.to_der()`, `SigningKey.to_pem(), or `SigningKey.to_der()` to
12+
specify the format. By default `named_curve` will be used, unless the
13+
curve doesn't have an associated OID (as will be the case for an unsupported
14+
curve), then `explicit` encoding will be used.
15+
* Allow specifying acceptable point formats when loading public keys
16+
(this also fixes a minor bug where python-ecdsa would accept raw
17+
encoding for points in PKCS#8 files). Set of accepted encodings is controlled
18+
by `valid_encodings` keyword argument in
19+
`ECDH.load_received_public_key_bytes()`, `VerifyingKey.from_string()`,
20+
`VerifyingKey.from_pem()`, VerifyingKey.from_der()`.
21+
* `PointJacobi` and `Point` now inherit from `AbstractPoint` that implements
22+
the methods for parsing points. That added `from_bytes()` and
23+
`to_bytes()` methods to both of them.
24+
* Curve parameters can now be read and written to PEM and DER files. The
25+
`Curve` class supports new `to_der()`, `from_der()`, `to_pem()`, and
26+
`from_pem()` methods.
27+
28+
Doc fix:
29+
* Describe in detail which methods can raise `RSZeroError`, and that
30+
`SigningKey.sign_deterministic()` won't raise it.
31+
32+
Bug fix:
33+
* Correctly truncate hash values larger than the curve order (only impacted
34+
custom curves and the curves added in this release).
35+
* Correctly handle curves for which the order is larger than the prime
36+
(only impacted custom curves and the secp160r1 curve added in this release).
37+
* Fix the handling of `==` and `!=` for `Public_key`, `Private_key`, `Point`,
38+
`PointJacobi`, `VerifyingKey`, and `SigningKey` so that it behaves
39+
consistently and in the expected way both in Python 2 and Python 3.
40+
* Implement lock-less algorithm inside PointJacobi for keeping shared state
41+
so that when calculation is aborted with KeyboardInterrupt, the state doesn't
42+
become corrupted (this fixes the occasional breakage of ecdsa in interactive
43+
shells).
44+
45+
New features:
46+
* The `speed.py` script now provides performance for signature verification
47+
without use of precomputation.
48+
* New curves supported: secp112r1, secp112r2, secp128r1, secp160r1.
49+
50+
Performance:
51+
* Use 2-ary Non-Adjacent Form for the combined multiply-add. This speeds up
52+
single-shot verify (i.e. without precomputation) by about 4 to 5%.
53+
* Use native Python 3.8 support for calculating multiplicative inverses.
54+
55+
Maintenace:
56+
* Include Python 3.9 in PyPI keywords.
57+
* More realistic branch coverage counting (ignore Python version-specific
58+
branches).
59+
* Additional test coverage to many parts of the library.
60+
* Migrate to Github Actions for Continuous Testing.
61+
162
* Release 0.16.1 (12 Nov 2020)
263

364
New API:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy