+ @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 self.assertRaisesRegex(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 = bytes([klass | form | 31, num])
+ with self.assertRaisesRegex(DecodeError, "unexpected long form"):
+ tag_strip(raw)
+