from pyderasn import InvalidValueType
from pyderasn import len_decode
from pyderasn import len_encode
+from pyderasn import LENINDEF
from pyderasn import NotEnoughData
from pyderasn import Null
from pyderasn import NumericString
binary().filter(lambda x: not x.startswith(EOC)),
)
def test_ber_expl_no_eoc(self, expl, junk):
- encoded = expl + b"\x80" + Boolean(False).encode()
+ encoded = expl + LENINDEF + Boolean(False).encode()
with assertRaisesRegex(self, DecodeError, "no EOC"):
Boolean(expl=expl).decode(encoded + junk, ctx={"bered": True})
obj, tail = Boolean(expl=expl).decode(
for value in values:
encoded += (
expl +
- b"\x80" +
+ LENINDEF +
Boolean(value).encode() +
EOC
)
def chunk_constructed(contents):
return (
tag_encode(form=TagFormConstructed, num=3) +
- b"\x80" +
+ LENINDEF +
b"".join(BitString(content).encode() for content in contents) +
EOC
)
bit_len_expected += chunk_last.bit_len
encoded_indefinite = (
tag_encode(form=TagFormConstructed, num=impl) +
- b"\x80" +
+ LENINDEF +
b"".join(chunks) +
chunk_last.encode() +
EOC
bs = BitString(b"data").encode()
with self.assertRaises(NotEnoughData) as err:
BitString().decode(
- tag_encode(3, form=TagFormConstructed) + b"\x80" + chunks * bs,
+ tag_encode(3, form=TagFormConstructed) + LENINDEF + chunks * bs,
offset=offset,
decode_path=decode_path,
ctx={"bered": True},
def test_ber_indefinite_no_chunks(self, offset, decode_path):
with assertRaisesRegex(self, DecodeError, "no chunks") as err:
BitString().decode(
- tag_encode(3, form=TagFormConstructed) + b"\x80" + EOC,
+ tag_encode(3, form=TagFormConstructed) + LENINDEF + EOC,
offset=offset,
decode_path=decode_path,
ctx={"bered": True},
BitString().decode(
(
tag_encode(3, form=TagFormConstructed) +
- b"\x80" +
+ LENINDEF +
b"".join(chunks) +
EOC
),
def chunk_constructed(contents):
return (
tag_encode(form=TagFormConstructed, num=4) +
- b"\x80" +
+ LENINDEF +
b"".join(OctetString(content).encode() for content in contents) +
EOC
)
payload_expected += payload
encoded_indefinite = (
tag_encode(form=TagFormConstructed, num=impl) +
- b"\x80" +
+ LENINDEF +
b"".join(chunks) +
EOC
)
bs = OctetString(b"data").encode()
with self.assertRaises(NotEnoughData) as err:
OctetString().decode(
- tag_encode(4, form=TagFormConstructed) + b"\x80" + chunks * bs,
+ tag_encode(4, form=TagFormConstructed) + LENINDEF + chunks * bs,
offset=offset,
decode_path=decode_path,
ctx={"bered": True},
chunk = Boolean(False, expl=expl).encode()
encoded = (
OctetString.tag_default +
- b"\x80" +
+ LENINDEF +
b"".join([chunk] * chunks) +
EOC
)
t, _, lv = tag_strip(seq_encoded)
_, _, v = len_decode(lv)
- seq_encoded_lenindef = t + b"\x80" + v + EOC
+ seq_encoded_lenindef = t + LENINDEF + v + EOC
seq_decoded_lenindef, tail_lenindef = seq.decode(
seq_encoded_lenindef + tail_junk,
ctx={"bered": True},
t, _, lv = tag_strip(obj_encoded)
_, _, v = len_decode(lv)
- obj_encoded_lenindef = t + b"\x80" + v + EOC
+ obj_encoded_lenindef = t + LENINDEF + v + EOC
obj_decoded_lenindef, tail_lenindef = obj.decode(
obj_encoded_lenindef + tail_junk,
ctx={"bered": True},