summaryrefslogtreecommitdiff
path: root/test/codec/der
diff options
context:
space:
mode:
Diffstat (limited to 'test/codec/der')
-rw-r--r--test/codec/der/test_decoder.py11
-rw-r--r--test/codec/der/test_encoder.py7
2 files changed, 18 insertions, 0 deletions
diff --git a/test/codec/der/test_decoder.py b/test/codec/der/test_decoder.py
index 5c9a194..a0b7b8a 100644
--- a/test/codec/der/test_decoder.py
+++ b/test/codec/der/test_decoder.py
@@ -1,5 +1,6 @@
from pyasn1.type import univ
from pyasn1.codec.der import decoder
+from pyasn1.compat.octets import ints2octs
from pyasn1.error import PyAsn1Error
from sys import version_info
if version_info[0:2] < (2, 7) or \
@@ -17,4 +18,14 @@ class OctetStringDecoderTestCase(unittest.TestCase):
'\004\017Quick brown fox'.encode()
) == ('Quick brown fox'.encode(), ''.encode())
+ def testIndefMode(self):
+ try:
+ decoder.decode(
+ ints2octs((36, 128, 4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120, 0, 0))
+ )
+ except PyAsn1Error:
+ pass
+ else:
+ assert 1, 'indefinite length encoding tolerated'
+
if __name__ == '__main__': unittest.main()
diff --git a/test/codec/der/test_encoder.py b/test/codec/der/test_encoder.py
index 787da7b..0044536 100644
--- a/test/codec/der/test_encoder.py
+++ b/test/codec/der/test_encoder.py
@@ -17,6 +17,13 @@ class OctetStringEncoderTestCase(unittest.TestCase):
assert encoder.encode(
univ.OctetString('Quick brown fox')
) == ints2octs((4, 15, 81, 117, 105, 99, 107, 32, 98, 114, 111, 119, 110, 32, 102, 111, 120))
+ def testIndefMode(self):
+ try:
+ assert encoder.encode(univ.OctetString('Quick brown'), defMode=0)
+ except PyAsn1Error:
+ pass
+ else:
+ assert 1, 'Indefinite length encoding tolerated'
class BitStringEncoderTestCase(unittest.TestCase):
def testShortMode(self):