X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=tests%2Ftest_pyderasn.py;h=8225fc02eaef4be07fc42093a3f28e4cbc88b933;hb=bba84f2f3b5fbc860f51cf76f2f504cb2aa8d899;hp=9a38fdda58bccb1837161a3237cbd5fdc9771c3d;hpb=1285a47fd22a99a87354496ade8b392ff874d8b8;p=pyderasn.git diff --git a/tests/test_pyderasn.py b/tests/test_pyderasn.py index 9a38fdd..8225fc0 100644 --- a/tests/test_pyderasn.py +++ b/tests/test_pyderasn.py @@ -276,6 +276,19 @@ class TestTagCoder(TestCase): with self.assertRaises(DecodeError): len_decode(octets) + @given(tag_classes, tag_forms, integers(min_value=31)) + def test_leading_zero_byte(self, klass, form, num): + raw = tag_encode(klass=klass, form=form, num=num) + raw = b"".join((raw[:1], b"\x80", raw[1:])) + with assertRaisesRegex(self, DecodeError, "leading zero byte"): + tag_strip(raw) + + @given(tag_classes, tag_forms, integers(max_value=30, min_value=0)) + def test_unexpected_long_form(self, klass, form, num): + raw = int2byte(klass | form | 31) + int2byte(num) + with assertRaisesRegex(self, DecodeError, "unexpected long form"): + tag_strip(raw) + class TestLenCoder(TestCase): @settings(max_examples=LONG_TEST_MAX_EXAMPLES)