|
24 | 24 | sigdecode_der, |
25 | 25 | sigdecode_strings, |
26 | 26 | ) |
27 | | -from .curves import NIST256p |
| 27 | +from .curves import NIST256p, Curve, BRAINPOOLP160r1 |
| 28 | +from .ellipticcurve import Point |
| 29 | +from .ecdsa import generator_brainpoolp160r1 |
28 | 30 |
|
29 | 31 |
|
30 | 32 | class TestVerifyingKeyFromString(unittest.TestCase): |
@@ -201,6 +203,17 @@ def test_inequality_on_verifying_keys(self): |
201 | 203 | def test_inequality_on_verifying_keys_not_implemented(self): |
202 | 204 | self.assertNotEqual(self.vk, None) |
203 | 205 |
|
| 206 | + def test_inequality_on_wrong_types(self): |
| 207 | + self.assertNotEqual(self.vk, self.sk) |
| 208 | + |
| 209 | + def test_from_public_point_old(self): |
| 210 | + pj = self.vk.pubkey.point |
| 211 | + point = Point(pj.curve(), pj.x(), pj.y()) |
| 212 | + |
| 213 | + vk = VerifyingKey.from_public_point(point, self.vk.curve) |
| 214 | + |
| 215 | + self.assertEqual(vk, self.vk) |
| 216 | + |
204 | 217 |
|
205 | 218 | class TestSigningKey(unittest.TestCase): |
206 | 219 | """ |
@@ -452,3 +465,26 @@ def test_SigningKey_with_unlikely_value(): |
452 | 465 | vk = sk.verifying_key |
453 | 466 | sig = sk.sign(b"hello") |
454 | 467 | assert vk.verify(sig, b"hello") |
| 468 | + |
| 469 | + |
| 470 | +def test_SigningKey_with_custom_curve_old_point(): |
| 471 | + generator = generator_brainpoolp160r1 |
| 472 | + generator = Point( |
| 473 | + generator.curve(), |
| 474 | + generator.x(), |
| 475 | + generator.y(), |
| 476 | + generator.order(), |
| 477 | + ) |
| 478 | + |
| 479 | + curve = Curve( |
| 480 | + "BRAINPOOLP160r1", |
| 481 | + generator.curve, |
| 482 | + generator, |
| 483 | + (1, 3, 36, 3, 3, 2, 8, 1, 1, 1), |
| 484 | + ) |
| 485 | + |
| 486 | + sk = SigningKey.from_secret_exponent(12, curve) |
| 487 | + |
| 488 | + sk2 = SigningKey.from_secret_exponent(12, BRAINPOOLP160r1) |
| 489 | + |
| 490 | + assert sk.privkey == sk2.privkey |
0 commit comments