Skip to content

Commit 6d1fe95

Browse files
committed
un-compatibility-break Curve arguments
Put openssl_name= at the end, with a default value. This allows external code written against 0.11 to keep working. Thanks to @hoffmabc for the catch.
1 parent 2d6792b commit 6d1fe95

File tree

2 files changed

+14
-21
lines changed

2 files changed

+14
-21
lines changed

ecdsa/curves.py

+13-20
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ def orderlen(order):
1010

1111
# the NIST curves
1212
class Curve:
13-
def __init__(self, name, openssl_name,
14-
curve, generator, oid):
13+
def __init__(self, name, curve, generator, oid, openssl_name=None):
1514
self.name = name
1615
self.openssl_name = openssl_name # maybe None
1716
self.curve = curve
@@ -23,24 +22,18 @@ def __init__(self, name, openssl_name,
2322
self.oid = oid
2423
self.encoded_oid = der.encode_oid(*oid)
2524

26-
NIST192p = Curve("NIST192p", "prime192v1",
27-
ecdsa.curve_192, ecdsa.generator_192,
28-
(1, 2, 840, 10045, 3, 1, 1))
29-
NIST224p = Curve("NIST224p", "secp224r1",
30-
ecdsa.curve_224, ecdsa.generator_224,
31-
(1, 3, 132, 0, 33))
32-
NIST256p = Curve("NIST256p", "prime256v1",
33-
ecdsa.curve_256, ecdsa.generator_256,
34-
(1, 2, 840, 10045, 3, 1, 7))
35-
NIST384p = Curve("NIST384p", "secp384r1",
36-
ecdsa.curve_384, ecdsa.generator_384,
37-
(1, 3, 132, 0, 34))
38-
NIST521p = Curve("NIST521p", "secp521r1",
39-
ecdsa.curve_521, ecdsa.generator_521,
40-
(1, 3, 132, 0, 35))
41-
SECP256k1 = Curve("SECP256k1", "secp256k1",
42-
ecdsa.curve_secp256k1, ecdsa.generator_secp256k1,
43-
(1, 3, 132, 0, 10))
25+
NIST192p = Curve("NIST192p", ecdsa.curve_192, ecdsa.generator_192,
26+
(1, 2, 840, 10045, 3, 1, 1), "prime192v1")
27+
NIST224p = Curve("NIST224p", ecdsa.curve_224, ecdsa.generator_224,
28+
(1, 3, 132, 0, 33), "secp224r1")
29+
NIST256p = Curve("NIST256p", ecdsa.curve_256, ecdsa.generator_256,
30+
(1, 2, 840, 10045, 3, 1, 7), "prime256v1")
31+
NIST384p = Curve("NIST384p", ecdsa.curve_384, ecdsa.generator_384,
32+
(1, 3, 132, 0, 34), "secp384r1")
33+
NIST521p = Curve("NIST521p", ecdsa.curve_521, ecdsa.generator_521,
34+
(1, 3, 132, 0, 35), "secp521r1")
35+
SECP256k1 = Curve("SECP256k1", ecdsa.curve_secp256k1, ecdsa.generator_secp256k1,
36+
(1, 3, 132, 0, 10), "secp256k1")
4437

4538
curves = [NIST192p, NIST224p, NIST256p, NIST384p, NIST521p, SECP256k1]
4639

ecdsa/test_pyecdsa.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ def test_pubkey_strings(self):
246246
badpub = VerifyingKey.from_der(pub1_der)
247247
class FakeGenerator:
248248
def order(self): return 123456789
249-
badcurve = Curve("unknown", None, None, FakeGenerator(), (1,2,3,4,5,6))
249+
badcurve = Curve("unknown", None, FakeGenerator(), (1,2,3,4,5,6), None)
250250
badpub.curve = badcurve
251251
badder = badpub.to_der()
252252
self.assertRaises(UnknownCurveError, VerifyingKey.from_der, badder)

0 commit comments

Comments
 (0)