EXPECTED = {'PKIXCRMF-2005': {'extensibility-implied': False,
                   'imports': {'CryptographicMessageSyntax2004': ['EnvelopedData'],
                               'PKIX1Explicit88': ['Version',
                                                   'AlgorithmIdentifier',
                                                   'Name',
                                                   'Time',
                                                   'SubjectPublicKeyInfo',
                                                   'Extensions',
                                                   'UniqueIdentifier',
                                                   'Attribute'],
                               'PKIX1Implicit88': ['GeneralName']},
                   'object-classes': {},
                   'object-sets': {},
                   'tags': 'IMPLICIT',
                   'types': {'AttributeTypeAndValue': {'members': [{'name': 'type',
                                                                    'type': 'OBJECT '
                                                                            'IDENTIFIER'},
                                                                   {'choices': {},
                                                                    'name': 'value',
                                                                    'type': 'ANY '
                                                                            'DEFINED '
                                                                            'BY',
                                                                    'value': 'type'}],
                                                       'type': 'SEQUENCE'},
                             'Attributes': {'element': {'type': 'Attribute'},
                                            'type': 'SET OF'},
                             'Authenticator': {'type': 'UTF8String'},
                             'CertId': {'members': [{'name': 'issuer',
                                                     'type': 'GeneralName'},
                                                    {'name': 'serialNumber',
                                                     'type': 'INTEGER'}],
                                        'type': 'SEQUENCE'},
                             'CertReq': {'type': 'CertRequest'},
                             'CertReqMessages': {'element': {'type': 'CertReqMsg'},
                                                 'size': [(1, 'MAX')],
                                                 'type': 'SEQUENCE OF'},
                             'CertReqMsg': {'members': [{'name': 'certReq',
                                                         'type': 'CertRequest'},
                                                        {'name': 'popo',
                                                         'optional': True,
                                                         'type': 'ProofOfPossession'},
                                                        {'element': {'type': 'AttributeTypeAndValue'},
                                                         'name': 'regInfo',
                                                         'optional': True,
                                                         'size': [(1, 'MAX')],
                                                         'type': 'SEQUENCE '
                                                                 'OF'}],
                                            'type': 'SEQUENCE'},
                             'CertRequest': {'members': [{'name': 'certReqId',
                                                          'type': 'INTEGER'},
                                                         {'name': 'certTemplate',
                                                          'type': 'CertTemplate'},
                                                         {'name': 'controls',
                                                          'optional': True,
                                                          'type': 'Controls'}],
                                             'type': 'SEQUENCE'},
                             'CertTemplate': {'members': [{'name': 'version',
                                                           'optional': True,
                                                           'tag': {'number': 0},
                                                           'type': 'Version'},
                                                          {'name': 'serialNumber',
                                                           'optional': True,
                                                           'tag': {'number': 1},
                                                           'type': 'INTEGER'},
                                                          {'name': 'signingAlg',
                                                           'optional': True,
                                                           'tag': {'number': 2},
                                                           'type': 'AlgorithmIdentifier'},
                                                          {'name': 'issuer',
                                                           'optional': True,
                                                           'tag': {'number': 3},
                                                           'type': 'Name'},
                                                          {'name': 'validity',
                                                           'optional': True,
                                                           'tag': {'number': 4},
                                                           'type': 'OptionalValidity'},
                                                          {'name': 'subject',
                                                           'optional': True,
                                                           'tag': {'number': 5},
                                                           'type': 'Name'},
                                                          {'name': 'publicKey',
                                                           'optional': True,
                                                           'tag': {'number': 6},
                                                           'type': 'SubjectPublicKeyInfo'},
                                                          {'name': 'issuerUID',
                                                           'optional': True,
                                                           'tag': {'number': 7},
                                                           'type': 'UniqueIdentifier'},
                                                          {'name': 'subjectUID',
                                                           'optional': True,
                                                           'tag': {'number': 8},
                                                           'type': 'UniqueIdentifier'},
                                                          {'name': 'extensions',
                                                           'optional': True,
                                                           'tag': {'number': 9},
                                                           'type': 'Extensions'}],
                                              'type': 'SEQUENCE'},
                             'Controls': {'element': {'type': 'AttributeTypeAndValue'},
                                          'size': [(1, 'MAX')],
                                          'type': 'SEQUENCE OF'},
                             'EncKeyWithID': {'members': [{'name': 'privateKey',
                                                           'type': 'PrivateKeyInfo'},
                                                          {'members': [{'name': 'string',
                                                                        'type': 'UTF8String'},
                                                                       {'name': 'generalName',
                                                                        'type': 'GeneralName'}],
                                                           'name': 'identifier',
                                                           'optional': True,
                                                           'type': 'CHOICE'}],
                                              'type': 'SEQUENCE'},
                             'EncryptedKey': {'members': [{'name': 'encryptedValue',
                                                           'type': 'EncryptedValue'},
                                                          {'name': 'envelopedData',
                                                           'tag': {'number': 0},
                                                           'type': 'EnvelopedData'}],
                                              'type': 'CHOICE'},
                             'EncryptedValue': {'members': [{'name': 'intendedAlg',
                                                             'optional': True,
                                                             'tag': {'number': 0},
                                                             'type': 'AlgorithmIdentifier'},
                                                            {'name': 'symmAlg',
                                                             'optional': True,
                                                             'tag': {'number': 1},
                                                             'type': 'AlgorithmIdentifier'},
                                                            {'name': 'encSymmKey',
                                                             'optional': True,
                                                             'tag': {'number': 2},
                                                             'type': 'BIT '
                                                                     'STRING'},
                                                            {'name': 'keyAlg',
                                                             'optional': True,
                                                             'tag': {'number': 3},
                                                             'type': 'AlgorithmIdentifier'},
                                                            {'name': 'valueHint',
                                                             'optional': True,
                                                             'tag': {'number': 4},
                                                             'type': 'OCTET '
                                                                     'STRING'},
                                                            {'name': 'encValue',
                                                             'type': 'BIT '
                                                                     'STRING'}],
                                                'type': 'SEQUENCE'},
                             'KeyGenParameters': {'type': 'OCTET STRING'},
                             'OldCertId': {'type': 'CertId'},
                             'OptionalValidity': {'members': [{'name': 'notBefore',
                                                               'optional': True,
                                                               'tag': {'number': 0},
                                                               'type': 'Time'},
                                                              {'name': 'notAfter',
                                                               'optional': True,
                                                               'tag': {'number': 1},
                                                               'type': 'Time'}],
                                                  'type': 'SEQUENCE'},
                             'PBMParameter': {'members': [{'name': 'salt',
                                                           'type': 'OCTET '
                                                                   'STRING'},
                                                          {'name': 'owf',
                                                           'type': 'AlgorithmIdentifier'},
                                                          {'name': 'iterationCount',
                                                           'type': 'INTEGER'},
                                                          {'name': 'mac',
                                                           'type': 'AlgorithmIdentifier'}],
                                              'type': 'SEQUENCE'},
                             'PKIArchiveOptions': {'members': [{'name': 'encryptedPrivKey',
                                                                'tag': {'number': 0},
                                                                'type': 'EncryptedKey'},
                                                               {'name': 'keyGenParameters',
                                                                'tag': {'number': 1},
                                                                'type': 'KeyGenParameters'},
                                                               {'name': 'archiveRemGenPrivKey',
                                                                'tag': {'number': 2},
                                                                'type': 'BOOLEAN'}],
                                                   'type': 'CHOICE'},
                             'PKIPublicationInfo': {'members': [{'name': 'action',
                                                                 'type': 'INTEGER'},
                                                                {'element': {'type': 'SinglePubInfo'},
                                                                 'name': 'pubInfos',
                                                                 'optional': True,
                                                                 'size': [(1,
                                                                           'MAX')],
                                                                 'type': 'SEQUENCE '
                                                                         'OF'}],
                                                    'type': 'SEQUENCE'},
                             'PKMACValue': {'members': [{'name': 'algId',
                                                         'type': 'AlgorithmIdentifier'},
                                                        {'name': 'value',
                                                         'type': 'BIT STRING'}],
                                            'type': 'SEQUENCE'},
                             'POPOPrivKey': {'members': [{'name': 'thisMessage',
                                                          'tag': {'number': 0},
                                                          'type': 'BIT STRING'},
                                                         {'name': 'subsequentMessage',
                                                          'tag': {'number': 1},
                                                          'type': 'SubsequentMessage'},
                                                         {'name': 'dhMAC',
                                                          'tag': {'number': 2},
                                                          'type': 'BIT STRING'},
                                                         {'name': 'agreeMAC',
                                                          'tag': {'number': 3},
                                                          'type': 'PKMACValue'},
                                                         {'name': 'encryptedKey',
                                                          'tag': {'number': 4},
                                                          'type': 'EnvelopedData'}],
                                             'type': 'CHOICE'},
                             'POPOSigningKey': {'members': [{'name': 'poposkInput',
                                                             'optional': True,
                                                             'tag': {'number': 0},
                                                             'type': 'POPOSigningKeyInput'},
                                                            {'name': 'algorithmIdentifier',
                                                             'type': 'AlgorithmIdentifier'},
                                                            {'name': 'signature',
                                                             'type': 'BIT '
                                                                     'STRING'}],
                                                'type': 'SEQUENCE'},
                             'POPOSigningKeyInput': {'members': [{'members': [{'name': 'sender',
                                                                               'tag': {'number': 0},
                                                                               'type': 'GeneralName'},
                                                                              {'name': 'publicKeyMAC',
                                                                               'type': 'PKMACValue'}],
                                                                  'name': 'authInfo',
                                                                  'type': 'CHOICE'},
                                                                 {'name': 'publicKey',
                                                                  'type': 'SubjectPublicKeyInfo'}],
                                                     'type': 'SEQUENCE'},
                             'PrivateKeyInfo': {'members': [{'name': 'version',
                                                             'type': 'INTEGER'},
                                                            {'name': 'privateKeyAlgorithm',
                                                             'type': 'AlgorithmIdentifier'},
                                                            {'name': 'privateKey',
                                                             'type': 'OCTET '
                                                                     'STRING'},
                                                            {'name': 'attributes',
                                                             'optional': True,
                                                             'tag': {'kind': 'IMPLICIT',
                                                                     'number': 0},
                                                             'type': 'Attributes'}],
                                                'type': 'SEQUENCE'},
                             'ProofOfPossession': {'members': [{'name': 'raVerified',
                                                                'tag': {'number': 0},
                                                                'type': 'NULL'},
                                                               {'name': 'signature',
                                                                'tag': {'number': 1},
                                                                'type': 'POPOSigningKey'},
                                                               {'name': 'keyEncipherment',
                                                                'tag': {'number': 2},
                                                                'type': 'POPOPrivKey'},
                                                               {'name': 'keyAgreement',
                                                                'tag': {'number': 3},
                                                                'type': 'POPOPrivKey'}],
                                                   'type': 'CHOICE'},
                             'ProtocolEncrKey': {'type': 'SubjectPublicKeyInfo'},
                             'RegToken': {'type': 'UTF8String'},
                             'SinglePubInfo': {'members': [{'name': 'pubMethod',
                                                            'type': 'INTEGER'},
                                                           {'name': 'pubLocation',
                                                            'optional': True,
                                                            'type': 'GeneralName'}],
                                               'type': 'SEQUENCE'},
                             'SubsequentMessage': {'type': 'INTEGER'},
                             'UTF8Pairs': {'type': 'UTF8String'}},
                   'values': {'id-ct': {'type': 'OBJECT IDENTIFIER',
                                        'value': ['id-smime', 1]},
                              'id-ct-encKeyWithID': {'type': 'OBJECT '
                                                             'IDENTIFIER',
                                                     'value': ['id-ct', 21]},
                              'id-pkip': {'type': 'OBJECT IDENTIFIER',
                                          'value': ['id-pkix', 5]},
                              'id-pkix': {'type': 'OBJECT IDENTIFIER',
                                          'value': [('iso', 1),
                                                    ('identified-organization',
                                                     3),
                                                    ('dod', 6),
                                                    ('internet', 1),
                                                    ('security', 5),
                                                    ('mechanisms', 5),
                                                    7]},
                              'id-regCtrl': {'type': 'OBJECT IDENTIFIER',
                                             'value': ['id-pkip', 1]},
                              'id-regCtrl-authenticator': {'type': 'OBJECT '
                                                                   'IDENTIFIER',
                                                           'value': ['id-regCtrl',
                                                                     2]},
                              'id-regCtrl-oldCertID': {'type': 'OBJECT '
                                                               'IDENTIFIER',
                                                       'value': ['id-regCtrl',
                                                                 5]},
                              'id-regCtrl-pkiArchiveOptions': {'type': 'OBJECT '
                                                                       'IDENTIFIER',
                                                               'value': ['id-regCtrl',
                                                                         4]},
                              'id-regCtrl-pkiPublicationInfo': {'type': 'OBJECT '
                                                                        'IDENTIFIER',
                                                                'value': ['id-regCtrl',
                                                                          3]},
                              'id-regCtrl-protocolEncrKey': {'type': 'OBJECT '
                                                                     'IDENTIFIER',
                                                             'value': ['id-regCtrl',
                                                                       6]},
                              'id-regCtrl-regToken': {'type': 'OBJECT '
                                                              'IDENTIFIER',
                                                      'value': ['id-regCtrl',
                                                                1]},
                              'id-regInfo': {'type': 'OBJECT IDENTIFIER',
                                             'value': ['id-pkip', 2]},
                              'id-regInfo-certReq': {'type': 'OBJECT '
                                                             'IDENTIFIER',
                                                     'value': ['id-regInfo',
                                                               2]},
                              'id-regInfo-utf8Pairs': {'type': 'OBJECT '
                                                               'IDENTIFIER',
                                                       'value': ['id-regInfo',
                                                                 1]},
                              'id-smime': {'type': 'OBJECT IDENTIFIER',
                                           'value': [('iso', 1),
                                                     ('member-body', 2),
                                                     ('us', 840),
                                                     ('rsadsi', 113549),
                                                     ('pkcs', 1),
                                                     ('pkcs9', 9),
                                                     16]}}}}