EXPECTED = {'PKIXCMP': {'extensibility-implied': False,
             'imports': {'PKCS-10': ['CertificationRequest'],
                         'PKIX1Explicit88': ['Certificate',
                                             'CertificateList',
                                             'Extensions',
                                             'AlgorithmIdentifier',
                                             'UTF8String'],
                         'PKIX1Implicit88': ['GeneralName', 'KeyIdentifier'],
                         'PKIXCRMF-2005': ['CertTemplate',
                                           'PKIPublicationInfo',
                                           'EncryptedValue',
                                           'CertId',
                                           'CertReqMessages']},
             'object-classes': {},
             'object-sets': {},
             'tags': 'EXPLICIT',
             'types': {'CAKeyUpdAnnContent': {'members': [{'name': 'oldWithNew',
                                                           'type': 'CMPCertificate'},
                                                          {'name': 'newWithOld',
                                                           'type': 'CMPCertificate'},
                                                          {'name': 'newWithNew',
                                                           'type': 'CMPCertificate'}],
                                              'type': 'SEQUENCE'},
                       'CMPCertificate': {'members': [{'name': 'x509v3PKCert',
                                                       'type': 'Certificate'}],
                                          'type': 'CHOICE'},
                       'CRLAnnContent': {'element': {'type': 'CertificateList'},
                                         'type': 'SEQUENCE OF'},
                       'CertAnnContent': {'type': 'CMPCertificate'},
                       'CertConfirmContent': {'element': {'type': 'CertStatus'},
                                              'type': 'SEQUENCE OF'},
                       'CertOrEncCert': {'members': [{'name': 'certificate',
                                                      'tag': {'number': 0},
                                                      'type': 'CMPCertificate'},
                                                     {'name': 'encryptedCert',
                                                      'tag': {'number': 1},
                                                      'type': 'EncryptedValue'}],
                                         'type': 'CHOICE'},
                       'CertRepMessage': {'members': [{'element': {'type': 'CMPCertificate'},
                                                       'name': 'caPubs',
                                                       'optional': True,
                                                       'size': [(1, 'MAX')],
                                                       'tag': {'number': 1},
                                                       'type': 'SEQUENCE OF'},
                                                      {'element': {'type': 'CertResponse'},
                                                       'name': 'response',
                                                       'type': 'SEQUENCE OF'}],
                                          'type': 'SEQUENCE'},
                       'CertResponse': {'members': [{'name': 'certReqId',
                                                     'type': 'INTEGER'},
                                                    {'name': 'status',
                                                     'type': 'PKIStatusInfo'},
                                                    {'name': 'certifiedKeyPair',
                                                     'optional': True,
                                                     'type': 'CertifiedKeyPair'},
                                                    {'name': 'rspInfo',
                                                     'optional': True,
                                                     'type': 'OCTET STRING'}],
                                        'type': 'SEQUENCE'},
                       'CertStatus': {'members': [{'name': 'certHash',
                                                   'type': 'OCTET STRING'},
                                                  {'name': 'certReqId',
                                                   'type': 'INTEGER'},
                                                  {'name': 'statusInfo',
                                                   'optional': True,
                                                   'type': 'PKIStatusInfo'}],
                                      'type': 'SEQUENCE'},
                       'CertifiedKeyPair': {'members': [{'name': 'certOrEncCert',
                                                         'type': 'CertOrEncCert'},
                                                        {'name': 'privateKey',
                                                         'optional': True,
                                                         'tag': {'number': 0},
                                                         'type': 'EncryptedValue'},
                                                        {'name': 'publicationInfo',
                                                         'optional': True,
                                                         'tag': {'number': 1},
                                                         'type': 'PKIPublicationInfo'}],
                                            'type': 'SEQUENCE'},
                       'Challenge': {'members': [{'name': 'owf',
                                                  'optional': True,
                                                  'type': 'AlgorithmIdentifier'},
                                                 {'name': 'witness',
                                                  'type': 'OCTET STRING'},
                                                 {'name': 'challenge',
                                                  'type': 'OCTET STRING'}],
                                     'type': 'SEQUENCE'},
                       'DHBMParameter': {'members': [{'name': 'owf',
                                                      'type': 'AlgorithmIdentifier'},
                                                     {'name': 'mac',
                                                      'type': 'AlgorithmIdentifier'}],
                                         'type': 'SEQUENCE'},
                       'ErrorMsgContent': {'members': [{'name': 'pKIStatusInfo',
                                                        'type': 'PKIStatusInfo'},
                                                       {'name': 'errorCode',
                                                        'optional': True,
                                                        'type': 'INTEGER'},
                                                       {'name': 'errorDetails',
                                                        'optional': True,
                                                        'type': 'PKIFreeText'}],
                                           'type': 'SEQUENCE'},
                       'GenMsgContent': {'element': {'type': 'InfoTypeAndValue'},
                                         'type': 'SEQUENCE OF'},
                       'GenRepContent': {'element': {'type': 'InfoTypeAndValue'},
                                         'type': 'SEQUENCE OF'},
                       'InfoTypeAndValue': {'members': [{'name': 'infoType',
                                                         'type': 'OBJECT '
                                                                 'IDENTIFIER'},
                                                        {'choices': {},
                                                         'name': 'infoValue',
                                                         'optional': True,
                                                         'type': 'ANY DEFINED '
                                                                 'BY',
                                                         'value': 'infoType'}],
                                            'type': 'SEQUENCE'},
                       'KeyRecRepContent': {'members': [{'name': 'status',
                                                         'type': 'PKIStatusInfo'},
                                                        {'name': 'newSigCert',
                                                         'optional': True,
                                                         'tag': {'number': 0},
                                                         'type': 'CMPCertificate'},
                                                        {'element': {'type': 'CMPCertificate'},
                                                         'name': 'caCerts',
                                                         'optional': True,
                                                         'size': [(1, 'MAX')],
                                                         'tag': {'number': 1},
                                                         'type': 'SEQUENCE OF'},
                                                        {'element': {'type': 'CertifiedKeyPair'},
                                                         'name': 'keyPairHist',
                                                         'optional': True,
                                                         'size': [(1, 'MAX')],
                                                         'tag': {'number': 2},
                                                         'type': 'SEQUENCE '
                                                                 'OF'}],
                                            'type': 'SEQUENCE'},
                       'NestedMessageContent': {'type': 'PKIMessages'},
                       'OOBCert': {'type': 'CMPCertificate'},
                       'OOBCertHash': {'members': [{'name': 'hashAlg',
                                                    'optional': True,
                                                    'tag': {'number': 0},
                                                    'type': 'AlgorithmIdentifier'},
                                                   {'name': 'certId',
                                                    'optional': True,
                                                    'tag': {'number': 1},
                                                    'type': 'CertId'},
                                                   {'name': 'hashVal',
                                                    'type': 'BIT STRING'}],
                                       'type': 'SEQUENCE'},
                       'PBMParameter': {'members': [{'name': 'salt',
                                                     'type': 'OCTET STRING'},
                                                    {'name': 'owf',
                                                     'type': 'AlgorithmIdentifier'},
                                                    {'name': 'iterationCount',
                                                     'type': 'INTEGER'},
                                                    {'name': 'mac',
                                                     'type': 'AlgorithmIdentifier'}],
                                        'type': 'SEQUENCE'},
                       'PKIBody': {'members': [{'name': 'ir',
                                                'tag': {'number': 0},
                                                'type': 'CertReqMessages'},
                                               {'name': 'ip',
                                                'tag': {'number': 1},
                                                'type': 'CertRepMessage'},
                                               {'name': 'cr',
                                                'tag': {'number': 2},
                                                'type': 'CertReqMessages'},
                                               {'name': 'cp',
                                                'tag': {'number': 3},
                                                'type': 'CertRepMessage'},
                                               {'name': 'p10cr',
                                                'tag': {'number': 4},
                                                'type': 'CertificationRequest'},
                                               {'name': 'popdecc',
                                                'tag': {'number': 5},
                                                'type': 'POPODecKeyChallContent'},
                                               {'name': 'popdecr',
                                                'tag': {'number': 6},
                                                'type': 'POPODecKeyRespContent'},
                                               {'name': 'kur',
                                                'tag': {'number': 7},
                                                'type': 'CertReqMessages'},
                                               {'name': 'kup',
                                                'tag': {'number': 8},
                                                'type': 'CertRepMessage'},
                                               {'name': 'krr',
                                                'tag': {'number': 9},
                                                'type': 'CertReqMessages'},
                                               {'name': 'krp',
                                                'tag': {'number': 10},
                                                'type': 'KeyRecRepContent'},
                                               {'name': 'rr',
                                                'tag': {'number': 11},
                                                'type': 'RevReqContent'},
                                               {'name': 'rp',
                                                'tag': {'number': 12},
                                                'type': 'RevRepContent'},
                                               {'name': 'ccr',
                                                'tag': {'number': 13},
                                                'type': 'CertReqMessages'},
                                               {'name': 'ccp',
                                                'tag': {'number': 14},
                                                'type': 'CertRepMessage'},
                                               {'name': 'ckuann',
                                                'tag': {'number': 15},
                                                'type': 'CAKeyUpdAnnContent'},
                                               {'name': 'cann',
                                                'tag': {'number': 16},
                                                'type': 'CertAnnContent'},
                                               {'name': 'rann',
                                                'tag': {'number': 17},
                                                'type': 'RevAnnContent'},
                                               {'name': 'crlann',
                                                'tag': {'number': 18},
                                                'type': 'CRLAnnContent'},
                                               {'name': 'pkiconf',
                                                'tag': {'number': 19},
                                                'type': 'PKIConfirmContent'},
                                               {'name': 'nested',
                                                'tag': {'number': 20},
                                                'type': 'NestedMessageContent'},
                                               {'name': 'genm',
                                                'tag': {'number': 21},
                                                'type': 'GenMsgContent'},
                                               {'name': 'genp',
                                                'tag': {'number': 22},
                                                'type': 'GenRepContent'},
                                               {'name': 'error',
                                                'tag': {'number': 23},
                                                'type': 'ErrorMsgContent'},
                                               {'name': 'certConf',
                                                'tag': {'number': 24},
                                                'type': 'CertConfirmContent'},
                                               {'name': 'pollReq',
                                                'tag': {'number': 25},
                                                'type': 'PollReqContent'},
                                               {'name': 'pollRep',
                                                'tag': {'number': 26},
                                                'type': 'PollRepContent'}],
                                   'type': 'CHOICE'},
                       'PKIConfirmContent': {'type': 'NULL'},
                       'PKIFailureInfo': {'type': 'BIT STRING'},
                       'PKIFreeText': {'element': {'type': 'UTF8String'},
                                       'size': [(1, 'MAX')],
                                       'type': 'SEQUENCE OF'},
                       'PKIHeader': {'members': [{'name': 'pvno',
                                                  'type': 'INTEGER'},
                                                 {'name': 'sender',
                                                  'type': 'GeneralName'},
                                                 {'name': 'recipient',
                                                  'type': 'GeneralName'},
                                                 {'name': 'messageTime',
                                                  'optional': True,
                                                  'tag': {'number': 0},
                                                  'type': 'GeneralizedTime'},
                                                 {'name': 'protectionAlg',
                                                  'optional': True,
                                                  'tag': {'number': 1},
                                                  'type': 'AlgorithmIdentifier'},
                                                 {'name': 'senderKID',
                                                  'optional': True,
                                                  'tag': {'number': 2},
                                                  'type': 'KeyIdentifier'},
                                                 {'name': 'recipKID',
                                                  'optional': True,
                                                  'tag': {'number': 3},
                                                  'type': 'KeyIdentifier'},
                                                 {'name': 'transactionID',
                                                  'optional': True,
                                                  'tag': {'number': 4},
                                                  'type': 'OCTET STRING'},
                                                 {'name': 'senderNonce',
                                                  'optional': True,
                                                  'tag': {'number': 5},
                                                  'type': 'OCTET STRING'},
                                                 {'name': 'recipNonce',
                                                  'optional': True,
                                                  'tag': {'number': 6},
                                                  'type': 'OCTET STRING'},
                                                 {'name': 'freeText',
                                                  'optional': True,
                                                  'tag': {'number': 7},
                                                  'type': 'PKIFreeText'},
                                                 {'element': {'type': 'InfoTypeAndValue'},
                                                  'name': 'generalInfo',
                                                  'optional': True,
                                                  'size': [(1, 'MAX')],
                                                  'tag': {'number': 8},
                                                  'type': 'SEQUENCE OF'}],
                                     'type': 'SEQUENCE'},
                       'PKIMessage': {'members': [{'name': 'header',
                                                   'type': 'PKIHeader'},
                                                  {'name': 'body',
                                                   'type': 'PKIBody'},
                                                  {'name': 'protection',
                                                   'optional': True,
                                                   'tag': {'number': 0},
                                                   'type': 'PKIProtection'},
                                                  {'element': {'type': 'CMPCertificate'},
                                                   'name': 'extraCerts',
                                                   'optional': True,
                                                   'size': [(1, 'MAX')],
                                                   'tag': {'number': 1},
                                                   'type': 'SEQUENCE OF'}],
                                      'type': 'SEQUENCE'},
                       'PKIMessages': {'element': {'type': 'PKIMessage'},
                                       'size': [(1, 'MAX')],
                                       'type': 'SEQUENCE OF'},
                       'PKIProtection': {'type': 'BIT STRING'},
                       'PKIStatus': {'type': 'INTEGER'},
                       'PKIStatusInfo': {'members': [{'name': 'status',
                                                      'type': 'PKIStatus'},
                                                     {'name': 'statusString',
                                                      'optional': True,
                                                      'type': 'PKIFreeText'},
                                                     {'name': 'failInfo',
                                                      'optional': True,
                                                      'type': 'PKIFailureInfo'}],
                                         'type': 'SEQUENCE'},
                       'POPODecKeyChallContent': {'element': {'type': 'Challenge'},
                                                  'type': 'SEQUENCE OF'},
                       'POPODecKeyRespContent': {'element': {'type': 'INTEGER'},
                                                 'type': 'SEQUENCE OF'},
                       'PollRepContent': {'element': {'members': [{'name': 'certReqId',
                                                                   'type': 'INTEGER'},
                                                                  {'name': 'checkAfter',
                                                                   'type': 'INTEGER'},
                                                                  {'name': 'reason',
                                                                   'optional': True,
                                                                   'type': 'PKIFreeText'}],
                                                      'type': 'SEQUENCE'},
                                          'type': 'SEQUENCE OF'},
                       'PollReqContent': {'element': {'members': [{'name': 'certReqId',
                                                                   'type': 'INTEGER'}],
                                                      'type': 'SEQUENCE'},
                                          'type': 'SEQUENCE OF'},
                       'ProtectedPart': {'members': [{'name': 'header',
                                                      'type': 'PKIHeader'},
                                                     {'name': 'body',
                                                      'type': 'PKIBody'}],
                                         'type': 'SEQUENCE'},
                       'RevAnnContent': {'members': [{'name': 'status',
                                                      'type': 'PKIStatus'},
                                                     {'name': 'certId',
                                                      'type': 'CertId'},
                                                     {'name': 'willBeRevokedAt',
                                                      'type': 'GeneralizedTime'},
                                                     {'name': 'badSinceDate',
                                                      'type': 'GeneralizedTime'},
                                                     {'name': 'crlDetails',
                                                      'optional': True,
                                                      'type': 'Extensions'}],
                                         'type': 'SEQUENCE'},
                       'RevDetails': {'members': [{'name': 'certDetails',
                                                   'type': 'CertTemplate'},
                                                  {'name': 'crlEntryDetails',
                                                   'optional': True,
                                                   'type': 'Extensions'}],
                                      'type': 'SEQUENCE'},
                       'RevRepContent': {'members': [{'element': {'type': 'PKIStatusInfo'},
                                                      'name': 'status',
                                                      'size': [(1, 'MAX')],
                                                      'type': 'SEQUENCE OF'},
                                                     {'element': {'type': 'CertId'},
                                                      'name': 'revCerts',
                                                      'optional': True,
                                                      'size': [(1, 'MAX')],
                                                      'tag': {'number': 0},
                                                      'type': 'SEQUENCE OF'},
                                                     {'element': {'type': 'CertificateList'},
                                                      'name': 'crls',
                                                      'optional': True,
                                                      'size': [(1, 'MAX')],
                                                      'tag': {'number': 1},
                                                      'type': 'SEQUENCE OF'}],
                                         'type': 'SEQUENCE'},
                       'RevReqContent': {'element': {'type': 'RevDetails'},
                                         'type': 'SEQUENCE OF'}},
             'values': {'id-DHBasedMac': {'type': 'OBJECT IDENTIFIER',
                                          'value': [1,
                                                    2,
                                                    840,
                                                    113533,
                                                    7,
                                                    66,
                                                    30]},
                        'id-PasswordBasedMac': {'type': 'OBJECT IDENTIFIER',
                                                'value': [1,
                                                          2,
                                                          840,
                                                          113533,
                                                          7,
                                                          66,
                                                          13]}}}}