|
25 | 25 | encode_sequence, |
26 | 26 | encode_oid, |
27 | 27 | encode_bitstring, |
| 28 | + encode_integer, |
| 29 | + encode_octet_string, |
28 | 30 | ) |
29 | 31 | from .util import ( |
30 | 32 | sigencode_string, |
@@ -668,6 +670,34 @@ def test_ed25519_from_pem(self): |
668 | 670 |
|
669 | 671 | self.assertEqual(sk, sk_str) |
670 | 672 |
|
| 673 | + def test_ed25519_from_der_bad_alg_id_params(self): |
| 674 | + der_str = encode_sequence( |
| 675 | + encode_integer(1), |
| 676 | + encode_sequence(encode_oid(*Ed25519.oid), encode_integer(1)), |
| 677 | + encode_octet_string(encode_octet_string(b"A" * 32)), |
| 678 | + ) |
| 679 | + |
| 680 | + with self.assertRaises(UnexpectedDER) as e: |
| 681 | + SigningKey.from_der(der_str) |
| 682 | + |
| 683 | + self.assertIn("Non NULL parameters", str(e.exception)) |
| 684 | + |
| 685 | + def test_ed25519_from_der_junk_after_priv_key(self): |
| 686 | + der_str = encode_sequence( |
| 687 | + encode_integer(1), |
| 688 | + encode_sequence( |
| 689 | + encode_oid(*Ed25519.oid), |
| 690 | + ), |
| 691 | + encode_octet_string(encode_octet_string(b"A" * 32) + b"B"), |
| 692 | + ) |
| 693 | + |
| 694 | + with self.assertRaises(UnexpectedDER) as e: |
| 695 | + SigningKey.from_der(der_str) |
| 696 | + |
| 697 | + self.assertIn( |
| 698 | + "trailing junk after the encoded private key", str(e.exception) |
| 699 | + ) |
| 700 | + |
671 | 701 | def test_ed25519_sign(self): |
672 | 702 | sk_str = SigningKey.from_string( |
673 | 703 | b"\x34\xBA\xC7\xD1\x4E\xD4\xF1\xBC\x4F\x8C\x48\x3E\x0F\x19\x77\x4C" |
@@ -774,6 +804,11 @@ def test_ed25519_to_and_from_pem(self): |
774 | 804 |
|
775 | 805 | self.assertEqual(sk, decoded) |
776 | 806 |
|
| 807 | + def test_ed25519_custom_entropy(self): |
| 808 | + sk = SigningKey.generate(Ed25519, entropy=os.urandom) |
| 809 | + |
| 810 | + self.assertIsNotNone(sk) |
| 811 | + |
777 | 812 | def test_ed25519_from_secret_exponent(self): |
778 | 813 | with self.assertRaises(ValueError) as e: |
779 | 814 | SigningKey.from_secret_exponent(1234567890, curve=Ed25519) |
|
0 commit comments