8000 Added support for Brainpool r1 · tlsfuzzer/python-ecdsa@99ecf70 · GitHub
[go: up one dir, main page]

Skip to content

Commit 99ecf70

Browse files
bhateshrir
authored andcommitted
Added support for Brainpool r1
1 parent e29ddec commit 99ecf70

File tree

3 files changed

+410
-5
lines changed

3 files changed

+410
-5
lines changed

src/ecdsa/curves.py

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,46 @@ def __repr__(self):
6161
SECP256k1 = Curve("SECP256k1", ecdsa.curve_secp256k1,
6262
ecdsa.generator_secp256k1,
6363
(1, 3, 132, 0, 10), "secp256k1")
64-
65-
66-
curves = [NIST192p, NIST224p, NIST256p, NIST384p, NIST521p, SECP256k1]
64+
BRAINPOOLP160r1 = Curve("BRAINPOOLP160r1",
65+
ecdsa.curve_brainpoolp160r1,
66+
ecdsa.generator_brainpoolp160r1,
67+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 1),
68+
"brainpoolP160r1")
69+
BRAINPOOLP192r1 = Curve("BRAINPOOLP192r1",
70+
ecdsa.curve_brainpoolp192r1,
71+
ecdsa.generator_brainpoolp192r1,
72+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 3),
73+
"brainpoolP192r1")
74+
BRAINPOOLP224r1 = Curve("BRAINPOOLP224r1",
75+
ecdsa.curve_brainpoolp224r1,
76+
ecdsa.generator_brainpoolp224r1,
77+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 5),
78+
"brainpoolP224r1")
79+
BRAINPOOLP256r1 = Curve("BRAINPOOLP256r1",
80+
ecdsa.curve_brainpoolp256r1,
81+
ecdsa.generator_brainpoolp256r1,
82+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 7),
83+
"brainpoolP256r1")
84+
BRAINPOOLP320r1 = Curve("BRAINPOOLP320r1",
85+
ecdsa.curve_brainpoolp320r1,
86+
ecdsa.generator_brainpoolp320r1,
87+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 9),
88+
"brainpoolP320r1")
89+
BRAINPOOLP384r1 = Curve("BRAINPOOLP384r1",
90+
ecdsa.curve_brainpoolp384r1,
91+
ecdsa.generator_brainpoolp384r1,
92+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 11),
93+
"brainpoolP384r1")
94+
BRAINPOOLP512r1 = Curve("BRAINPOOLP512r1",
95+
ecdsa.curve_brainpoolp512r1,
96+
ecdsa.generator_brainpoolp512r1,
97+
(1, 3, 36, 3, 3, 2, 8, 1, 1, 13),
98+
"brainpoolP512r1")
99+
100+
101+
curves = [NIST192p, NIST224p, NIST256p, NIST384p, NIST521p, SECP256k1,
102+
BRAINPOOLP160r1, BRAINPOOLP192r1, BRAINPOOLP224r1, BRAINPOOLP256r1,
103+
BRAINPOOLP320r1, BRAINPOOLP384r1, BRAINPOOLP512r1]
67104

68105

69106
def find_curve(oid_curve):

src/ecdsa/ecdsa.py

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,3 +315,87 @@ def point_is_valid(generator, x, y):
315315

316316
curve_secp256k1 = ellipticcurve.CurveFp(_p, _a, _b)
317317
generator_secp256k1 = ellipticcurve.Point(curve_secp256k1, _Gx, _Gy, _r)
318+
319+
# Brainpool P-160-r1
320+
_a = 0x340E7BE2A280EB74E2BE61BADA745D97E8F7C300
321+
_b = 0x1E589A8595423412134FAA2DBDEC95C8D8675E58
322+
_p = 0xE95E4A5F737059DC60DFC7AD95B3D8139515620F
323+
_Gx = 0xBED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC3
324+
_Gy = 0x1667CB477A1A8EC338F94741669C976316DA6321
325+
_q = 0xE95E4A5F737059DC60DF5991D45029409E60FC09
326+
327+
curve_brainpoolp160r1 = ellipticcurve.CurveFp(_p, _a, _b)
328+
generator_brainpoolp160r1 = ellipticcurve.Point(
329+
curve_brainpoolp160r1, _Gx, _Gy, _q)
330+
331+
# Brainpool P-192-r1
332+
_a = 0x6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF
333+
_b = 0x469A28EF7C28CCA3DC721D044F4496BCCA7EF4146FBF25C9
334+
_p = 0xC302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297
335+
_Gx = 0xC0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6
336+
_Gy = 0x14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F
337+
_q = 0xC302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1
338+
339+
curve_brainpoolp192r1 = ellipticcurve.CurveFp(_p, _a, _b)
340+
generator_brainpoolp192r1 = ellipticcurve.Point(
341+
curve_brainpoolp192r1, _Gx, _Gy, _q)
342+
343+
# Brainpool P-224-r1
344+
_a = 0x68A5E62CA9CE6C1C299803A6C1530B514E182AD8B0042A59CAD29F43
345+
_b = 0x2580F63CCFE44138870713B1A92369E33E2135D266DBB372386C400B
346+
_p = 0xD7C134AA264366862A18302575D1D787B09F075797DA89F57EC8C0FF
347+
_Gx = 0x0D9029AD2C7E5CF4340823B2A87DC68C9E4CE3174C1E6EFDEE12C07D
348+
_Gy = 0x58AA56F772C0726F24C6B89E4ECDAC24354B9E99CAA3F6D3761402CD
349+
_q = 0xD7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A7939F
350+
351+
curve_brainpoolp224r1 = ellipticcurve.CurveFp(_p, _a, _b)
352+
generator_brainpoolp224r1 = ellipticcurve.Point(
353+
curve_brainpoolp224r1, _Gx, _Gy, _q)
354+
355+
# Brainpool P-256-r1
356+
_a = 0x7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9
357+
_b = 0x26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6
358+
_p = 0xA9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377
359+
_Gx = 0x8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262
360+
_Gy = 0x547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997
361+
_q = 0xA9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7
362+
363+
curve_brainpoolp256r1 = ellipticcurve.CurveFp(_p, _a, _b)
364+
generator_brainpoolp256r1 = ellipticcurve.Point(
365+
curve_brainpoolp256r1, _Gx, _Gy, _q)
366+
367+
# Brainpool P-320-r1
368+
_a = 0x3EE30B568FBAB0F883CCEBD46D3F3BB8A2A73513F5EB79DA66190EB085FFA9F492F375A97D860EB4
369+
_b = 0x520883949DFDBC42D3AD198640688A6FE13F41349554B49ACC31DCCD884539816F5EB4AC8FB1F1A6
370+
_p = 0xD35E472036BC4FB7E13C785ED201E065F98FCFA6F6F40DEF4F92B9EC7893EC28FCD412B1F1B32E27
371+
_Gx = 0x43BD7E9AFB53D8B85289BCC48EE5BFE6F20137D10A087EB6E7871E2A10A599C710AF8D0D39E20611
372+
_Gy = 0x14FDD05545EC1CC8AB4093247F77275E0743FFED117182EAA9C77877AAAC6AC7D35245D1692E8EE1
373+
_q = 0xD35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D482EC7EE8658E98691555B44C59311
374+
375+
curve_brainpoolp320r1 = ellipticcurve.CurveFp(_p, _a, _b)
376+
generator_brainpoolp320r1 = ellipticcurve.Point(
377+ BD94
curve_brainpoolp320r1, _Gx, _Gy, _q)
378+
379+
# Brainpool P-384-r1
380+
_a = 0x7BC382C63D8C150C3C72080ACE05AFA0C2BEA28E4FB22787139165EFBA91F90F8AA5814A503AD4EB04A8C7DD22CE2826
381+
_b = 0x04A8C7DD22CE28268B39B55416F0447C2FB77DE107DCD2A62E880EA53EEB62D57CB4390295DBC9943AB78696FA504C11
382+
_p = 0x8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A71874700133107EC53
383+
_Gx = 0x1D1C64F068CF45FFA2A63A81B7C13F6B8847A3E77EF14FE3DB7FCAFE0CBD10E8E826E03436D646AAEF87B2E247D4AF1E
384+
_Gy = 0x8ABE1D7520F9C2A45CB1EB8E95CFD55262B70B29FEEC5864E19C054FF99129280E4646217791811142820341263C5315
385+
_q = 0x8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565
386+
387+
curve_brainpoolp384r1 = ellipticcurve.CurveFp(_p, _a, _b)
388+
generator_brainpoolp384r1 = ellipticcurve.Point(
389+
curve_brainpoolp384r1, _Gx, _Gy, _q)
390+
391+
# Brainpool P-512-r1
392+
_a = 0x7830A3318B603B89E2327145AC234CC594CBDD8D3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CA
393+
_b = 0x3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CADC083E67984050B75EBAE5DD2809BD638016F723
394+
_p = 0xAADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F3
395+
_Gx = 0x81AEE4BDD82ED9645A21322E9C4C6A9385ED9F70B5D916C1B43B62EEF4D0098EFF3B1F78E2D0D48D50D1687B93B97D5F7C6D5047406A5E688B352209BCB9F822
396+
_Gy = 0x7DDE385D566332ECC0EABFA9CF7822FDF209F70024A57B1AA000C55B881F8111B2DCDE494A5F485E5BCA4BD88A2763AED1CA2B2FA8F0540678CD1E0F3AD80892
397+
_q = 0xAADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069
398+
399+
curve_brainpoolp512r1 = ellipticcurve.CurveFp(_p, _a, _b)
400+
generator_brainpoolp512r1 = ellipticcurve.Point(
401+
curve_brainpoolp512r1, _Gx, _Gy, _q)

0 commit comments

Comments
 (0)
0