|
22 | 22 | sigdecode_der, |
23 | 23 | sigdecode_strings, |
24 | 24 | ) |
25 | | -from .curves import NIST256p |
| 25 | +from .curves import NIST256p, Curve, BRAINPOOLP160r1 |
| 26 | +from .ellipticcurve import Point |
| 27 | +from .ecdsa import generator_brainpoolp160r1 |
26 | 28 |
|
27 | 29 |
|
28 | 30 | class TestVerifyingKeyFromString(unittest.TestCase): |
@@ -207,6 +209,17 @@ def test_VerifyingKey_inequality_on_same_curve(self): |
207 | 209 | def test_SigningKey_inequality_on_same_curve(self): |
208 | 210 | self.assertNotEqual(self.sk, self.sk2) |
209 | 211 |
|
| 212 | + def test_inequality_on_wrong_types(self): |
| 213 | + self.assertNotEqual(self.vk, self.sk) |
| 214 | + |
| 215 | + def test_from_public_point_old(self): |
| 216 | + pj = self.vk.pubkey.point |
| 217 | + point = Point(pj.curve(), pj.x(), pj.y()) |
| 218 | + |
| 219 | + vk = VerifyingKey.from_public_point(point, self.vk.curve) |
| 220 | + |
| 221 | + self.assertEqual(vk, self.vk) |
| 222 | + |
210 | 223 |
|
211 | 224 | class TestSigningKey(unittest.TestCase): |
212 | 225 | """ |
@@ -458,3 +471,37 @@ def test_SigningKey_with_unlikely_value(): |
458 | 471 | vk = sk.verifying_key |
459 | 472 | sig = sk.sign(b"hello") |
460 | 473 | assert vk.verify(sig, b"hello") |
| 474 | + |
| 475 | + |
| 476 | +def test_SigningKey_with_custom_curve_old_point(): |
| 477 | + generator = generator_brainpoolp160r1 |
| 478 | + generator = Point( |
| 479 | + generator.curve(), generator.x(), generator.y(), generator.order(), |
| 480 | + ) |
| 481 | + |
| 482 | + curve = Curve( |
| 483 | + "BRAINPOOLP160r1", |
| 484 | + generator.curve(), |
| 485 | + generator, |
| 486 | + (1, 3, 36, 3, 3, 2, 8, 1, 1, 1), |
| 487 | + ) |
| 488 | + |
| 489 | + sk = SigningKey.from_secret_exponent(12, curve) |
| 490 | + |
| 491 | + sk2 = SigningKey.from_secret_exponent(12, BRAINPOOLP160r1) |
| 492 | + |
| 493 | + assert sk.privkey == sk2.privkey |
| 494 | + |
| 495 | + |
| 496 | +def test_VerifyingKey_inequality_with_different_curves(): |
| 497 | + sk1 = SigningKey.from_secret_exponent(2, BRAINPOOLP160r1) |
| 498 | + sk2 = SigningKey.from_secret_exponent(2, NIST256p) |
| 499 | + |
| 500 | + assert sk1.verifying_key != sk2.verifying_key |
| 501 | + |
| 502 | + |
| 503 | +def test_VerifyingKey_inequality_with_different_secret_points(): |
| 504 | + sk1 = SigningKey.from_secret_exponent(2, BRAINPOOLP160r1) |
| 505 | + sk2 = SigningKey.from_secret_exponent(3, BRAINPOOLP160r1) |
| 506 | + |
| 507 | + assert sk1.verifying_key != sk2.verifying_key |
0 commit comments