o
    %zhl                     @   s  d Z ddlmZmZmZmZ zddlZW n ey   dZY nw ddlm	Z	m
Z
mZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  ddl!m"Z" ddl#m$Z$ dd	l%m&Z& dd
l'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- G dd deZ.G dd deZ/G dd deZ0G dd deZ1G dd deZ2G dd deZ3G dd deZ4G dd deZ5G dd deZ6G dd deZ7G dd  d eZ8G d!d" d"eZ9G d#d$ d$eZ:G d%d& d&eZ;G d'd( d(eZ<G d)d* d*eZ=G d+d, d,eZ>G d-d. d.eZ?G d/d0 d0eZ@G d1d2 d2eZAG d3d4 d4eZBG d5d6 d6eZCG d7d8 d8eZDG d9d: d:eZEG d;d< d<eZFG d=d> d>eZGG d?d@ d@eZHG dAdB dBeZIG dCdD dDeZJG dEdF dFeZKG dGdH dHeZLG dIdJ dJeZMG dKdL dLeZNG dMdN dNeZOG dOdP dPeZPG dQdR dReZQG dSdT dTeZRG dUdV dVeZSG dWdX dXeZTG dYdZ dZeZUG d[d\ d\eZVG d]d^ d^eZWG d_d` d`eZXG dadb dbeZYG dcdd ddeZZG dedf dfeZ[G dgdh dheZ\G didj djeZ]G dkdl dleZ^G dmdn dneZ_G dodp dpeZ`G dqdr dreZaG dsdt dteZbG dudv dveZcG dwdx dxeZdG dydz dzeZeG d{d| d|eZfG d}d~ d~eZgG dd deZhG dd deZiG dd deZjG dd deZkG dd deZlG dd deZmG dd deZnG dd deZoG dd deZpG dd deZqG dd deZrG dd deZsG dd deZtG dd de	eZuG dd deZvG dd deZwG dd deZxG dd deZyG dd deZzG dd deZ{G dd deZ|G dd deZ}G dd deZ~G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG ddĄ deZG ddƄ deZG ddȄ deZG ddʄ deZG dd deZyG dd̈́ deZG ddτ deZG ddф deZG ddӄ deZG ddՄ deZeeqeeeeeeed֜	ec_eqeeeeeeedלee_e5e6e7epede9ededeed؜
e:_dS )a  
ASN.1 type classes for cryptographic message syntax (CMS). Structures are also
compatible with PKCS#7. Exports the following items:

 - AuthenticatedData()
 - AuthEnvelopedData()
 - CompressedData()
 - ContentInfo()
 - DigestedData()
 - EncryptedData()
 - EnvelopedData()
 - SignedAndEnvelopedData()
 - SignedData()

Other type classes are defined that help compose the types listed above.

Most CMS structures in the wild are formatted as ContentInfo encapsulating one of the other types.
    )unicode_literalsdivisionabsolute_importprint_functionN   )_ForceNullParametersDigestAlgorithmEncryptionAlgorithmEncryptionAlgorithmIdHmacAlgorithmKdfAlgorithmRSAESOAEPParamsSignedDigestAlgorithm)Any	BitStringChoice
EnumeratedGeneralizedTimeIntegerObjectIdentifierOctetBitStringOctetStringParsableOctetStringSequence
SequenceOfSetOfUTCTime
UTF8String)CertificateList)PublicKeyInfo)OCSPResponse)
AttributesCertificate
ExtensionsGeneralNameGeneralNamesNamec                   @   "   e Zd ZdefdefdefgZdS )ExtendedCertificateInfoversioncertificate
attributesN)__name__
__module____qualname__r   r"   r!   _fields r0   r0   I/var/www/html/kangema/venv/lib/python3.10/site-packages/asn1crypto/cms.pyr(   A   
    r(   c                   @   r'   )ExtendedCertificateextended_certificate_infosignature_algorithm	signatureN)r,   r-   r.   r(   r   r   r/   r0   r0   r0   r1   r3   I   r2   r3   c                   @      e Zd ZdddddddZdS )	
CMSVersionv0v1v2v3v4v5r   r               Nr,   r-   r.   _mapr0   r0   r0   r1   r8   W       
r8   c                   @   s&   e Zd Zddddddddd	d
d
ZdS )CMSAttributeTypecontent_typemessage_digestsigning_timecounter_signaturesmime_capabilitiesencrypt_key_prefsignature_time_stamp_tokencms_algorithm_protectionmicrosoft_nested_signaturemicrosoft_time_stamp_token)
z1.2.840.113549.1.9.3z1.2.840.113549.1.9.4z1.2.840.113549.1.9.5z1.2.840.113549.1.9.6z1.2.840.113549.1.9.15z1.2.840.113549.1.9.16.2.11z1.2.840.113549.1.9.16.2.14z1.2.840.113549.1.9.52z1.3.6.1.4.1.311.2.4.1z1.3.6.1.4.1.311.3.3.1NrD   r0   r0   r0   r1   rG   b   s    
rG   c                   @      e Zd ZdefdefgZdS )Timeutc_timegeneralized_timeN)r,   r-   r.   r   r   _alternativesr0   r0   r0   r1   rS   {       rS   c                
   @   s$   e Zd Zddddddddd	d
	ZdS )ContentTypedatasigned_dataenveloped_datasigned_and_enveloped_datadigested_dataencrypted_dataauthenticated_datacompressed_dataauthenticated_enveloped_data)	z1.2.840.113549.1.7.1z1.2.840.113549.1.7.2z1.2.840.113549.1.7.3z1.2.840.113549.1.7.4z1.2.840.113549.1.7.5z1.2.840.113549.1.7.6z1.2.840.113549.1.9.16.1.2z1.2.840.113549.1.9.16.1.9z1.2.840.113549.1.9.16.1.23NrD   r0   r0   r0   r1   rX      s    
rX   c                   @   s2   e Zd ZdefdedddfdedddfgZdS )	CMSAlgorithmProtectiondigest_algorithmr5   r   Timplicitoptionalmac_algorithmr@   N)r,   r-   r.   r   r   r   r/   r0   r0   r0   r1   rb      s
    rb   c                   @      e Zd ZeZdS )SetOfContentTypeN)r,   r-   r.   rX   _child_specr0   r0   r0   r1   ri          ri   c                   @   rh   )SetOfOctetStringN)r,   r-   r.   r   rj   r0   r0   r0   r1   rl      rk   rl   c                   @   rh   )	SetOfTimeN)r,   r-   r.   rS   rj   r0   r0   r0   r1   rm      rk   rm   c                   @   rh   )SetOfAnyN)r,   r-   r.   r   rj   r0   r0   r0   r1   rn      rk   rn   c                   @   rh   )SetOfCMSAlgorithmProtectionN)r,   r-   r.   rb   rj   r0   r0   r0   r1   ro      rk   ro   c                   @   s,   e Zd ZdefdgZi Zdd ZdeiZdS )CMSAttributetypevaluesNc                 C      | j | d jtS Nrq   
_oid_specsgetnativern   selfr0   r0   r1   _values_spec      zCMSAttribute._values_specrs   N)r,   r-   r.   rG   r/   rw   r|   _spec_callbacksr0   r0   r0   r1   rp      s    rp   c                   @   rh   )CMSAttributesN)r,   r-   r.   rp   rj   r0   r0   r0   r1   r      rk   r   c                   @   s(   e Zd ZdefdefdeddifgZdS )IssuerSerialissuerserial
issuer_uidrf   TN)r,   r-   r.   r%   r   r   r/   r0   r0   r0   r1   r      
    r   c                   @      e Zd ZdddZdS )AttCertVersionr:   r;   )r   r   NrD   r0   r0   r0   r1   r          
r   c                   @   s(   e Zd ZdeddifdeddifgZdS )AttCertSubjectbase_certificate_idexplicitr   subject_namer   N)r,   r-   r.   r   r%   rV   r0   r0   r0   r1   r          r   c                   @   s   e Zd ZdefdefgZdS )AttCertValidityPeriodnot_before_timenot_after_timeN)r,   r-   r.   r   r/   r0   r0   r0   r1   r      rW   r   c                   @   sX   e Zd Zdeddifdefdefdefdefdefd	e	fd
e
ddifdeddifg	ZdS )AttributeCertificateInfoV1r)   defaultr:   subjectr   r6   serial_numberatt_cert_validity_periodr+   issuer_unique_idrf   T
extensionsN)r,   r-   r.   r   r   r%   r   r   r   r!   r   r#   r/   r0   r0   r0   r1   r      s    r   c                   @   r'   )AttributeCertificateV1ac_infor5   r6   N)r,   r-   r.   r   r   r   r/   r0   r0   r0   r1   r      r2   r   c                   @   s   e Zd ZddddZdS )DigestedObjectType
public_keypublic_key_certother_objy_types)r   r   r@   NrD   r0   r0   r0   r1   r      s
    
r   c                   @   s.   e Zd ZdefdeddifdefdefgZdS )ObjectDigestInfodigested_object_typeother_object_type_idrf   Trc   object_digestN)r,   r-   r.   r   r   r   r   r/   r0   r0   r0   r1   r      s    r   c                   @   s:   e Zd ZdedddfdedddfdedddfgZd	S )
Holderr   r   Trd   entity_namer   object_digest_infor@   N)r,   r-   r.   r   r%   r   r/   r0   r0   r0   r1   r     s
    r   c                   @   s8   e Zd ZdeddifdedddfdedddfgZd	S )
V2Formissuer_namerf   Tr   r   r   rf   r   r   N)r,   r-   r.   r%   r   r   r/   r0   r0   r0   r1   r     
    r   c                   @   "   e Zd ZdefdeddifgZdS )AttCertIssuerv1_formv2_formre   r   N)r,   r-   r.   r%   r   rV   r0   r0   r0   r1   r         r   c                   @   r'   )IetfAttrValueoctetsoidstringN)r,   r-   r.   r   r   r   rV   r0   r0   r0   r1   r     r2   r   c                   @   rh   )IetfAttrValuesN)r,   r-   r.   r   rj   r0   r0   r0   r1   r   #  rk   r   c                   @   s$   e Zd ZdedddfdefgZdS )IetfAttrSyntaxpolicy_authorityr   Trd   rs   N)r,   r-   r.   r%   r   r/   r0   r0   r0   r1   r   '      r   c                   @   rh   )SetOfIetfAttrSyntaxN)r,   r-   r.   r   rj   r0   r0   r0   r1   r   .  rk   r   c                   @   s(   e Zd ZdefdefdeddifgZdS )SvceAuthInfoserviceident	auth_inforf   TN)r,   r-   r.   r$   r   r/   r0   r0   r0   r1   r   2  r   r   c                   @   rh   )SetOfSvceAuthInfoN)r,   r-   r.   r   rj   r0   r0   r0   r1   r   :  rk   r   c                   @   s*   e Zd ZdedddfdeddifgZdS )	
RoleSyntaxrole_authorityr   Trd   	role_namer   r   N)r,   r-   r.   r%   r$   r/   r0   r0   r0   r1   r   >  s    r   c                   @   rh   )SetOfRoleSyntaxN)r,   r-   r.   r   rj   r0   r0   r0   r1   r   E  rk   r   c                   @   r7   )		ClassListunmarkedunclassified
restrictedconfidentialsecret
top_secretr?   NrD   r0   r0   r0   r1   r   I  rF   r   c                   @   s(   e Zd ZdeddifdeddifgZdS )SecurityCategoryrq   re   r   valuer   r   Nr,   r-   r.   r   r   r/   r0   r0   r0   r1   r   T  r   r   c                   @   rh   )SetOfSecurityCategoryN)r,   r-   r.   r   rj   r0   r0   r0   r1   r   [  rk   r   c                   @   s4   e Zd ZdefdededgifdeddifgZdS )		Clearance	policy_id
class_listr   r   security_categoriesrf   TN)r,   r-   r.   r   r   setr   r/   r0   r0   r0   r1   r   _  s
    r   c                   @   rh   )SetOfClearanceN)r,   r-   r.   r   rj   r0   r0   r0   r1   r   g  rk   r   c                   @   s(   e Zd ZdefdefdeddifgZdS )BigTimemajorfractional_secondssignrf   TN)r,   r-   r.   r   r/   r0   r0   r0   r1   r   k  r   r   c                   @   rR   )LeapData	leap_timeactionN)r,   r-   r.   r   r   r/   r0   r0   r0   r1   r   s  rW   r   c                   @   rh   )SetOfLeapDataN)r,   r-   r.   r   rj   r0   r0   r0   r1   r   z  rk   r   c                   @   s4   e Zd ZdefdefdefdefdeddifgZdS )	TimingMetricsntp_timeoffsetdelay
expiration
leap_eventrf   TN)r,   r-   r.   r   r   r/   r0   r0   r0   r1   r   ~  s    r   c                   @   rh   )SetOfTimingMetricsN)r,   r-   r.   r   rj   r0   r0   r0   r1   r     rk   r   c                   @   s8   e Zd ZdedeifdedddfdedddfgZd	S )
TimingPolicyr   spec
max_offsetr   Tr   	max_delayr   N)r,   r-   r.   r   r   r   r/   r0   r0   r0   r1   r     r   r   c                   @   rh   )SetOfTimingPolicyN)r,   r-   r.   r   rj   r0   r0   r0   r1   r     rk   r   c                	   @   s"   e Zd Zddddddddd	Zd
S )AttCertAttributeTypeauthentication_infoaccess_identitycharging_identitygrouprole	clearancetiming_metricstiming_policy)z1.3.6.1.5.5.7.10.1z1.3.6.1.5.5.7.10.2z1.3.6.1.5.5.7.10.3z1.3.6.1.5.5.7.10.4z2.5.4.72z2.5.4.55z1.3.6.1.4.1.601.10.4.1z1.3.6.1.4.1.601.10.4.2NrD   r0   r0   r0   r1   r     s    
r   c                	   @   s>   e Zd ZdefdgZeeeeeee	e
dZdd ZdeiZdS )AttCertAttributerq   rr   )r   r   r   r   r   r   r   r   c                 C   rt   ru   rv   rz   r0   r0   r1   r|     r}   zAttCertAttribute._values_specrs   N)r,   r-   r.   r   r/   r   r   r   r   r   r   rw   r|   r~   r0   r0   r0   r1   r     s     r   c                   @   rh   )AttCertAttributesN)r,   r-   r.   r   rj   r0   r0   r0   r1   r     rk   r   c                   @   sR   e Zd Zdefdefdefdefdefdefde	fde
d	d
ifded	d
ifg	ZdS )AttributeCertificateInfoV2r)   holderr   r6   r   r   r+   r   rf   Tr   N)r,   r-   r.   r   r   r   r   r   r   r   r   r#   r/   r0   r0   r0   r1   r     s    r   c                   @   s&   e Zd ZdZdefdefdefgZdS )AttributeCertificateV2r   r   r5   r6   N)r,   r-   r.   _bad_tagr   r   r   r/   r0   r0   r0   r1   r     s    r   c                   @   rR   )OtherCertificateFormatother_cert_format
other_certNr   r0   r0   r0   r1   r     rW   r   c                       sV   e Zd Zdefdeddifdeddifdeddifd	edd
ifgZ fddZ	  Z
S )CertificateChoicesr*   extended_certificatere   r   v1_attr_certr   v2_attr_certr@   otherrA   c                    sN   t t| ||| | jdkr#tt|d  jdkr%d| _dS dS dS )aJ  
        Ensures that the class and tag specified exist as an alternative. This
        custom version fixes parsing broken encodings there a V2 attribute
        # certificate is encoded as a V1

        :param class_:
            The integer class_ from the encoded value header

        :param tag:
            The integer tag from the encoded value header

        :param contents:
            A byte string of the contents of the value - used when the object
            is explicitly tagged

        :raises:
            ValueError - when value is not a valid alternative
        r@   r   r;   rA   N)	superr   validate_choicer   loadr   dumpry   )r{   class_tagcontents	__class__r0   r1   r     s   

zCertificateChoices.validate)r,   r-   r.   r"   r3   r   r   r   rV   r   __classcell__r0   r0   r  r1   r     s    r   c                   @   rh   )CertificateSetN)r,   r-   r.   r   rj   r0   r0   r0   r1   r    rk   r  c                   @   ,   e Zd ZdefdedddfgZdZi ZdS )ContentInforH   contentr   Tr   rH   r	  N)r,   r-   r.   rX   r   r/   	_oid_pairrw   r0   r0   r0   r1   r  	      r  c                   @   rh   )SetOfContentInfoN)r,   r-   r.   r  rj   r0   r0   r0   r1   r    rk   r  c                   @   r  )EncapsulatedContentInforH   r	  r   Tr   r
  N)r,   r-   r.   rX   r   r/   r  rw   r0   r0   r0   r1   r    r  r  c                   @   rR   )IssuerAndSerialNumberr   r   N)r,   r-   r.   r&   r   r/   r0   r0   r0   r1   r  !  rW   r  c                   @   r   )SignerIdentifierissuer_and_serial_numbersubject_key_identifierre   r   Nr,   r-   r.   r  r   rV   r0   r0   r0   r1   r  (  r   r  c                   @   rh   )DigestAlgorithmsN)r,   r-   r.   r   rj   r0   r0   r0   r1   r  /  rk   r  c                   @   rh   )CertificateRevocationListsN)r,   r-   r.   r   rj   r0   r0   r0   r1   r  3  rk   r  c                   @   s$   e Zd ZdedddfdefgZdS )
SCVPReqResrequestr   Tr   responseN)r,   r-   r.   r  r/   r0   r0   r0   r1   r  7  r   r  c                   @   r   )OtherRevInfoFormatIdocsp_responsescvp)z1.3.6.1.5.5.7.16.2z1.3.6.1.5.5.7.16.4NrD   r0   r0   r0   r1   r  >  r   r  c                   @   s*   e Zd ZdefdefgZdZeedZ	dS )OtherRevocationInfoFormatother_rev_info_formatother_rev_info)r  r  )r  r  N)
r,   r-   r.   r  r   r/   r  r    r  rw   r0   r0   r0   r1   r  E  s    
r  c                   @   r   )RevocationInfoChoicecrlr   re   r   N)r,   r-   r.   r   r  rV   r0   r0   r0   r1   r  R  r   r  c                   @   rh   )RevocationInfoChoicesN)r,   r-   r.   r  rj   r0   r0   r0   r1   r!  Y  rk   r!  c                   @   sJ   e Zd Zdefdefdefdedddfdefd	efd
edddfgZ	dS )
SignerInfor)   sidrc   signed_attrsr   Trd   r5   r6   unsigned_attrsr   N)
r,   r-   r.   r8   r  r   r   r   r   r/   r0   r0   r0   r1   r"  ]  s    r"  c                   @   rh   )SignerInfosN)r,   r-   r.   r"  rj   r0   r0   r0   r1   r&  i  rk   r&  c                	   @   sP   e Zd Zdefdefddedddfded	ddfd
efgZdd Z	de	iZ
dS )
SignedDatar)   digest_algorithmsencap_content_infoNcertificatesr   Trd   crlsr   signer_infosc                 C      | d j dkr	tS tS Nr)   r:   ry   r  r  rz   r0   r0   r1   _encap_content_info_specw     z#SignedData._encap_content_info_specr*  N)r,   r-   r.   r8   r  r  r!  r&  r/   r1  r~   r0   r0   r0   r1   r'  m  s    	r'  c                   @   s,   e Zd ZdedddfdedddfgZdS )OriginatorInfocertsr   Trd   r,  r   N)r,   r-   r.   r  r!  r/   r0   r0   r0   r1   r3    s    r3  c                   @   r   )RecipientIdentifierr  r  re   r   Nr  r0   r0   r0   r1   r5    r   r5  c                
   @   s:   e Zd Zddddddddd	Zd
d
dddddddd	ZdS )KeyEncryptionAlgorithmIdrsaes_pkcs1v15
rsaes_oaepaes128_wrapaes128_wrap_padaes192_wrapaes192_wrap_padaes256_wrapaes256_wrap_pad)1.2.840.113549.1.1.11.2.840.113549.1.1.72.16.840.1.101.3.4.1.52.16.840.1.101.3.4.1.82.16.840.1.101.3.4.1.252.16.840.1.101.3.4.1.282.16.840.1.101.3.4.1.452.16.840.1.101.3.4.1.48r?  r@  rA  rB  rC  rD  rE  rF  )	rsar7  r8  r9  r:  r;  r<  r=  r>  N)r,   r-   r.   rE   _reverse_mapr0   r0   r0   r1   r6    s(    
r6  c                   @   s.   e Zd ZdefdeddifgZdZdeiZdS )KeyEncryptionAlgorithm	algorithm
parametersrf   T)rJ  rK  r8  N)	r,   r-   r.   r6  r   r/   r  r   rw   r0   r0   r0   r1   rI    s    rI  c                   @   (   e Zd ZdefdefdefdefgZdS )KeyTransRecipientInfor)   ridkey_encryption_algorithmencrypted_keyN)r,   r-   r.   r8   r5  rI  r   r/   r0   r0   r0   r1   rM        rM  c                   @   s.   e Zd ZdefdeddifdeddifgZdS )OriginatorIdentifierOrKeyr  r  re   r   originator_keyr   N)r,   r-   r.   r  r   r   rV   r0   r0   r0   r1   rR    
    rR  c                   @   rR   )OtherKeyAttributekey_attr_idkey_attrNr   r0   r0   r0   r1   rU    rW   rU  c                   @   .   e Zd ZdefdeddifdeddifgZdS )RecipientKeyIdentifierr  daterf   Tr   Nr,   r-   r.   r   r   rU  r/   r0   r0   r0   r1   rY    rT  rY  c                   @   r   )KeyAgreementRecipientIdentifierr  r_key_idre   r   N)r,   r-   r.   r  rY  rV   r0   r0   r0   r1   r\    r   r\  c                   @   rR   )RecipientEncryptedKeyrN  rP  N)r,   r-   r.   r\  r   r/   r0   r0   r0   r1   r^    rW   r^  c                   @   rh   )RecipientEncryptedKeysN)r,   r-   r.   r^  rj   r0   r0   r0   r1   r_    rk   r_  c                   @   s<   e Zd Zdefdeddifdedddfd	efd
efgZdS )KeyAgreeRecipientInfor)   
originatorr   r   ukmr   Tr   rO  recipient_encrypted_keysN)	r,   r-   r.   r8   rR  r   rI  r_  r/   r0   r0   r0   r1   r`    s    r`  c                   @   rX  )KEKIdentifierkey_identifierrZ  rf   Tr   Nr[  r0   r0   r0   r1   rd    rT  rd  c                   @   rL  )KEKRecipientInfor)   kekidrO  rP  N)r,   r-   r.   r8   rd  rI  r   r/   r0   r0   r0   r1   rf    rQ  rf  c                   @   s0   e Zd ZdefdedddfdefdefgZdS )	PasswordRecipientInfor)   key_derivation_algorithmr   Trd   rO  rP  N)r,   r-   r.   r8   r   rI  r   r/   r0   r0   r0   r1   rh  
  s    rh  c                   @   rR   )OtherRecipientInfoori_type	ori_valueNr   r0   r0   r0   r1   rj    rW   rj  c                   @   sF   e Zd Zdefdeddifdeddifdeddifd	edd
ifgZdS )RecipientInfoktrikarire   r   kekrir@   pwrirA   orirB   N)	r,   r-   r.   rM  r`  rf  rh  rj  rV   r0   r0   r0   r1   rm    s    rm  c                   @   rh   )RecipientInfosN)r,   r-   r.   rm  rj   r0   r0   r0   r1   rs  $  rk   rs  c                   @   *   e Zd ZdefdefdedddfgZdS )EncryptedContentInforH   content_encryption_algorithmencrypted_contentr   Trd   N)r,   r-   r.   rX   r	   r   r/   r0   r0   r0   r1   ru  (  
    ru  c                	   @   s>   e Zd Zdefdedddfdefdefded	ddfgZd
S )EnvelopedDatar)   originator_infor   Trd   recipient_infosencrypted_content_infounprotected_attrsr   N)	r,   r-   r.   r8   r3  rs  ru  r   r/   r0   r0   r0   r1   ry  0  s    ry  c                
   @   sJ   e Zd Zdefdefdefdefdedddfd	ed
ddfde	fgZ
dS )SignedAndEnvelopedDatar)   r{  r(  r|  r+  r   Trd   r,  r   r-  N)r,   r-   r.   r8   rs  r  ru  r  r  r&  r/   r0   r0   r0   r1   r~  :  s    r~  c                   @   s4   e Zd ZdefdefddefgZdd ZdeiZdS )	DigestedDatar)   rc   r)  digestc                 C   r.  r/  r0  rz   r0   r0   r1   r1  N  r2  z%DigestedData._encap_content_info_specr*  N)	r,   r-   r.   r8   r   r   r/   r1  r~   r0   r0   r0   r1   r  F  s    r  c                   @   rt  )EncryptedDatar)   r|  r}  r   Trd   N)r,   r-   r.   r8   ru  r   r/   r0   r0   r0   r1   r  a  rx  r  c                   @   sf   e Zd Zdefdedddfdefdefded	ddfd
efde	dddfde
fde	dddfg	ZdS )AuthenticatedDatar)   rz  r   Trd   r{  rg   rc   r   r*  
auth_attrsr@   macunauth_attrsrA   N)r,   r-   r.   r8   r3  rs  r   r   r  r   r   r/   r0   r0   r0   r1   r  i  s    r  c                   @   sR   e Zd Zdefdedddfdefdefded	ddfd
efdedddfgZ	dS )AuthEnvelopedDatar)   rz  r   Trd   r{  auth_encrypted_content_infor  r   r  r  r@   N)
r,   r-   r.   r8   r3  rs  ru  r   r   r/   r0   r0   r0   r1   r  y  s    r  c                   @   s   e Zd ZddiZdS )CompressionAlgorithmIdz1.2.840.113549.1.9.16.3.8zlibNrD   r0   r0   r0   r1   r    s    r  c                   @   r   )CompressionAlgorithmrJ  rK  rf   TN)r,   r-   r.   r  r   r/   r0   r0   r0   r1   r    r   r  c                   @   s2   e Zd ZdefdefdefgZdZedd Z	dS )CompressedDatar)   compression_algorithmr*  Nc                 C   s6   | j d u rtd u rtdt| d d j| _ | j S )Nz The zlib module is not availabler*  r	  )_decompressedr  SystemError
decompressry   rz   r0   r0   r1   decompressed  s
   
zCompressedData.decompressed)
r,   r-   r.   r8   r  r  r/   r  propertyr  r0   r0   r0   r1   r    s    r  c                   @   rX  )rY  subjectKeyIdentifierrZ  rf   Tr   Nr[  r0   r0   r0   r1   rY    rT  c                   @   s4   e Zd ZdeddifdeddifdeddifgZdS )	SMIMEEncryptionKeyPreferencer  re   r   recipientKeyIdr   subjectAltKeyIdentifierr@   N)r,   r-   r.   r  rY  r   rV   r0   r0   r0   r1   r    s
    r  c                   @   rh   )SMIMEEncryptionKeyPreferencesN)r,   r-   r.   r  rj   r0   r0   r0   r1   r    rk   r  c                   @   r   )SMIMECapabilityIdentifiercapability_idrK  rf   TN)r,   r-   r.   r
   r   r/   r0   r0   r0   r1   r    r   r  c                   @   rh   )SMIMECapabilitesN)r,   r-   r.   r  rj   r0   r0   r0   r1   r    rk   r  c                   @   rh   )SetOfSMIMECapabilitesN)r,   r-   r.   r  rj   r0   r0   r0   r1   r    rk   r  )	rY   rZ   r[   r\   r]   r^   r_   r`   ra   )rZ   r[   r\   r]   r^   r_   r`   ra   )
rH   rI   rJ   rK   rN   rO   rP   rQ   rM   rL   )__doc__
__future__r   r   r   r   r  ImportErroralgosr   r   r	   r
   r   r   r   r   corer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   keysr   ocspr    x509r!   r"   r#   r$   r%   r&   r(   r3   r8   rG   rS   rX   rb   ri   rl   rm   rn   ro   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r!  r"  r&  r'  r3  r5  r6  rI  rM  rR  rU  rY  r\  r^  r_  r`  rd  rf  rh  rj  rm  rs  ru  ry  r~  r  r  r  r  r  r  r  r  r  r  r  r  rw   r0   r0   r0   r1   <module>   s"  (D
 	
#

	
		

