Skip to content

Commit 74f8879

Browse files
authored
Merge pull request #321 from tlsfuzzer/twisted-brainpool
add support for twisted Brainpool curves
2 parents 2457dc7 + 33a4114 commit 74f8879

File tree

5 files changed

+419
-1
lines changed

5 files changed

+419
-1
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ jobs:
8585
tox-env: py311
8686
- name: py3.12
8787
os: ubuntu-latest
88-
python-version: '3.12.0-alpha.5'
88+
python-version: '3.12.0-beta.1'
8989
tox-env: py312
9090
- name: pypy
9191
os: ubuntu-latest

src/ecdsa/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@
2828
SECP160r1,
2929
Ed25519,
3030
Ed448,
31+
BRAINPOOLP160t1,
32+
BRAINPOOLP192t1,
33+
BRAINPOOLP224t1,
34+
BRAINPOOLP256t1,
35+
BRAINPOOLP320t1,
36+
BRAINPOOLP384t1,
37+
BRAINPOOLP512t1,
3138
)
3239
from .ecdh import (
3340
ECDH,
@@ -84,6 +91,13 @@
8491
Ed25519,
8592
Ed448,
8693
six.b(""),
94+
BRAINPOOLP160t1,
95+
BRAINPOOLP192t1,
96+
BRAINPOOLP224t1,
97+
BRAINPOOLP256t1,
98+
BRAINPOOLP320t1,
99+
BRAINPOOLP384t1,
100+
BRAINPOOLP512t1,
87101
]
88102
del _hush_pyflakes
89103

src/ecdsa/curves.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,19 @@
2626
"curve_by_name",
2727
"SECP256k1",
2828
"BRAINPOOLP160r1",
29+
"BRAINPOOLP160t1",
2930
"BRAINPOOLP192r1",
31+
"BRAINPOOLP192t1",
3032
"BRAINPOOLP224r1",
33+
"BRAINPOOLP224t1",
3134
"BRAINPOOLP256r1",
35+
"BRAINPOOLP256t1",
3236
"BRAINPOOLP320r1",
37+
"BRAINPOOLP320t1",
3338
"BRAINPOOLP384r1",
39+
"BRAINPOOLP384t1",
3440
"BRAINPOOLP512r1",
41+
"BRAINPOOLP512t1",
3542
"PRIME_FIELD_OID",
3643
"CHARACTERISTIC_TWO_FIELD_OID",
3744
"Ed25519",
@@ -375,6 +382,15 @@ def from_pem(cls, string, valid_encodings=None):
375382
)
376383

377384

385+
BRAINPOOLP160t1 = Curve(
386+
"BRAINPOOLP160t1",
387+
ecdsa.curve_brainpoolp160t1,
388+
ecdsa.generator_brainpoolp160t1,
389+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 2),
390+
"brainpoolP160t1",
391+
)
392+
393+
378394
BRAINPOOLP192r1 = Curve(
379395
"BRAINPOOLP192r1",
380396
ecdsa.curve_brainpoolp192r1,
@@ -384,6 +400,15 @@ def from_pem(cls, string, valid_encodings=None):
384400
)
385401

386402

403+
BRAINPOOLP192t1 = Curve(
404+
"BRAINPOOLP192t1",
405+
ecdsa.curve_brainpoolp192t1,
406+
ecdsa.generator_brainpoolp192t1,
407+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 4),
408+
"brainpoolP192t1",
409+
)
410+
411+
387412
BRAINPOOLP224r1 = Curve(
388413
"BRAINPOOLP224r1",
389414
ecdsa.curve_brainpoolp224r1,
@@ -393,6 +418,15 @@ def from_pem(cls, string, valid_encodings=None):
393418
)
394419

395420

421+
BRAINPOOLP224t1 = Curve(
422+
"BRAINPOOLP224t1",
423+
ecdsa.curve_brainpoolp224t1,
424+
ecdsa.generator_brainpoolp224t1,
425+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 6),
426+
"brainpoolP224t1",
427+
)
428+
429+
396430
BRAINPOOLP256r1 = Curve(
397431
"BRAINPOOLP256r1",
398432
ecdsa.curve_brainpoolp256r1,
@@ -402,6 +436,15 @@ def from_pem(cls, string, valid_encodings=None):
402436
)
403437

404438

439+
BRAINPOOLP256t1 = Curve(
440+
"BRAINPOOLP256t1",
441+
ecdsa.curve_brainpoolp256t1,
442+
ecdsa.generator_brainpoolp256t1,
443+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 8),
444+
"brainpoolP256t1",
445+
)
446+
447+
405448
BRAINPOOLP320r1 = Curve(
406449
"BRAINPOOLP320r1",
407450
ecdsa.curve_brainpoolp320r1,
@@ -411,6 +454,15 @@ def from_pem(cls, string, valid_encodings=None):
411454
)
412455

413456

457+
BRAINPOOLP320t1 = Curve(
458+
"BRAINPOOLP320t1",
459+
ecdsa.curve_brainpoolp320t1,
460+
ecdsa.generator_brainpoolp320t1,
461+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 10),
462+
"brainpoolP320t1",
463+
)
464+
465+
414466
BRAINPOOLP384r1 = Curve(
415467
"BRAINPOOLP384r1",
416468
ecdsa.curve_brainpoolp384r1,
@@ -420,6 +472,15 @@ def from_pem(cls, string, valid_encodings=None):
420472
)
421473

422474

475+
BRAINPOOLP384t1 = Curve(
476+
"BRAINPOOLP384t1",
477+
ecdsa.curve_brainpoolp384t1,
478+
ecdsa.generator_brainpoolp384t1,
479+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 12),
480+
"brainpoolP384t1",
481+
)
482+
483+
423484
BRAINPOOLP512r1 = Curve(
424485
"BRAINPOOLP512r1",
425486
ecdsa.curve_brainpoolp512r1,
@@ -429,6 +490,15 @@ def from_pem(cls, string, valid_encodings=None):
429490
)
430491

431492

493+
BRAINPOOLP512t1 = Curve(
494+
"BRAINPOOLP512t1",
495+
ecdsa.curve_brainpoolp512t1,
496+
ecdsa.generator_brainpoolp512t1,
497+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 14),
498+
"brainpoolP512t1",
499+
)
500+
501+
432502
Ed25519 = Curve(
433503
"Ed25519",
434504
eddsa.curve_ed25519,
@@ -466,6 +536,13 @@ def from_pem(cls, string, valid_encodings=None):
466536
SECP160r1,
467537
Ed25519,
468538
Ed448,
539+
BRAINPOOLP160t1,
540+
BRAINPOOLP192t1,
541+
BRAINPOOLP224t1,
542+
BRAINPOOLP256t1,
543+
BRAINPOOLP320t1,
544+
BRAINPOOLP384t1,
545+
BRAINPOOLP512t1,
469546
]
470547

471548

0 commit comments

Comments
 (0)