# -*- coding: UTF-8 -*-
# Code automatically generated by pycrate_asn1c

from pycrate_asn1rt.utils            import *
from pycrate_asn1rt.err              import *
from pycrate_asn1rt.glob             import make_GLOBAL, GLOBAL
from pycrate_asn1rt.dictobj          import ASN1Dict
from pycrate_asn1rt.refobj           import *
from pycrate_asn1rt.setobj           import *
from pycrate_asn1rt.asnobj_basic     import *
from pycrate_asn1rt.asnobj_str       import *
from pycrate_asn1rt.asnobj_construct import *
from pycrate_asn1rt.asnobj_class     import *
from pycrate_asn1rt.asnobj_ext       import *
from pycrate_asn1rt.init             import init_modules

class NIST_HASH:

    _name_  = u'NIST-HASH'
    _oid_   = [2, 16, 840, 1, 101, 3, 4, 2]
    
    _obj_ = [
        u'nistAlgorithms',
        u'hashAlgs',
        u'id-sha256',
        u'id-sha384',
        u'id-sha512',
        u'id-sha224',
        u'id-sha512-224',
        u'id-sha512-256',
        u'id-sha3-224',
        u'id-sha3-256',
        u'id-sha3-384',
        u'id-sha3-512',
        u'id-shake128',
        u'id-shake256',
        u'id-hmacWithSHA3-224',
        u'id-hmacWithSHA3-256',
        u'id-hmacWithSHA3-384',
        u'id-hmacWithSHA3-512',
        ]
    _type_ = [
        ]
    _set_ = [
        ]
    _val_ = [
        u'nistAlgorithms',
        u'hashAlgs',
        u'id-sha256',
        u'id-sha384',
        u'id-sha512',
        u'id-sha224',
        u'id-sha512-224',
        u'id-sha512-256',
        u'id-sha3-224',
        u'id-sha3-256',
        u'id-sha3-384',
        u'id-sha3-512',
        u'id-shake128',
        u'id-shake256',
        u'id-hmacWithSHA3-224',
        u'id-hmacWithSHA3-256',
        u'id-hmacWithSHA3-384',
        u'id-hmacWithSHA3-512',
        ]
    _class_ = [
        ]
    _param_ = [
        ]
    
    #-----< nistAlgorithms >-----#
    nistAlgorithms = OID(name=u'nistAlgorithms', mode=MODE_VALUE)
    nistAlgorithms._val = (2, 16, 840, 1, 101, 3, 4)
    
    #-----< hashAlgs >-----#
    hashAlgs = OID(name=u'hashAlgs', mode=MODE_VALUE)
    hashAlgs._val = (2, 16, 840, 1, 101, 3, 4, 2)
    
    #-----< id-sha256 >-----#
    id_sha256 = OID(name=u'id-sha256', mode=MODE_VALUE)
    id_sha256._val = (2, 16, 840, 1, 101, 3, 4, 2, 1)
    
    #-----< id-sha384 >-----#
    id_sha384 = OID(name=u'id-sha384', mode=MODE_VALUE)
    id_sha384._val = (2, 16, 840, 1, 101, 3, 4, 2, 2)
    
    #-----< id-sha512 >-----#
    id_sha512 = OID(name=u'id-sha512', mode=MODE_VALUE)
    id_sha512._val = (2, 16, 840, 1, 101, 3, 4, 2, 3)
    
    #-----< id-sha224 >-----#
    id_sha224 = OID(name=u'id-sha224', mode=MODE_VALUE)
    id_sha224._val = (2, 16, 840, 1, 101, 3, 4, 2, 4)
    
    #-----< id-sha512-224 >-----#
    id_sha512_224 = OID(name=u'id-sha512-224', mode=MODE_VALUE)
    id_sha512_224._val = (2, 16, 840, 1, 101, 3, 4, 2, 5)
    
    #-----< id-sha512-256 >-----#
    id_sha512_256 = OID(name=u'id-sha512-256', mode=MODE_VALUE)
    id_sha512_256._val = (2, 16, 840, 1, 101, 3, 4, 2, 6)
    
    #-----< id-sha3-224 >-----#
    id_sha3_224 = OID(name=u'id-sha3-224', mode=MODE_VALUE)
    id_sha3_224._val = (2, 16, 840, 1, 101, 3, 4, 2, 7)
    
    #-----< id-sha3-256 >-----#
    id_sha3_256 = OID(name=u'id-sha3-256', mode=MODE_VALUE)
    id_sha3_256._val = (2, 16, 840, 1, 101, 3, 4, 2, 8)
    
    #-----< id-sha3-384 >-----#
    id_sha3_384 = OID(name=u'id-sha3-384', mode=MODE_VALUE)
    id_sha3_384._val = (2, 16, 840, 1, 101, 3, 4, 2, 9)
    
    #-----< id-sha3-512 >-----#
    id_sha3_512 = OID(name=u'id-sha3-512', mode=MODE_VALUE)
    id_sha3_512._val = (2, 16, 840, 1, 101, 3, 4, 2, 10)
    
    #-----< id-shake128 >-----#
    id_shake128 = OID(name=u'id-shake128', mode=MODE_VALUE)
    id_shake128._val = (2, 16, 840, 1, 101, 3, 4, 2, 11)
    
    #-----< id-shake256 >-----#
    id_shake256 = OID(name=u'id-shake256', mode=MODE_VALUE)
    id_shake256._val = (2, 16, 840, 1, 101, 3, 4, 2, 12)
    
    #-----< id-hmacWithSHA3-224 >-----#
    id_hmacWithSHA3_224 = OID(name=u'id-hmacWithSHA3-224', mode=MODE_VALUE)
    id_hmacWithSHA3_224._val = (2, 16, 840, 1, 101, 3, 4, 2, 13)
    
    #-----< id-hmacWithSHA3-256 >-----#
    id_hmacWithSHA3_256 = OID(name=u'id-hmacWithSHA3-256', mode=MODE_VALUE)
    id_hmacWithSHA3_256._val = (2, 16, 840, 1, 101, 3, 4, 2, 14)
    
    #-----< id-hmacWithSHA3-384 >-----#
    id_hmacWithSHA3_384 = OID(name=u'id-hmacWithSHA3-384', mode=MODE_VALUE)
    id_hmacWithSHA3_384._val = (2, 16, 840, 1, 101, 3, 4, 2, 15)
    
    #-----< id-hmacWithSHA3-512 >-----#
    id_hmacWithSHA3_512 = OID(name=u'id-hmacWithSHA3-512', mode=MODE_VALUE)
    id_hmacWithSHA3_512._val = (2, 16, 840, 1, 101, 3, 4, 2, 16)
    
    _all_ = [
        nistAlgorithms,
        hashAlgs,
        id_sha256,
        id_sha384,
        id_sha512,
        id_sha224,
        id_sha512_224,
        id_sha512_256,
        id_sha3_224,
        id_sha3_256,
        id_sha3_384,
        id_sha3_512,
        id_shake128,
        id_shake256,
        id_hmacWithSHA3_224,
        id_hmacWithSHA3_256,
        id_hmacWithSHA3_384,
        id_hmacWithSHA3_512,
    ]

class PKCS_1:

    _name_  = u'PKCS-1'
    _oid_   = [1, 2, 840, 113549, 1, 1, 0, 1]
    
    _obj_ = [
        u'pkcs-1',
        u'rsaEncryption',
        u'id-RSAES-OAEP',
        u'id-pSpecified',
        u'id-RSASSA-PSS',
        u'md2WithRSAEncryption',
        u'md5WithRSAEncryption',
        u'sha1WithRSAEncryption',
        u'sha256WithRSAEncryption',
        u'sha384WithRSAEncryption',
        u'sha512WithRSAEncryption',
        u'id-sha1',
        u'id-md2',
        u'id-md5',
        u'id-mgf1',
        u'ALGORITHM-IDENTIFIER',
        u'AlgorithmIdentifier',
        u'OAEP-PSSDigestAlgorithms',
        u'PKCS1-v1-5DigestAlgorithms',
        u'sha1',
        u'HashAlgorithm',
        u'SHA1Parameters',
        u'PKCS1MGFAlgorithms',
        u'mgf1SHA1',
        u'MaskGenAlgorithm',
        u'PKCS1PSourceAlgorithms',
        u'EncodingParameters',
        u'pSpecifiedEmpty',
        u'PSourceAlgorithm',
        u'emptyString',
        u'PKCS1Algorithms',
        u'RSAPublicKey',
        u'RSAPrivateKey',
        u'Version',
        u'OtherPrimeInfos',
        u'OtherPrimeInfo',
        u'RSAES-OAEP-params',
        u'rSAES-OAEP-Default-Identifier',
        u'RSAES-AlgorithmIdentifier',
        u'RSASSA-PSS-params',
        u'TrailerField',
        u'rSASSA-PSS-Default-Identifier',
        u'RSASSA-AlgorithmIdentifier',
        u'DigestInfo',
        u'DigestAlgorithm',
        ]
    _type_ = [
        u'ALGORITHM-IDENTIFIER',
        u'AlgorithmIdentifier',
        u'HashAlgorithm',
        u'SHA1Parameters',
        u'MaskGenAlgorithm',
        u'EncodingParameters',
        u'PSourceAlgorithm',
        u'RSAPublicKey',
        u'RSAPrivateKey',
        u'Version',
        u'OtherPrimeInfos',
        u'OtherPrimeInfo',
        u'RSAES-OAEP-params',
        u'RSAES-AlgorithmIdentifier',
        u'RSASSA-PSS-params',
        u'TrailerField',
        u'RSASSA-AlgorithmIdentifier',
        u'DigestInfo',
        u'DigestAlgorithm',
        ]
    _set_ = [
        u'OAEP-PSSDigestAlgorithms',
        u'PKCS1-v1-5DigestAlgorithms',
        u'PKCS1MGFAlgorithms',
        u'PKCS1PSourceAlgorithms',
        u'PKCS1Algorithms',
        ]
    _val_ = [
        u'pkcs-1',
        u'rsaEncryption',
        u'id-RSAES-OAEP',
        u'id-pSpecified',
        u'id-RSASSA-PSS',
        u'md2WithRSAEncryption',
        u'md5WithRSAEncryption',
        u'sha1WithRSAEncryption',
        u'sha256WithRSAEncryption',
        u'sha384WithRSAEncryption',
        u'sha512WithRSAEncryption',
        u'id-sha1',
        u'id-md2',
        u'id-md5',
        u'id-mgf1',
        u'sha1',
        u'mgf1SHA1',
        u'pSpecifiedEmpty',
        u'emptyString',
        u'rSAES-OAEP-Default-Identifier',
        u'rSASSA-PSS-Default-Identifier',
        ]
    _class_ = [
        u'ALGORITHM-IDENTIFIER',
        u'OAEP-PSSDigestAlgorithms',
        u'PKCS1-v1-5DigestAlgorithms',
        u'PKCS1MGFAlgorithms',
        u'PKCS1PSourceAlgorithms',
        u'PKCS1Algorithms',
        ]
    _param_ = [
        u'AlgorithmIdentifier',
        ]
    
    #-----< pkcs-1 >-----#
    pkcs_1 = OID(name=u'pkcs-1', mode=MODE_VALUE)
    pkcs_1._val = (1, 2, 840, 113549, 1, 1)
    
    #-----< rsaEncryption >-----#
    rsaEncryption = OID(name=u'rsaEncryption', mode=MODE_VALUE)
    rsaEncryption._val = (1, 2, 840, 113549, 1, 1, 1)
    
    #-----< id-RSAES-OAEP >-----#
    id_RSAES_OAEP = OID(name=u'id-RSAES-OAEP', mode=MODE_VALUE)
    id_RSAES_OAEP._val = (1, 2, 840, 113549, 1, 1, 7)
    
    #-----< id-pSpecified >-----#
    id_pSpecified = OID(name=u'id-pSpecified', mode=MODE_VALUE)
    id_pSpecified._val = (1, 2, 840, 113549, 1, 1, 9)
    
    #-----< id-RSASSA-PSS >-----#
    id_RSASSA_PSS = OID(name=u'id-RSASSA-PSS', mode=MODE_VALUE)
    id_RSASSA_PSS._val = (1, 2, 840, 113549, 1, 1, 10)
    
    #-----< md2WithRSAEncryption >-----#
    md2WithRSAEncryption = OID(name=u'md2WithRSAEncryption', mode=MODE_VALUE)
    md2WithRSAEncryption._val = (1, 2, 840, 113549, 1, 1, 2)
    
    #-----< md5WithRSAEncryption >-----#
    md5WithRSAEncryption = OID(name=u'md5WithRSAEncryption', mode=MODE_VALUE)
    md5WithRSAEncryption._val = (1, 2, 840, 113549, 1, 1, 4)
    
    #-----< sha1WithRSAEncryption >-----#
    sha1WithRSAEncryption = OID(name=u'sha1WithRSAEncryption', mode=MODE_VALUE)
    sha1WithRSAEncryption._val = (1, 2, 840, 113549, 1, 1, 5)
    
    #-----< sha256WithRSAEncryption >-----#
    sha256WithRSAEncryption = OID(name=u'sha256WithRSAEncryption', mode=MODE_VALUE)
    sha256WithRSAEncryption._val = (1, 2, 840, 113549, 1, 1, 11)
    
    #-----< sha384WithRSAEncryption >-----#
    sha384WithRSAEncryption = OID(name=u'sha384WithRSAEncryption', mode=MODE_VALUE)
    sha384WithRSAEncryption._val = (1, 2, 840, 113549, 1, 1, 12)
    
    #-----< sha512WithRSAEncryption >-----#
    sha512WithRSAEncryption = OID(name=u'sha512WithRSAEncryption', mode=MODE_VALUE)
    sha512WithRSAEncryption._val = (1, 2, 840, 113549, 1, 1, 13)
    
    #-----< id-sha1 >-----#
    id_sha1 = OID(name=u'id-sha1', mode=MODE_VALUE)
    id_sha1._val = (1, 3, 14, 3, 2, 26)
    
    #-----< id-md2 >-----#
    id_md2 = OID(name=u'id-md2', mode=MODE_VALUE)
    id_md2._val = (1, 2, 840, 113549, 2, 2)
    
    #-----< id-md5 >-----#
    id_md5 = OID(name=u'id-md5', mode=MODE_VALUE)
    id_md5._val = (1, 2, 840, 113549, 2, 5)
    
    #-----< id-mgf1 >-----#
    id_mgf1 = OID(name=u'id-mgf1', mode=MODE_VALUE)
    id_mgf1._val = (1, 2, 840, 113549, 1, 1, 8)
    
    #-----< ALGORITHM-IDENTIFIER >-----#
    ALGORITHM_IDENTIFIER = CLASS(name=u'ALGORITHM-IDENTIFIER', mode=MODE_TYPE)
    _ALGORITHM_IDENTIFIER_id = OID(name=u'id', mode=MODE_VALUE, uniq=True)
    _ALGORITHM_IDENTIFIER_Type = OPEN(name=u'Type', mode=MODE_TYPE, opt=True)
    ALGORITHM_IDENTIFIER._cont = ASN1Dict([
        (u'id', _ALGORITHM_IDENTIFIER_id),
        (u'Type', _ALGORITHM_IDENTIFIER_Type),
        ])
    
    #-----< AlgorithmIdentifier >-----#
    AlgorithmIdentifier = SEQ(name=u'AlgorithmIdentifier', mode=MODE_TYPE, param=True)
    
    #-----< OAEP-PSSDigestAlgorithms >-----#
    OAEP_PSSDigestAlgorithms = CLASS(name=u'OAEP-PSSDigestAlgorithms', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    _OAEP_PSSDigestAlgorithms_val_Type_0 = NULL(name=u'Type', mode=MODE_TYPE)
    _OAEP_PSSDigestAlgorithms_val_Type_1 = NULL(name=u'Type', mode=MODE_TYPE)
    _OAEP_PSSDigestAlgorithms_val_Type_2 = NULL(name=u'Type', mode=MODE_TYPE)
    _OAEP_PSSDigestAlgorithms_val_Type_3 = NULL(name=u'Type', mode=MODE_TYPE)
    OAEP_PSSDigestAlgorithms._val = ASN1Set(rv=[dict([(u'id', (1, 3, 14, 3, 2, 26)), (u'Type', _OAEP_PSSDigestAlgorithms_val_Type_0)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 1)), (u'Type', _OAEP_PSSDigestAlgorithms_val_Type_1)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 2)), (u'Type', _OAEP_PSSDigestAlgorithms_val_Type_2)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 3)), (u'Type', _OAEP_PSSDigestAlgorithms_val_Type_3)])], rr=[], ev=[], er=[])
    
    #-----< PKCS1-v1-5DigestAlgorithms >-----#
    PKCS1_v1_5DigestAlgorithms = CLASS(name=u'PKCS1-v1-5DigestAlgorithms', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    _PKCS1_v1_5DigestAlgorithms_val_Type_0 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1_v1_5DigestAlgorithms_val_Type_1 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1_v1_5DigestAlgorithms_val_Type_2 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1_v1_5DigestAlgorithms_val_Type_3 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1_v1_5DigestAlgorithms_val_Type_4 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1_v1_5DigestAlgorithms_val_Type_5 = NULL(name=u'Type', mode=MODE_TYPE)
    PKCS1_v1_5DigestAlgorithms._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 2, 2)), (u'Type', _PKCS1_v1_5DigestAlgorithms_val_Type_0)]), dict([(u'id', (1, 2, 840, 113549, 2, 5)), (u'Type', _PKCS1_v1_5DigestAlgorithms_val_Type_1)]), dict([(u'id', (1, 3, 14, 3, 2, 26)), (u'Type', _PKCS1_v1_5DigestAlgorithms_val_Type_2)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 1)), (u'Type', _PKCS1_v1_5DigestAlgorithms_val_Type_3)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 2)), (u'Type', _PKCS1_v1_5DigestAlgorithms_val_Type_4)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 3)), (u'Type', _PKCS1_v1_5DigestAlgorithms_val_Type_5)])], rr=[], ev=None, er=[])
    
    #-----< sha1 >-----#
    sha1 = SEQ(name=u'sha1', mode=MODE_VALUE, typeref=ASN1RefType(('PKCS-1', 'HashAlgorithm')))
    _parameters_val = NULL(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'SHA1Parameters')))
    sha1._val = dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))])
    
    #-----< HashAlgorithm >-----#
    HashAlgorithm = SEQ(name=u'HashAlgorithm', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'AlgorithmIdentifier')))
    _HashAlgorithm_algorithm = OID(name=u'algorithm', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'id']))
    __HashAlgorithm_algorithm_tab = CLASS(name='_tab_ALGORITHM-IDENTIFIER', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    ___HashAlgorithm_algorithm_tab_val_Type_0 = NULL(name=u'Type', mode=MODE_TYPE)
    ___HashAlgorithm_algorithm_tab_val_Type_1 = NULL(name=u'Type', mode=MODE_TYPE)
    ___HashAlgorithm_algorithm_tab_val_Type_2 = NULL(name=u'Type', mode=MODE_TYPE)
    ___HashAlgorithm_algorithm_tab_val_Type_3 = NULL(name=u'Type', mode=MODE_TYPE)
    __HashAlgorithm_algorithm_tab._val = ASN1Set(rv=[dict([(u'id', (1, 3, 14, 3, 2, 26)), (u'Type', ___HashAlgorithm_algorithm_tab_val_Type_0)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 1)), (u'Type', ___HashAlgorithm_algorithm_tab_val_Type_1)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 2)), (u'Type', ___HashAlgorithm_algorithm_tab_val_Type_2)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 3)), (u'Type', ___HashAlgorithm_algorithm_tab_val_Type_3)])], rr=[], ev=None, er=[])
    _HashAlgorithm_algorithm._const_tab = __HashAlgorithm_algorithm_tab
    _HashAlgorithm_algorithm._const_tab_at = None
    _HashAlgorithm_algorithm._const_tab_id = u'id'
    _HashAlgorithm_parameters = OPEN(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'Type']), opt=True)
    _HashAlgorithm_parameters._const_tab = __HashAlgorithm_algorithm_tab
    _HashAlgorithm_parameters._const_tab_at = ('..', u'algorithm')
    _HashAlgorithm_parameters._const_tab_id = u'Type'
    HashAlgorithm._cont = ASN1Dict([
        (u'algorithm', _HashAlgorithm_algorithm),
        (u'parameters', _HashAlgorithm_parameters),
        ])
    HashAlgorithm._ext = None
    
    #-----< SHA1Parameters >-----#
    SHA1Parameters = NULL(name=u'SHA1Parameters', mode=MODE_TYPE)
    
    #-----< PKCS1MGFAlgorithms >-----#
    PKCS1MGFAlgorithms = CLASS(name=u'PKCS1MGFAlgorithms', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    _PKCS1MGFAlgorithms_val_Type_0 = SEQ(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'HashAlgorithm')))
    PKCS1MGFAlgorithms._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 1, 1, 8)), (u'Type', _PKCS1MGFAlgorithms_val_Type_0)])], rr=[], ev=[], er=[])
    
    #-----< mgf1SHA1 >-----#
    mgf1SHA1 = SEQ(name=u'mgf1SHA1', mode=MODE_VALUE, typeref=ASN1RefType(('PKCS-1', 'MaskGenAlgorithm')))
    _parameters_val_0 = SEQ(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'HashAlgorithm')))
    mgf1SHA1._val = dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 8)), (u'parameters', (_parameters_val_0, dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))])))])
    
    #-----< MaskGenAlgorithm >-----#
    MaskGenAlgorithm = SEQ(name=u'MaskGenAlgorithm', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'AlgorithmIdentifier')))
    _MaskGenAlgorithm_algorithm = OID(name=u'algorithm', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'id']))
    __MaskGenAlgorithm_algorithm_tab = CLASS(name='_tab_ALGORITHM-IDENTIFIER', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    ___MaskGenAlgorithm_algorithm_tab_val_Type_0 = SEQ(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'HashAlgorithm')))
    __MaskGenAlgorithm_algorithm_tab._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 1, 1, 8)), (u'Type', ___MaskGenAlgorithm_algorithm_tab_val_Type_0)])], rr=[], ev=None, er=[])
    _MaskGenAlgorithm_algorithm._const_tab = __MaskGenAlgorithm_algorithm_tab
    _MaskGenAlgorithm_algorithm._const_tab_at = None
    _MaskGenAlgorithm_algorithm._const_tab_id = u'id'
    _MaskGenAlgorithm_parameters = OPEN(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'Type']), opt=True)
    _MaskGenAlgorithm_parameters._const_tab = __MaskGenAlgorithm_algorithm_tab
    _MaskGenAlgorithm_parameters._const_tab_at = ('..', u'algorithm')
    _MaskGenAlgorithm_parameters._const_tab_id = u'Type'
    MaskGenAlgorithm._cont = ASN1Dict([
        (u'algorithm', _MaskGenAlgorithm_algorithm),
        (u'parameters', _MaskGenAlgorithm_parameters),
        ])
    MaskGenAlgorithm._ext = None
    
    #-----< PKCS1PSourceAlgorithms >-----#
    PKCS1PSourceAlgorithms = CLASS(name=u'PKCS1PSourceAlgorithms', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    _PKCS1PSourceAlgorithms_val_Type_0 = OCT_STR(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'EncodingParameters')))
    PKCS1PSourceAlgorithms._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 1, 1, 9)), (u'Type', _PKCS1PSourceAlgorithms_val_Type_0)])], rr=[], ev=[], er=[])
    
    #-----< EncodingParameters >-----#
    EncodingParameters = OCT_STR(name=u'EncodingParameters', mode=MODE_TYPE)
    EncodingParameters._const_sz = ASN1Set(rv=[], rr=[ASN1RangeInt(lb=0, ub=None)], ev=None, er=[])
    
    #-----< pSpecifiedEmpty >-----#
    pSpecifiedEmpty = SEQ(name=u'pSpecifiedEmpty', mode=MODE_VALUE, typeref=ASN1RefType(('PKCS-1', 'PSourceAlgorithm')))
    _parameters_val_1 = OCT_STR(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'EncodingParameters')))
    pSpecifiedEmpty._val = dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 9)), (u'parameters', (_parameters_val_1, b''))])
    
    #-----< PSourceAlgorithm >-----#
    PSourceAlgorithm = SEQ(name=u'PSourceAlgorithm', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'AlgorithmIdentifier')))
    _PSourceAlgorithm_algorithm = OID(name=u'algorithm', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'id']))
    __PSourceAlgorithm_algorithm_tab = CLASS(name='_tab_ALGORITHM-IDENTIFIER', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    ___PSourceAlgorithm_algorithm_tab_val_Type_0 = OCT_STR(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'EncodingParameters')))
    __PSourceAlgorithm_algorithm_tab._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 1, 1, 9)), (u'Type', ___PSourceAlgorithm_algorithm_tab_val_Type_0)])], rr=[], ev=None, er=[])
    _PSourceAlgorithm_algorithm._const_tab = __PSourceAlgorithm_algorithm_tab
    _PSourceAlgorithm_algorithm._const_tab_at = None
    _PSourceAlgorithm_algorithm._const_tab_id = u'id'
    _PSourceAlgorithm_parameters = OPEN(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'Type']), opt=True)
    _PSourceAlgorithm_parameters._const_tab = __PSourceAlgorithm_algorithm_tab
    _PSourceAlgorithm_parameters._const_tab_at = ('..', u'algorithm')
    _PSourceAlgorithm_parameters._const_tab_id = u'Type'
    PSourceAlgorithm._cont = ASN1Dict([
        (u'algorithm', _PSourceAlgorithm_algorithm),
        (u'parameters', _PSourceAlgorithm_parameters),
        ])
    PSourceAlgorithm._ext = None
    
    #-----< emptyString >-----#
    emptyString = OCT_STR(name=u'emptyString', mode=MODE_VALUE, typeref=ASN1RefType(('PKCS-1', 'EncodingParameters')))
    emptyString._val = b''
    
    #-----< PKCS1Algorithms >-----#
    PKCS1Algorithms = CLASS(name=u'PKCS1Algorithms', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    _PKCS1Algorithms_val_Type_0 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1Algorithms_val_Type_1 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1Algorithms_val_Type_2 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1Algorithms_val_Type_3 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1Algorithms_val_Type_4 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1Algorithms_val_Type_5 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1Algorithms_val_Type_6 = NULL(name=u'Type', mode=MODE_TYPE)
    _PKCS1Algorithms_val_Type_7 = SEQ(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'RSAES-OAEP-params')))
    _PKCS1Algorithms_val_Type_8 = OCT_STR(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'EncodingParameters')))
    _PKCS1Algorithms_val_Type_9 = SEQ(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'RSASSA-PSS-params')))
    PKCS1Algorithms._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 1, 1, 1)), (u'Type', _PKCS1Algorithms_val_Type_0)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 2)), (u'Type', _PKCS1Algorithms_val_Type_1)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 4)), (u'Type', _PKCS1Algorithms_val_Type_2)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 5)), (u'Type', _PKCS1Algorithms_val_Type_3)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 11)), (u'Type', _PKCS1Algorithms_val_Type_4)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 12)), (u'Type', _PKCS1Algorithms_val_Type_5)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 13)), (u'Type', _PKCS1Algorithms_val_Type_6)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 7)), (u'Type', _PKCS1Algorithms_val_Type_7)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 9)), (u'Type', _PKCS1Algorithms_val_Type_8)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 10)), (u'Type', _PKCS1Algorithms_val_Type_9)])], rr=[], ev=[], er=[])
    
    #-----< RSAPublicKey >-----#
    RSAPublicKey = SEQ(name=u'RSAPublicKey', mode=MODE_TYPE)
    _RSAPublicKey_modulus = INT(name=u'modulus', mode=MODE_TYPE)
    _RSAPublicKey_publicExponent = INT(name=u'publicExponent', mode=MODE_TYPE)
    RSAPublicKey._cont = ASN1Dict([
        (u'modulus', _RSAPublicKey_modulus),
        (u'publicExponent', _RSAPublicKey_publicExponent),
        ])
    RSAPublicKey._ext = None
    
    #-----< RSAPrivateKey >-----#
    RSAPrivateKey = SEQ(name=u'RSAPrivateKey', mode=MODE_TYPE)
    _RSAPrivateKey_version = INT(name=u'version', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'Version')))
    _RSAPrivateKey_modulus = INT(name=u'modulus', mode=MODE_TYPE)
    _RSAPrivateKey_publicExponent = INT(name=u'publicExponent', mode=MODE_TYPE)
    _RSAPrivateKey_privateExponent = INT(name=u'privateExponent', mode=MODE_TYPE)
    _RSAPrivateKey_prime1 = INT(name=u'prime1', mode=MODE_TYPE)
    _RSAPrivateKey_prime2 = INT(name=u'prime2', mode=MODE_TYPE)
    _RSAPrivateKey_exponent1 = INT(name=u'exponent1', mode=MODE_TYPE)
    _RSAPrivateKey_exponent2 = INT(name=u'exponent2', mode=MODE_TYPE)
    _RSAPrivateKey_coefficient = INT(name=u'coefficient', mode=MODE_TYPE)
    _RSAPrivateKey_otherPrimeInfos = SEQ_OF(name=u'otherPrimeInfos', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'OtherPrimeInfos')), opt=True)
    RSAPrivateKey._cont = ASN1Dict([
        (u'version', _RSAPrivateKey_version),
        (u'modulus', _RSAPrivateKey_modulus),
        (u'publicExponent', _RSAPrivateKey_publicExponent),
        (u'privateExponent', _RSAPrivateKey_privateExponent),
        (u'prime1', _RSAPrivateKey_prime1),
        (u'prime2', _RSAPrivateKey_prime2),
        (u'exponent1', _RSAPrivateKey_exponent1),
        (u'exponent2', _RSAPrivateKey_exponent2),
        (u'coefficient', _RSAPrivateKey_coefficient),
        (u'otherPrimeInfos', _RSAPrivateKey_otherPrimeInfos),
        ])
    RSAPrivateKey._ext = None
    
    #-----< Version >-----#
    Version = INT(name=u'Version', mode=MODE_TYPE)
    Version._cont = ASN1Dict([(u'two-prime', 0), (u'multi', 1)])
    
    #-----< OtherPrimeInfos >-----#
    OtherPrimeInfos = SEQ_OF(name=u'OtherPrimeInfos', mode=MODE_TYPE)
    _OtherPrimeInfos__item_ = SEQ(name='_item_', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'OtherPrimeInfo')))
    OtherPrimeInfos._cont = _OtherPrimeInfos__item_
    OtherPrimeInfos._const_sz = ASN1Set(rv=[], rr=[ASN1RangeInt(lb=1, ub=None)], ev=None, er=[])
    
    #-----< OtherPrimeInfo >-----#
    OtherPrimeInfo = SEQ(name=u'OtherPrimeInfo', mode=MODE_TYPE)
    _OtherPrimeInfo_prime = INT(name=u'prime', mode=MODE_TYPE)
    _OtherPrimeInfo_exponent = INT(name=u'exponent', mode=MODE_TYPE)
    _OtherPrimeInfo_coefficient = INT(name=u'coefficient', mode=MODE_TYPE)
    OtherPrimeInfo._cont = ASN1Dict([
        (u'prime', _OtherPrimeInfo_prime),
        (u'exponent', _OtherPrimeInfo_exponent),
        (u'coefficient', _OtherPrimeInfo_coefficient),
        ])
    OtherPrimeInfo._ext = None
    
    #-----< RSAES-OAEP-params >-----#
    RSAES_OAEP_params = SEQ(name=u'RSAES-OAEP-params', mode=MODE_TYPE)
    _RSAES_OAEP_params_hashAlgorithm = SEQ(name=u'hashAlgorithm', mode=MODE_TYPE, tag=(0, TAG_CONTEXT_SPEC, TAG_EXPLICIT), typeref=ASN1RefType(('PKCS-1', 'HashAlgorithm')), default=dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))]))
    _RSAES_OAEP_params_maskGenAlgorithm = SEQ(name=u'maskGenAlgorithm', mode=MODE_TYPE, tag=(1, TAG_CONTEXT_SPEC, TAG_EXPLICIT), typeref=ASN1RefType(('PKCS-1', 'MaskGenAlgorithm')), default=dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 8)), (u'parameters', (_parameters_val_0, dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))])))]))
    _RSAES_OAEP_params_pSourceAlgorithm = SEQ(name=u'pSourceAlgorithm', mode=MODE_TYPE, tag=(2, TAG_CONTEXT_SPEC, TAG_EXPLICIT), typeref=ASN1RefType(('PKCS-1', 'PSourceAlgorithm')), default=dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 9)), (u'parameters', (_parameters_val_1, b''))]))
    RSAES_OAEP_params._cont = ASN1Dict([
        (u'hashAlgorithm', _RSAES_OAEP_params_hashAlgorithm),
        (u'maskGenAlgorithm', _RSAES_OAEP_params_maskGenAlgorithm),
        (u'pSourceAlgorithm', _RSAES_OAEP_params_pSourceAlgorithm),
        ])
    RSAES_OAEP_params._ext = None
    
    #-----< rSAES-OAEP-Default-Identifier >-----#
    rSAES_OAEP_Default_Identifier = SEQ(name=u'rSAES-OAEP-Default-Identifier', mode=MODE_VALUE, typeref=ASN1RefType(('PKCS-1', 'RSAES-AlgorithmIdentifier')))
    _parameters_val_2 = SEQ(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'RSAES-OAEP-params')))
    rSAES_OAEP_Default_Identifier._val = dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 7)), (u'parameters', (_parameters_val_2, dict([(u'hashAlgorithm', dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))])), (u'maskGenAlgorithm', dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 8)), (u'parameters', (_parameters_val_0, dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))])))])), (u'pSourceAlgorithm', dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 9)), (u'parameters', (_parameters_val_1, b''))]))])))])
    
    #-----< RSAES-AlgorithmIdentifier >-----#
    RSAES_AlgorithmIdentifier = SEQ(name=u'RSAES-AlgorithmIdentifier', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'AlgorithmIdentifier')))
    _RSAES_AlgorithmIdentifier_algorithm = OID(name=u'algorithm', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'id']))
    __RSAES_AlgorithmIdentifier_algorithm_tab = CLASS(name='_tab_ALGORITHM-IDENTIFIER', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_0 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_1 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_2 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_3 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_4 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_5 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_6 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_7 = SEQ(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'RSAES-OAEP-params')))
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_8 = OCT_STR(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'EncodingParameters')))
    ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_9 = SEQ(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'RSASSA-PSS-params')))
    __RSAES_AlgorithmIdentifier_algorithm_tab._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 1, 1, 1)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_0)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 2)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_1)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 4)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_2)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 5)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_3)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 11)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_4)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 12)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_5)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 13)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_6)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 7)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_7)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 9)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_8)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 10)), (u'Type', ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_9)])], rr=[], ev=None, er=[])
    _RSAES_AlgorithmIdentifier_algorithm._const_tab = __RSAES_AlgorithmIdentifier_algorithm_tab
    _RSAES_AlgorithmIdentifier_algorithm._const_tab_at = None
    _RSAES_AlgorithmIdentifier_algorithm._const_tab_id = u'id'
    _RSAES_AlgorithmIdentifier_parameters = OPEN(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'Type']), opt=True)
    _RSAES_AlgorithmIdentifier_parameters._const_tab = __RSAES_AlgorithmIdentifier_algorithm_tab
    _RSAES_AlgorithmIdentifier_parameters._const_tab_at = ('..', u'algorithm')
    _RSAES_AlgorithmIdentifier_parameters._const_tab_id = u'Type'
    RSAES_AlgorithmIdentifier._cont = ASN1Dict([
        (u'algorithm', _RSAES_AlgorithmIdentifier_algorithm),
        (u'parameters', _RSAES_AlgorithmIdentifier_parameters),
        ])
    RSAES_AlgorithmIdentifier._ext = None
    
    #-----< RSASSA-PSS-params >-----#
    RSASSA_PSS_params = SEQ(name=u'RSASSA-PSS-params', mode=MODE_TYPE)
    _RSASSA_PSS_params_hashAlgorithm = SEQ(name=u'hashAlgorithm', mode=MODE_TYPE, tag=(0, TAG_CONTEXT_SPEC, TAG_EXPLICIT), typeref=ASN1RefType(('PKCS-1', 'HashAlgorithm')), default=dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))]))
    _RSASSA_PSS_params_maskGenAlgorithm = SEQ(name=u'maskGenAlgorithm', mode=MODE_TYPE, tag=(1, TAG_CONTEXT_SPEC, TAG_EXPLICIT), typeref=ASN1RefType(('PKCS-1', 'MaskGenAlgorithm')), default=dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 8)), (u'parameters', (_parameters_val_0, dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))])))]))
    _RSASSA_PSS_params_saltLength = INT(name=u'saltLength', mode=MODE_TYPE, tag=(2, TAG_CONTEXT_SPEC, TAG_EXPLICIT), default=20)
    _RSASSA_PSS_params_trailerField = INT(name=u'trailerField', mode=MODE_TYPE, tag=(3, TAG_CONTEXT_SPEC, TAG_EXPLICIT), typeref=ASN1RefType(('PKCS-1', 'TrailerField')), default=1)
    RSASSA_PSS_params._cont = ASN1Dict([
        (u'hashAlgorithm', _RSASSA_PSS_params_hashAlgorithm),
        (u'maskGenAlgorithm', _RSASSA_PSS_params_maskGenAlgorithm),
        (u'saltLength', _RSASSA_PSS_params_saltLength),
        (u'trailerField', _RSASSA_PSS_params_trailerField),
        ])
    RSASSA_PSS_params._ext = None
    
    #-----< TrailerField >-----#
    TrailerField = INT(name=u'TrailerField', mode=MODE_TYPE)
    TrailerField._cont = ASN1Dict([(u'trailerFieldBC', 1)])
    
    #-----< rSASSA-PSS-Default-Identifier >-----#
    rSASSA_PSS_Default_Identifier = SEQ(name=u'rSASSA-PSS-Default-Identifier', mode=MODE_VALUE, typeref=ASN1RefType(('PKCS-1', 'RSASSA-AlgorithmIdentifier')))
    _parameters_val_3 = SEQ(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'RSASSA-PSS-params')))
    rSASSA_PSS_Default_Identifier._val = dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 10)), (u'parameters', (_parameters_val_3, dict([(u'hashAlgorithm', dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))])), (u'maskGenAlgorithm', dict([(u'algorithm', (1, 2, 840, 113549, 1, 1, 8)), (u'parameters', (_parameters_val_0, dict([(u'algorithm', (1, 3, 14, 3, 2, 26)), (u'parameters', (_parameters_val, 0))])))])), (u'saltLength', 20), (u'trailerField', 1)])))])
    
    #-----< RSASSA-AlgorithmIdentifier >-----#
    RSASSA_AlgorithmIdentifier = SEQ(name=u'RSASSA-AlgorithmIdentifier', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'AlgorithmIdentifier')))
    _RSASSA_AlgorithmIdentifier_algorithm = OID(name=u'algorithm', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'id']))
    __RSASSA_AlgorithmIdentifier_algorithm_tab = CLASS(name='_tab_ALGORITHM-IDENTIFIER', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_0 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_1 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_2 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_3 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_4 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_5 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_6 = NULL(name=u'Type', mode=MODE_TYPE)
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_7 = SEQ(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'RSAES-OAEP-params')))
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_8 = OCT_STR(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'EncodingParameters')))
    ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_9 = SEQ(name=u'Type', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'RSASSA-PSS-params')))
    __RSASSA_AlgorithmIdentifier_algorithm_tab._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 1, 1, 1)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_0)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 2)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_1)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 4)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_2)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 5)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_3)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 11)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_4)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 12)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_5)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 13)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_6)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 7)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_7)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 9)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_8)]), dict([(u'id', (1, 2, 840, 113549, 1, 1, 10)), (u'Type', ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_9)])], rr=[], ev=None, er=[])
    _RSASSA_AlgorithmIdentifier_algorithm._const_tab = __RSASSA_AlgorithmIdentifier_algorithm_tab
    _RSASSA_AlgorithmIdentifier_algorithm._const_tab_at = None
    _RSASSA_AlgorithmIdentifier_algorithm._const_tab_id = u'id'
    _RSASSA_AlgorithmIdentifier_parameters = OPEN(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'Type']), opt=True)
    _RSASSA_AlgorithmIdentifier_parameters._const_tab = __RSASSA_AlgorithmIdentifier_algorithm_tab
    _RSASSA_AlgorithmIdentifier_parameters._const_tab_at = ('..', u'algorithm')
    _RSASSA_AlgorithmIdentifier_parameters._const_tab_id = u'Type'
    RSASSA_AlgorithmIdentifier._cont = ASN1Dict([
        (u'algorithm', _RSASSA_AlgorithmIdentifier_algorithm),
        (u'parameters', _RSASSA_AlgorithmIdentifier_parameters),
        ])
    RSASSA_AlgorithmIdentifier._ext = None
    
    #-----< DigestInfo >-----#
    DigestInfo = SEQ(name=u'DigestInfo', mode=MODE_TYPE)
    _DigestInfo_digestAlgorithm = SEQ(name=u'digestAlgorithm', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'DigestAlgorithm')))
    _DigestInfo_digest = OCT_STR(name=u'digest', mode=MODE_TYPE)
    DigestInfo._cont = ASN1Dict([
        (u'digestAlgorithm', _DigestInfo_digestAlgorithm),
        (u'digest', _DigestInfo_digest),
        ])
    DigestInfo._ext = None
    
    #-----< DigestAlgorithm >-----#
    DigestAlgorithm = SEQ(name=u'DigestAlgorithm', mode=MODE_TYPE, typeref=ASN1RefType(('PKCS-1', 'AlgorithmIdentifier')))
    _DigestAlgorithm_algorithm = OID(name=u'algorithm', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'id']))
    __DigestAlgorithm_algorithm_tab = CLASS(name='_tab_ALGORITHM-IDENTIFIER', mode=MODE_SET, typeref=ASN1RefType(('PKCS-1', 'ALGORITHM-IDENTIFIER')))
    ___DigestAlgorithm_algorithm_tab_val_Type_0 = NULL(name=u'Type', mode=MODE_TYPE)
    ___DigestAlgorithm_algorithm_tab_val_Type_1 = NULL(name=u'Type', mode=MODE_TYPE)
    ___DigestAlgorithm_algorithm_tab_val_Type_2 = NULL(name=u'Type', mode=MODE_TYPE)
    ___DigestAlgorithm_algorithm_tab_val_Type_3 = NULL(name=u'Type', mode=MODE_TYPE)
    ___DigestAlgorithm_algorithm_tab_val_Type_4 = NULL(name=u'Type', mode=MODE_TYPE)
    ___DigestAlgorithm_algorithm_tab_val_Type_5 = NULL(name=u'Type', mode=MODE_TYPE)
    __DigestAlgorithm_algorithm_tab._val = ASN1Set(rv=[dict([(u'id', (1, 2, 840, 113549, 2, 2)), (u'Type', ___DigestAlgorithm_algorithm_tab_val_Type_0)]), dict([(u'id', (1, 2, 840, 113549, 2, 5)), (u'Type', ___DigestAlgorithm_algorithm_tab_val_Type_1)]), dict([(u'id', (1, 3, 14, 3, 2, 26)), (u'Type', ___DigestAlgorithm_algorithm_tab_val_Type_2)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 1)), (u'Type', ___DigestAlgorithm_algorithm_tab_val_Type_3)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 2)), (u'Type', ___DigestAlgorithm_algorithm_tab_val_Type_4)]), dict([(u'id', (2, 16, 840, 1, 101, 3, 4, 2, 3)), (u'Type', ___DigestAlgorithm_algorithm_tab_val_Type_5)])], rr=[], ev=None, er=[])
    _DigestAlgorithm_algorithm._const_tab = __DigestAlgorithm_algorithm_tab
    _DigestAlgorithm_algorithm._const_tab_at = None
    _DigestAlgorithm_algorithm._const_tab_id = u'id'
    _DigestAlgorithm_parameters = OPEN(name=u'parameters', mode=MODE_TYPE, typeref=ASN1RefClassField(('PKCS-1', 'ALGORITHM-IDENTIFIER'), [u'Type']), opt=True)
    _DigestAlgorithm_parameters._const_tab = __DigestAlgorithm_algorithm_tab
    _DigestAlgorithm_parameters._const_tab_at = ('..', u'algorithm')
    _DigestAlgorithm_parameters._const_tab_id = u'Type'
    DigestAlgorithm._cont = ASN1Dict([
        (u'algorithm', _DigestAlgorithm_algorithm),
        (u'parameters', _DigestAlgorithm_parameters),
        ])
    DigestAlgorithm._ext = None
    
    _all_ = [
        pkcs_1,
        rsaEncryption,
        id_RSAES_OAEP,
        id_pSpecified,
        id_RSASSA_PSS,
        md2WithRSAEncryption,
        md5WithRSAEncryption,
        sha1WithRSAEncryption,
        sha256WithRSAEncryption,
        sha384WithRSAEncryption,
        sha512WithRSAEncryption,
        id_sha1,
        id_md2,
        id_md5,
        id_mgf1,
        _ALGORITHM_IDENTIFIER_id,
        _ALGORITHM_IDENTIFIER_Type,
        ALGORITHM_IDENTIFIER,
        OAEP_PSSDigestAlgorithms,
        _OAEP_PSSDigestAlgorithms_val_Type_0,
        _OAEP_PSSDigestAlgorithms_val_Type_1,
        _OAEP_PSSDigestAlgorithms_val_Type_2,
        _OAEP_PSSDigestAlgorithms_val_Type_3,
        PKCS1_v1_5DigestAlgorithms,
        _PKCS1_v1_5DigestAlgorithms_val_Type_0,
        _PKCS1_v1_5DigestAlgorithms_val_Type_1,
        _PKCS1_v1_5DigestAlgorithms_val_Type_2,
        _PKCS1_v1_5DigestAlgorithms_val_Type_3,
        _PKCS1_v1_5DigestAlgorithms_val_Type_4,
        _PKCS1_v1_5DigestAlgorithms_val_Type_5,
        sha1,
        _parameters_val,
        __HashAlgorithm_algorithm_tab,
        ___HashAlgorithm_algorithm_tab_val_Type_0,
        ___HashAlgorithm_algorithm_tab_val_Type_1,
        ___HashAlgorithm_algorithm_tab_val_Type_2,
        ___HashAlgorithm_algorithm_tab_val_Type_3,
        _HashAlgorithm_algorithm,
        _HashAlgorithm_parameters,
        HashAlgorithm,
        SHA1Parameters,
        PKCS1MGFAlgorithms,
        _PKCS1MGFAlgorithms_val_Type_0,
        mgf1SHA1,
        _parameters_val_0,
        __MaskGenAlgorithm_algorithm_tab,
        ___MaskGenAlgorithm_algorithm_tab_val_Type_0,
        _MaskGenAlgorithm_algorithm,
        _MaskGenAlgorithm_parameters,
        MaskGenAlgorithm,
        PKCS1PSourceAlgorithms,
        _PKCS1PSourceAlgorithms_val_Type_0,
        EncodingParameters,
        pSpecifiedEmpty,
        _parameters_val_1,
        __PSourceAlgorithm_algorithm_tab,
        ___PSourceAlgorithm_algorithm_tab_val_Type_0,
        _PSourceAlgorithm_algorithm,
        _PSourceAlgorithm_parameters,
        PSourceAlgorithm,
        emptyString,
        PKCS1Algorithms,
        _PKCS1Algorithms_val_Type_0,
        _PKCS1Algorithms_val_Type_1,
        _PKCS1Algorithms_val_Type_2,
        _PKCS1Algorithms_val_Type_3,
        _PKCS1Algorithms_val_Type_4,
        _PKCS1Algorithms_val_Type_5,
        _PKCS1Algorithms_val_Type_6,
        _PKCS1Algorithms_val_Type_7,
        _PKCS1Algorithms_val_Type_8,
        _PKCS1Algorithms_val_Type_9,
        _RSAPublicKey_modulus,
        _RSAPublicKey_publicExponent,
        RSAPublicKey,
        _RSAPrivateKey_version,
        _RSAPrivateKey_modulus,
        _RSAPrivateKey_publicExponent,
        _RSAPrivateKey_privateExponent,
        _RSAPrivateKey_prime1,
        _RSAPrivateKey_prime2,
        _RSAPrivateKey_exponent1,
        _RSAPrivateKey_exponent2,
        _RSAPrivateKey_coefficient,
        _RSAPrivateKey_otherPrimeInfos,
        RSAPrivateKey,
        Version,
        _OtherPrimeInfos__item_,
        OtherPrimeInfos,
        _OtherPrimeInfo_prime,
        _OtherPrimeInfo_exponent,
        _OtherPrimeInfo_coefficient,
        OtherPrimeInfo,
        _RSAES_OAEP_params_hashAlgorithm,
        _RSAES_OAEP_params_maskGenAlgorithm,
        _RSAES_OAEP_params_pSourceAlgorithm,
        RSAES_OAEP_params,
        rSAES_OAEP_Default_Identifier,
        _parameters_val_2,
        __RSAES_AlgorithmIdentifier_algorithm_tab,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_0,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_1,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_2,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_3,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_4,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_5,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_6,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_7,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_8,
        ___RSAES_AlgorithmIdentifier_algorithm_tab_val_Type_9,
        _RSAES_AlgorithmIdentifier_algorithm,
        _RSAES_AlgorithmIdentifier_parameters,
        RSAES_AlgorithmIdentifier,
        _RSASSA_PSS_params_hashAlgorithm,
        _RSASSA_PSS_params_maskGenAlgorithm,
        _RSASSA_PSS_params_saltLength,
        _RSASSA_PSS_params_trailerField,
        RSASSA_PSS_params,
        TrailerField,
        rSASSA_PSS_Default_Identifier,
        _parameters_val_3,
        __RSASSA_AlgorithmIdentifier_algorithm_tab,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_0,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_1,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_2,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_3,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_4,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_5,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_6,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_7,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_8,
        ___RSASSA_AlgorithmIdentifier_algorithm_tab_val_Type_9,
        _RSASSA_AlgorithmIdentifier_algorithm,
        _RSASSA_AlgorithmIdentifier_parameters,
        RSASSA_AlgorithmIdentifier,
        _DigestInfo_digestAlgorithm,
        _DigestInfo_digest,
        DigestInfo,
        __DigestAlgorithm_algorithm_tab,
        ___DigestAlgorithm_algorithm_tab_val_Type_0,
        ___DigestAlgorithm_algorithm_tab_val_Type_1,
        ___DigestAlgorithm_algorithm_tab_val_Type_2,
        ___DigestAlgorithm_algorithm_tab_val_Type_3,
        ___DigestAlgorithm_algorithm_tab_val_Type_4,
        ___DigestAlgorithm_algorithm_tab_val_Type_5,
        _DigestAlgorithm_algorithm,
        _DigestAlgorithm_parameters,
        DigestAlgorithm,
    ]

init_modules(NIST_HASH, PKCS_1)
