Skip to content

Commit 84dbe0d

Browse files
authored
Merge pull request #158 from tomato42/news-updates
add 0.14 changes to NEWS
2 parents c5e7ac2 + 270fd9f commit 84dbe0d

File tree

4 files changed

+97
-3
lines changed

4 files changed

+97
-3
lines changed

.gitattributes

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ecdsa/_version.py export-subst
1+
src/ecdsa/_version.py export-subst

MANIFEST.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# basic metadata
22
include MANIFEST.in LICENSE NEWS README.md versioneer.py
3-
include ecdsa/_version.py
3+
include src/ecdsa/_version.py

NEWS

+94
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,97 @@
1+
* Release 0.14 (06 Nov 2019)
2+
3+
Bug fixes:
4+
Strict checking of DER requirements when parsing SEQUENCE, INTEGER,
5+
OBJECT IDENTIFIER and BITSTRING objects.
6+
DER parsers now consistently raise `UnexpectedDER` exception on malformed DER
7+
encoded byte strings.
8+
Make sure that both malformed and invalid signatures raise `BadSignatureError`.
9+
Ensure that all `SigningKey` and `VerifyingKey` methods that should accept
10+
bytes-like objects actually do accept them (also avoid copying input strings).
11+
Make `SigningKey.sign_digest_deterministic` use default object hashfunc when
12+
none was provided.
13+
`encode_integer` now works for large integers.
14+
Make `encode_oid` and `remove_object` correctly handle OBJECT IDENTIFIERs
15+
with large second subidentifier and padding in encoded subidentifiers.
16+
17+
New features:
18+
Deterministic signature methods now accept `extra_entropy` parameter to further
19+
randomise the selection of `k` (the nonce) for signature, as specified in
20+
RFC6979.
21+
Recovery of public key from signature is now supported.
22+
Support for SEC1/X9.62 formatted keys, all three encodings are supported:
23+
"uncompressed", "compressed" and "hybrid". Both string, and PEM/DER will
24+
automatically accept them, if the size of the key matches the curve.
25+
Benchmarking application now provides performance numbers that are easier to
26+
compare against OpenSSL.
27+
Support for all Brainpool curves (non-twisted).
28+
29+
New API:
30+
`CurveFp`: `__str__` is now supported.
31+
`SigningKey.sign_deterministic`, `SigningKey.sign_digest_deterministic` and
32+
`generate_k`: extra_entropy parameter was added
33+
`Signature.recover_public_keys` was added
34+
`VerifyingKey.from_public_key_recovery` and
35+
`VerifyingKey.from_public_key_recovery_with_digest` were added
36+
`VerifyingKey.to_string`: `encoding` parameter was added
37+
`VerifyingKey.to_der` and `SigningKey.to_der`: `point_encoding` parameter was
38+
added.
39+
`encode_bitstring`: `unused` parameter was added
40+
`remove_bitstring`: `expect_unused` parameter was added
41+
`SECP256k1` is now part of `curves` `*` import
42+
`Curves`: `__repr__` is now supported
43+
`VerifyingKey`: `__repr__` is now supported
44+
45+
Deprecations:
46+
Python 2.5 is not supported any more - dead code removal.
47+
`from keys import *` will now import only objects defined in that module.
48+
Trying to decode a malformed point using `VerifyingKey.from_string`
49+
will rise now the `MalformedPointError` exception (that inherits from
50+
`AssertionError` but is not it).
51+
Multiple functions in `numbertheory` are considered deprecated: `phi`,
52+
`carmichael`, `carmichael_of_factorized`, `carmichael_of_ppower`,
53+
`order_mod`, `largest_factor_relatively_prime`, `kinda_order_mod`. They will
54+
now emit `DeprecationWarning` when used. Run the application or test suite
55+
with `-Wd` option or with `PYTHONWARNINGS=default` environment variable to
56+
verify if those methods are not used. They will be removed completely in a
57+
future release.
58+
`encode_bitstring` and `decode_bitstring` expect the number of unused
59+
bits to be passed as an argument now. They will emit `DeprecationWarning`
60+
if they are used in the deprecated way.
61+
modular_exp: will emit `DeprecationWarning`
62+
63+
Hardening:
64+
Deterministic signatures now verify that the signature won't leak private
65+
key through very unlikely selection of `k` value (the nonce).
66+
Nonce bit size hiding was added (hardening against Minerva attack). Please
67+
note that it DOES NOT make library secure against side channel attacks (timing
68+
attacks).
69+
70+
Performance:
71+
The public key in key generation is not verified twice now, making key
72+
generation and private key reading about 33% faster.
73+
Microoptimisation to `inverse_mod` function, increasing performance by about
74+
40% for all operations.
75+
76+
Maintenance:
77+
Extended test coverage to newer python versions.
78+
Fixes to examples in README.md: correct commands, more correct code (now works
79+
on Python 3).
80+
Stopped bundling `six`
81+
Moved sources into `src` subdirectory
82+
Made benchmarking script standalone (runnable either with `tox -e speed`, or
83+
after installation, with `python speed.py`)
84+
Now test coverage reported to coveralls is branch coverage, not line coverage
85+
Autodetection of curves supported by OpenSSL (test suite compatibility with
86+
Fedora OpenSSL package).
87+
More readable error messages (exceptions) in `der` module.
88+
Documentation to `VerifyingKey`, `SigningKey` and signature encoder/decoder
89+
functions added.
90+
Added measuring and verifying condition coverage to Continuous Integration.
91+
Big clean-up of the test suite, use pytest parametrisation and hypothesis
92+
for better test coverage and more precise failure reporting.
93+
Use platform-provided `math.gcd`, when provided.
94+
195
* Release 0.13.3 (07 Oct 2019)
296

397
Fix CVE-2019-14853 - possible DoS caused by malformed signature decoding and

src/ecdsa/_version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def get_config():
4343
cfg.style = "pep440"
4444
cfg.tag_prefix = "python-ecdsa-"
4545
cfg.parentdir_prefix = "ecdsa-"
46-
cfg.versionfile_source = "ecdsa/_version.py"
46+
cfg.versionfile_source = "src/ecdsa/_version.py"
4747
cfg.verbose = False
4848
return cfg
4949

0 commit comments

Comments
 (0)