diff options
author | Russ Housley <housley@vigilsec.com> | 2019-07-05 02:51:19 -0400 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2019-07-05 08:51:19 +0200 |
commit | 9c05c76367f327c8f2343c997b92fc0a3398ac41 (patch) | |
tree | 8722f1154877a0c940d3f7b543196ed779418ab1 | |
parent | 86f7ad492e0dd2eda1bbc2f98fc00ecc3837114e (diff) | |
download | pyasn1-modules-9c05c76367f327c8f2343c997b92fc0a3398ac41.tar.gz |
Add decodeOpenTypes test to test_rfc2986.py (#49)
* Add decodeOpenTypes test to test_rfc2986.py
-rw-r--r-- | tests/test_rfc2986.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_rfc2986.py b/tests/test_rfc2986.py index 8dbad8b..4f0bf68 100644 --- a/tests/test_rfc2986.py +++ b/tests/test_rfc2986.py @@ -9,9 +9,12 @@ import sys from pyasn1.codec.der import decoder as der_decoder from pyasn1.codec.der import encoder as der_encoder +from pyasn1.type import char + from pyasn1_modules import pem from pyasn1_modules import rfc2986 + try: import unittest2 as unittest @@ -51,6 +54,27 @@ fi6h7i9VVAZpslaKFfkNg12gLbbsCB1q36l5VXjHY/qe0FIUa9ogRrOi assert asn1Object.prettyPrint() assert der_encoder.encode(asn1Object) == substrate + def testOpenTypes(self): + + substrate = pem.readBase64fromText(self.pem_text) + + rfc2986.certificateAttributesMap.update( + rfc5280.certificateAttributesMap) + + asn1Object, rest = der_decoder.decode(substrate, + asn1Spec=rfc2986.CertificationRequest(), + decodeOpenTypes=True) + + assert not rest + assert asn1Object.prettyPrint() + assert der_encoder.encode(asn1Object) == substrate + + for rdn in asn1Object['certificationRequestInfo']['subject']['rdnSequence']: + if rdn[0]['type'] == rfc2986.id_at_countryName: + assert rdn[0]['value'] == char.PrintableString('US') + else: + assert len(rdn[0]['value']['utf8String']) > 2 + suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) |