diff options
Diffstat (limited to 'tests/test_rfc5280.py')
-rw-r--r-- | tests/test_rfc5280.py | 81 |
1 files changed, 43 insertions, 38 deletions
diff --git a/tests/test_rfc5280.py b/tests/test_rfc5280.py index 5abff3e..9802ef9 100644 --- a/tests/test_rfc5280.py +++ b/tests/test_rfc5280.py @@ -6,8 +6,8 @@ # import sys -from pyasn1.codec.der import decoder as der_decoder -from pyasn1.codec.der import encoder as der_encoder +from pyasn1.codec.der.decoder import decode as der_decode +from pyasn1.codec.der.encoder import encode as der_encode from pyasn1.type import univ @@ -48,11 +48,11 @@ PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu substrate = pem.readBase64fromText(self.pem_text) - asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + asn1Object, rest = der_decode(substrate, asn1Spec=self.asn1Spec) assert not rest assert asn1Object.prettyPrint() - assert der_encoder.encode(asn1Object) == substrate + assert der_encode(asn1Object) == substrate class CertificateListTestCase(unittest.TestCase): @@ -74,11 +74,11 @@ vjnIhxTFoCb5vA== substrate = pem.readBase64fromText(self.pem_text) - asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + asn1Object, rest = der_decode(substrate, asn1Spec=self.asn1Spec) assert not rest assert asn1Object.prettyPrint() - assert der_encoder.encode(asn1Object) == substrate + assert der_encode(asn1Object) == substrate class CertificateOpenTypeTestCase(unittest.TestCase): @@ -108,19 +108,25 @@ PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu substrate = pem.readBase64fromText(self.pem_text) - algorithmIdentifierMapUpdate = { + openTypesMap = { univ.ObjectIdentifier('1.2.840.113549.1.1.1'): univ.Null(""), univ.ObjectIdentifier('1.2.840.113549.1.1.5'): univ.Null(""), univ.ObjectIdentifier('1.2.840.113549.1.1.11'): univ.Null(""), } - rfc5280.algorithmIdentifierMap.update(algorithmIdentifierMapUpdate) - - asn1Object, rest = der_decoder.decode(substrate, - asn1Spec=self.asn1Spec, decodeOpenTypes=True) + asn1Object, rest = der_decode(substrate, + asn1Spec=self.asn1Spec, + openTypes=openTypesMap, + decodeOpenTypes=True) assert not rest assert asn1Object.prettyPrint() - assert der_encoder.encode(asn1Object) == substrate + assert der_encode(asn1Object) == substrate + + sig_alg = asn1Object['tbsCertificate']['signature'] + assert sig_alg['parameters'] == univ.Null("") + + spki_alg = asn1Object['tbsCertificate']['subjectPublicKeyInfo']['algorithm'] + assert spki_alg['parameters'] == univ.Null("") for rdn in asn1Object['tbsCertificate']['subject']['rdnSequence']: for atv in rdn: @@ -130,12 +136,6 @@ PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu atv_ps = str(atv['value']['printableString']) assert "valicert" in atv_ps.lower() - sig_alg = asn1Object['tbsCertificate']['signature'] - assert sig_alg['parameters'] == univ.Null("") - - spki_alg = asn1Object['tbsCertificate']['subjectPublicKeyInfo']['algorithm'] - assert spki_alg['parameters'] == univ.Null("") - class CertificateListOpenTypeTestCase(unittest.TestCase): pem_text = """\ @@ -156,19 +156,22 @@ vjnIhxTFoCb5vA== substrate = pem.readBase64fromText(self.pem_text) - algorithmIdentifierMapUpdate = { + openTypesMap = { univ.ObjectIdentifier('1.2.840.113549.1.1.1'): univ.Null(""), univ.ObjectIdentifier('1.2.840.113549.1.1.5'): univ.Null(""), univ.ObjectIdentifier('1.2.840.113549.1.1.11'): univ.Null(""), } - rfc5280.algorithmIdentifierMap.update(algorithmIdentifierMapUpdate) - - asn1Object, rest = der_decoder.decode(substrate, - asn1Spec=self.asn1Spec, decodeOpenTypes=True) + asn1Object, rest = der_decode(substrate, + asn1Spec=self.asn1Spec, + openTypes=openTypesMap, + decodeOpenTypes=True) assert not rest assert asn1Object.prettyPrint() - assert der_encoder.encode(asn1Object) == substrate + assert der_encode(asn1Object) == substrate + + sig_alg = asn1Object['tbsCertList']['signature'] + assert sig_alg['parameters'] == univ.Null("") for rdn in asn1Object['tbsCertList']['issuer']['rdnSequence']: for atv in rdn: @@ -179,30 +182,32 @@ vjnIhxTFoCb5vA== else: assert len(atv['value']['printableString']) > 9 + crl_extn_count = 0 for extn in asn1Object['tbsCertList']['crlExtensions']: if extn['extnID'] in rfc5280.certificateExtensionsMap.keys(): - ev, rest = der_decoder.decode(extn['extnValue'], + ev, rest = der_decode(extn['extnValue'], asn1Spec=rfc5280.certificateExtensionsMap[extn['extnID']]) assert not rest assert ev.prettyPrint() - assert der_encoder.encode(ev) == extn['extnValue'] - - sig_alg = asn1Object['tbsCertList']['signature'] - assert sig_alg['parameters'] == univ.Null("") + assert der_encode(ev) == extn['extnValue'] + crl_extn_count += 1 + assert crl_extn_count == 1 def testExtensionsMap(self): substrate = pem.readBase64fromText(self.pem_text) - asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + asn1Object, rest = der_decode(substrate, asn1Spec=self.asn1Spec) assert not rest assert asn1Object.prettyPrint() - assert der_encoder.encode(asn1Object) == substrate + assert der_encode(asn1Object) == substrate + cert_extn_count = 0 for extn in asn1Object['tbsCertList']['crlExtensions']: if extn['extnID'] in rfc5280.certificateExtensionsMap.keys(): - extnValue, rest = der_decoder.decode(extn['extnValue'], + extnValue, rest = der_decode(extn['extnValue'], asn1Spec=rfc5280.certificateExtensionsMap[extn['extnID']]) - assert der_encoder.encode(extnValue) == extn['extnValue'] - + assert der_encode(extnValue) == extn['extnValue'] + cert_extn_count += 1 + assert cert_extn_count == 1 class ORAddressOpenTypeTestCase(unittest.TestCase): oraddress_pem_text = """\ @@ -214,14 +219,14 @@ FDASgAEBoQ0TC1N0ZXZlIEtpbGxl self.asn1Spec = rfc5280.ORAddress() def testDecodeOpenTypes(self): - substrate = pem.readBase64fromText(self.oraddress_pem_text) - asn1Object, rest = der_decoder.decode(substrate, - asn1Spec=self.asn1Spec, decodeOpenTypes=True) + asn1Object, rest = der_decode(substrate, + asn1Spec=self.asn1Spec, + decodeOpenTypes=True) assert not rest assert asn1Object.prettyPrint() - assert der_encoder.encode(asn1Object) == substrate + assert der_encode(asn1Object) == substrate ea0 = asn1Object['extension-attributes'][0] assert ea0['extension-attribute-type'] == rfc5280.common_name |