diff options
Diffstat (limited to 'test/codec/der')
-rw-r--r-- | test/codec/der/test_decoder.py | 11 | ||||
-rw-r--r-- | test/codec/der/test_encoder.py | 7 |
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): |