ó
l]›]c           @` sY
  d  Z  d d l m Z m Z m Z m Z y d d l Z Wn e k
 rQ d Z n Xd d l	 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- d e f d „  ƒ  YZ. d e f d „  ƒ  YZ/ d e f d „  ƒ  YZ0 d e f d „  ƒ  YZ1 d e f d „  ƒ  YZ2 d e f d „  ƒ  YZ3 d e f d „  ƒ  YZ4 d e f d „  ƒ  YZ5 d e f d „  ƒ  YZ6 d e f d „  ƒ  YZ7 d e f d  „  ƒ  YZ8 d! e f d" „  ƒ  YZ9 d# e f d$ „  ƒ  YZ: d% e f d& „  ƒ  YZ; d' e f d( „  ƒ  YZ< d) e f d* „  ƒ  YZ= d+ e f d, „  ƒ  YZ> d- e f d. „  ƒ  YZ? d/ e f d0 „  ƒ  YZ@ d1 e f d2 „  ƒ  YZA d3 e f d4 „  ƒ  YZB d5 e f d6 „  ƒ  YZC d7 e f d8 „  ƒ  YZD d9 e f d: „  ƒ  YZE d; e f d< „  ƒ  YZF d= e f d> „  ƒ  YZG d? e f d@ „  ƒ  YZH dA e f dB „  ƒ  YZI dC e f dD „  ƒ  YZJ dE e f dF „  ƒ  YZK dG e f dH „  ƒ  YZL dI e f dJ „  ƒ  YZM dK e f dL „  ƒ  YZN dM e f dN „  ƒ  YZO dO e f dP „  ƒ  YZP dQ e f dR „  ƒ  YZQ dS e f dT „  ƒ  YZR dU e f dV „  ƒ  YZS dW e f dX „  ƒ  YZT dY e f dZ „  ƒ  YZU d[ e f d\ „  ƒ  YZV d] e f d^ „  ƒ  YZW d_ e f d` „  ƒ  YZX da e f db „  ƒ  YZY dc e f dd „  ƒ  YZZ de e f df „  ƒ  YZ[ dg e f dh „  ƒ  YZ\ di e f dj „  ƒ  YZ] dk e f dl „  ƒ  YZ^ dm e f dn „  ƒ  YZ_ do e f dp „  ƒ  YZ` dq e f dr „  ƒ  YZa ds e f dt „  ƒ  YZb du e f dv „  ƒ  YZc dw e f dx „  ƒ  YZd dy e f dz „  ƒ  YZe d{ e f d| „  ƒ  YZf d} e f d~ „  ƒ  YZg d e f d€ „  ƒ  YZh d e f d‚ „  ƒ  YZi dƒ e f d„ „  ƒ  YZj d… e f d† „  ƒ  YZk d‡ e f dˆ „  ƒ  YZl d‰ e f dŠ „  ƒ  YZm d‹ e f dŒ „  ƒ  YZn d e f dŽ „  ƒ  YZo d e f d „  ƒ  YZp d‘ e f d’ „  ƒ  YZq d“ e f d” „  ƒ  YZr d• e f d– „  ƒ  YZs d— e f d˜ „  ƒ  YZt d™ e
 e f dš „  ƒ  YZu d› e f dœ „  ƒ  YZv d e f dž „  ƒ  YZw dŸ e f d  „  ƒ  YZx d¡ e f d¢ „  ƒ  YZy d£ e f d¤ „  ƒ  YZz d¥ e f d¦ „  ƒ  YZ{ d§ e f d¨ „  ƒ  YZ| d© e f dª „  ƒ  YZ} d« e f d¬ „  ƒ  YZ~ d­ e f d® „  ƒ  YZ d¯ e f d° „  ƒ  YZ€ d± e f d² „  ƒ  YZ d³ e f d´ „  ƒ  YZ‚ dµ e f d¶ „  ƒ  YZƒ d· e f d¸ „  ƒ  YZ„ d¹ e f dº „  ƒ  YZ… d» e f d¼ „  ƒ  YZ† d½ e f d¾ „  ƒ  YZ‡ d¿ e f dÀ „  ƒ  YZˆ dÁ e f dÂ „  ƒ  YZ‰ dÃ e f dÄ „  ƒ  YZŠ dÅ e f dÆ „  ƒ  YZ‹ dÇ e f dÈ „  ƒ  YZŒ dÉ e f dÊ „  ƒ  YZ i	 e dË 6eq dÌ 6e… dÍ 6e† dÎ 6e‡ dÏ 6eˆ dÐ 6e‰ dÑ 6e dÒ 6eŠ dÓ 6ec _Ž i eq dÌ 6e… dÍ 6e† dÎ 6e‡ dÏ 6eˆ dÐ 6e‰ dÑ 6e dÒ 6eŠ dÓ 6ee _Ž i e5 dÔ 6e6 dÕ 6e7 dÖ 6ep d× 6ed dØ 6e9 dÙ 6ed dÚ 6ed dÛ 6e: _Ž d S(Ü   uë  
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.
i    (   t   unicode_literalst   divisiont   absolute_importt   print_functionNi   (   t   _ForceNullParameterst   DigestAlgorithmt   EncryptionAlgorithmt   HmacAlgorithmt   KdfAlgorithmt   RSAESOAEPParamst   SignedDigestAlgorithm(   t   Anyt	   BitStringt   Choicet
   Enumeratedt   GeneralizedTimet   Integert   ObjectIdentifiert   OctetBitStringt   OctetStringt   ParsableOctetStringt   Sequencet
   SequenceOft   SetOft   UTCTimet
   UTF8String(   t   CertificateList(   t   PublicKeyInfo(   t   OCSPResponse(   t
   Attributest   Certificatet
   Extensionst   GeneralNamet   GeneralNamest   Namet   ExtendedCertificateInfoc           B` s)   e  Z d  e f d e f d e f g Z RS(   u   versionu   certificateu
   attributes(   t   __name__t
   __module__R   R   R   t   _fields(    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR#   @   s   		t   ExtendedCertificatec           B` s)   e  Z d  e f d e f d e f g Z RS(   u   extended_certificate_infou   signature_algorithmu	   signature(   R$   R%   R#   R
   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR'   H   s   		t
   CMSVersionc           B` s8   e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6Z RS(   u   v0i    u   v1i   u   v2i   u   v3i   u   v4i   u   v5i   (   R$   R%   t   _map(    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR(   V   s   t   CMSAttributeTypec           B` sF   e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6Z RS(   u   content_typeu   1.2.840.113549.1.9.3u   message_digestu   1.2.840.113549.1.9.4u   signing_timeu   1.2.840.113549.1.9.5u   counter_signatureu   1.2.840.113549.1.9.6u   signature_time_stamp_tokenu   1.2.840.113549.1.9.16.2.14u   cms_algorithm_protectionu   1.2.840.113549.1.9.52u   microsoft_nested_signatureu   1.3.6.1.4.1.311.2.4.1u   microsoft_time_stamp_tokenu   1.3.6.1.4.1.311.3.3.1(   R$   R%   R)   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR*   a   s   t   Timec           B` s    e  Z d  e f d e f g Z RS(   u   utc_timeu   generalized_time(   R$   R%   R   R   t   _alternatives(    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR+   v   s   	t   ContentTypec           B` sM   e  Z i	 d  d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6d d 6Z RS(   u   datau   1.2.840.113549.1.7.1u   signed_datau   1.2.840.113549.1.7.2u   enveloped_datau   1.2.840.113549.1.7.3u   signed_and_enveloped_datau   1.2.840.113549.1.7.4u   digested_datau   1.2.840.113549.1.7.5u   encrypted_datau   1.2.840.113549.1.7.6u   authenticated_datau   1.2.840.113549.1.9.16.1.2u   compressed_datau   1.2.840.113549.1.9.16.1.9u   authenticated_enveloped_datau   1.2.840.113549.1.9.16.1.23(   R$   R%   R)   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR-   }   s   t   CMSAlgorithmProtectionc           B` sK   e  Z d  e f d e i d d 6e d 6f d e i d d 6e d 6f g Z RS(   u   digest_algorithmu   signature_algorithmi   u   implicitu   optionalu   mac_algorithmi   (   R$   R%   R   R
   t   TrueR   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR.   ‹   s   	t   SetOfContentTypec           B` s   e  Z e Z RS(    (   R$   R%   R-   t   _child_spec(    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR0   “   s   t   SetOfOctetStringc           B` s   e  Z e Z RS(    (   R$   R%   R   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR2   —   s   t	   SetOfTimec           B` s   e  Z e Z RS(    (   R$   R%   R+   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR3   ›   s   t   SetOfAnyc           B` s   e  Z e Z RS(    (   R$   R%   R   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR4   Ÿ   s   t   SetOfCMSAlgorithmProtectionc           B` s   e  Z e Z RS(    (   R$   R%   R.   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR5   £   s   t   CMSAttributec           B` s6   e  Z d  e f d g Z i  Z d „  Z i e d 6Z RS(   u   typeu   valuesc         C` s   |  j  j |  d j t ƒ S(   Nu   type(   t
   _oid_specst   gett   nativeR4   (   t   self(    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyt   _values_spec¯   s    N(   u   valuesN(   R$   R%   R*   t   NoneR&   R7   R;   t   _spec_callbacks(    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR6   §   s   			t   CMSAttributesc           B` s   e  Z e Z RS(    (   R$   R%   R6   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR>   ·   s   t   IssuerSerialc           B` s3   e  Z d  e f d e f d e i e d 6f g Z RS(   u   issueru   serialu
   issuer_uidu   optional(   R$   R%   R!   R   R   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR?   »   s   		t   AttCertVersionc           B` s   e  Z i d  d 6d d 6Z RS(   u   v1i    u   v2i   (   R$   R%   R)   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR@   Ã   s   t   AttCertSubjectc           B` s4   e  Z d  e i d d 6f d e i d d 6f g Z RS(   u   base_certificate_idi    u   explicitu   subject_namei   (   R$   R%   R?   R!   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRA   Ê   s   t   AttCertValidityPeriodc           B` s    e  Z d  e f d e f g Z RS(   u   not_before_timeu   not_after_time(   R$   R%   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRB   Ñ   s   	t   AttributeCertificateInfoV1c           B` s}   e  Z d  e i d d 6f d e f d e f d e f d e f d e f d e f d	 e	 i e
 d
 6f d e i e
 d
 6f g	 Z RS(   u   versionu   v1u   defaultu   subjectu   issueru	   signatureu   serial_numberu   att_cert_validity_periodu
   attributesu   issuer_unique_idu   optionalu
   extensions(   R$   R%   R@   RA   R!   R
   R   RB   R   R   R/   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRC   Ø   s   						t   AttributeCertificateV1c           B` s)   e  Z d  e f d e f d e f g Z RS(   u   ac_infou   signature_algorithmu	   signature(   R$   R%   RC   R
   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRD   æ   s   		t   DigestedObjectTypec           B` s#   e  Z i d  d 6d d 6d d 6Z RS(   u
   public_keyi    u   public_key_certi   u   other_objy_typesi   (   R$   R%   R)   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRE   î   s   t   ObjectDigestInfoc           B` s<   e  Z d  e f d e i e d 6f d e f d e f g Z RS(   u   digested_object_typeu   other_object_type_idu   optionalu   digest_algorithmu   object_digest(   R$   R%   RE   R   R/   R   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRF   ö   s   		t   Holderc           B` s\   e  Z d  e i d d 6e d 6f d e i d d 6e d 6f d e i d d 6e d 6f g Z RS(   u   base_certificate_idi    u   implicitu   optionalu   entity_namei   u   object_digest_infoi   (   R$   R%   R?   R/   R!   RF   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRG   ÿ   s   t   V2Formc           B` sU   e  Z d  e i e d 6f d e i d d 6e d 6f d e i d d 6e d 6f g Z RS(   u   issuer_nameu   optionalu   base_certificate_idi    u   explicitu   object_digest_infoi   (   R$   R%   R!   R/   R?   RF   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRH     s   t   AttCertIssuerc           B` s*   e  Z d  e f d e i d d 6f g Z RS(   u   v1_formu   v2_formi    u   explicit(   R$   R%   R!   RH   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRI     s   	t   IetfAttrValuec           B` s)   e  Z d  e f d e f d e f g Z RS(   u   octetsu   oidu   string(   R$   R%   R   R   R   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRJ     s   		t   IetfAttrValuesc           B` s   e  Z e Z RS(    (   R$   R%   RJ   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRK     s   t   IetfAttrSyntaxc           B` s1   e  Z d  e i d d 6e d 6f d e f g Z RS(   u   policy_authorityi    u   implicitu   optionalu   values(   R$   R%   R!   R/   RK   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRL   "  s   t   SetOfIetfAttrSyntaxc           B` s   e  Z e Z RS(    (   R$   R%   RL   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRM   )  s   t   SvceAuthInfoc           B` s3   e  Z d  e f d e f d e i e d 6f g Z RS(   u   serviceu   identu	   auth_infou   optional(   R$   R%   R    R   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRN   -  s   		t   SetOfSvceAuthInfoc           B` s   e  Z e Z RS(    (   R$   R%   RN   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRO   5  s   t
   RoleSyntaxc           B` s;   e  Z d  e i d d 6e d 6f d e i d d 6f g Z RS(   u   role_authorityi    u   implicitu   optionalu	   role_namei   (   R$   R%   R!   R/   R    R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRP   9  s   t   SetOfRoleSyntaxc           B` s   e  Z e Z RS(    (   R$   R%   RP   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRQ   @  s   t	   ClassListc           B` s8   e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6Z RS(   u   unmarkedi    u   unclassifiedi   u
   restrictedi   u   confidentiali   u   secreti   u
   top_secreti   (   R$   R%   R)   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRR   D  s   t   SecurityCategoryc           B` s4   e  Z d  e i d d 6f d e i d d 6f g Z RS(   u   typei    u   implicitu   valuei   (   R$   R%   R   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRS   O  s   t   SetOfSecurityCategoryc           B` s   e  Z e Z RS(    (   R$   R%   RS   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRT   V  s   t	   Clearancec           B` sU   e  Z d  e i d d 6f d e i d d 6d d 6f d e i d d 6e d	 6f g Z RS(
   u	   policy_idi    u   implicitu
   class_listi   u   unclassifiedu   defaultu   security_categoriesi   u   optional(   R$   R%   R   RR   RT   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRU   Z  s   t   SetOfClearancec           B` s   e  Z e Z RS(    (   R$   R%   RU   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRV   b  s   t   BigTimec           B` s3   e  Z d  e f d e f d e i e d 6f g Z RS(   u   majoru   fractional_secondsu   signu   optional(   R$   R%   R   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRW   f  s   		t   LeapDatac           B` s    e  Z d  e f d e f g Z RS(   u	   leap_timeu   action(   R$   R%   RW   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRX   n  s   	t   SetOfLeapDatac           B` s   e  Z e Z RS(    (   R$   R%   RX   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRY   u  s   t   TimingMetricsc        	   B` sE   e  Z d  e f d e f d e f d e f d e i e d 6f g Z RS(   u   ntp_timeu   offsetu   delayu
   expirationu
   leap_eventu   optional(   R$   R%   RW   RY   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRZ   y  s
   				t   SetOfTimingMetricsc           B` s   e  Z e Z RS(    (   R$   R%   RZ   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR[   ƒ  s   t   TimingPolicyc           B` sU   e  Z d  e i e d 6f d e i d d 6e d 6f d e i d d 6e d 6f g Z RS(   u	   policy_idu   specu
   max_offseti    u   explicitu   optionalu	   max_delayi   (   R$   R%   R   R   RW   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR\   ‡  s   t   SetOfTimingPolicyc           B` s   e  Z e Z RS(    (   R$   R%   R\   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR]     s   t   AttCertAttributeTypec           B` sF   e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6Z RS(   u   authentication_infou   1.3.6.1.5.5.7.10.1u   access_identityu   1.3.6.1.5.5.7.10.2u   charging_identityu   1.3.6.1.5.5.7.10.3u   groupu   1.3.6.1.5.5.7.10.4u   roleu   2.5.4.72u	   clearanceu   2.5.4.55u   timing_metricsu   1.3.6.1.4.1.601.10.4.1u   timing_policyu   1.3.6.1.4.1.601.10.4.2(   R$   R%   R)   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR^   “  s   t   AttCertAttributec           B` sn   e  Z d  e f d g Z i e d 6e d 6e d 6e d 6e d 6e d 6e	 d 6e
 d	 6Z d
 „  Z i e d 6Z RS(   u   typeu   valuesu   authentication_infou   access_identityu   charging_identityu   groupu   roleu	   clearanceu   timing_metricsu   timing_policyc         C` s   |  j  j |  d j t ƒ S(   Nu   type(   R7   R8   R9   R4   (   R:   (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR;   ±  s    N(   u   valuesN(   R$   R%   R^   R<   R&   RO   RM   RQ   RV   R[   R]   R7   R;   R=   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR_      s   		
	t   AttCertAttributesc           B` s   e  Z e Z RS(    (   R$   R%   R_   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR`   ¹  s   t   AttributeCertificateInfoV2c           B` ss   e  Z d  e f d e f d e f d e f d e f d e f d e f d e	 i e
 d 6f d	 e i e
 d 6f g	 Z RS(
   u   versionu   holderu   issueru	   signatureu   serial_numberu   att_cert_validity_periodu
   attributesu   issuer_unique_idu   optionalu
   extensions(   R$   R%   R@   RG   RI   R
   R   RB   R`   R   R/   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRa   ½  s   							t   AttributeCertificateV2c           B` s/   e  Z d  Z d e f d e f d e f g Z RS(   i   u   ac_infou   signature_algorithmu	   signature(   R$   R%   t   _bad_tagRa   R
   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRb   Ë  s   		t   OtherCertificateFormatc           B` s    e  Z d  e f d e f g Z RS(   u   other_cert_formatu
   other_cert(   R$   R%   R   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRd   Ö  s   	t   CertificateChoicesc        	   B` sl   e  Z d  e f d e i d d 6f d e i d d 6f d e i d d 6f d e i d	 d 6f g Z d
 „  Z RS(   u   certificateu   extended_certificatei    u   implicitu   v1_attr_certi   u   v2_attr_certi   u   otheri   c         C` si   t  t |  ƒ j | | | ƒ |  j d k re t j t j | ƒ d j ƒ  ƒ j d k re d |  _ qe n  d S(   uJ  
        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
        i   i    u   v2i   N(	   t   superRe   t   validatet   _choiceR@   t   loadR   t   dumpR9   (   R:   t   class_t   tagt   contents(    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRg   æ  s    +(	   R$   R%   R   R'   RD   Rb   Rd   R,   Rg   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRe   Ý  s   	t   CertificateSetc           B` s   e  Z e Z RS(    (   R$   R%   Re   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRn      s   t   ContentInfoc           B` s=   e  Z d  e f d e i d d 6e d 6f g Z d Z i  Z RS(   u   content_typeu   contenti    u   explicitu   optional(   u   content_typeu   content(   R$   R%   R-   R   R/   R&   t	   _oid_pairR7   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRo     s   	 t   SetOfContentInfoc           B` s   e  Z e Z RS(    (   R$   R%   Ro   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRq     s   t   EncapsulatedContentInfoc           B` s=   e  Z d  e f d e i d d 6e d 6f g Z d Z i  Z RS(   u   content_typeu   contenti    u   explicitu   optional(   u   content_typeu   content(   R$   R%   R-   R   R/   R&   Rp   R7   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRr     s   	 t   IssuerAndSerialNumberc           B` s    e  Z d  e f d e f g Z RS(   u   issueru   serial_number(   R$   R%   R"   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRs     s   	t   SignerIdentifierc           B` s*   e  Z d  e f d e i d d 6f g Z RS(   u   issuer_and_serial_numberu   subject_key_identifieri    u   implicit(   R$   R%   Rs   R   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRt   #  s   	t   DigestAlgorithmsc           B` s   e  Z e Z RS(    (   R$   R%   R   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRu   *  s   t   CertificateRevocationListsc           B` s   e  Z e Z RS(    (   R$   R%   R   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRv   .  s   t
   SCVPReqResc           B` s1   e  Z d  e i d d 6e d 6f d e f g Z RS(   u   requesti    u   explicitu   optionalu   response(   R$   R%   Ro   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRw   2  s   t   OtherRevInfoFormatIdc           B` s   e  Z i d  d 6d d 6Z RS(   u   ocsp_responseu   1.3.6.1.5.5.7.16.2u   scvpu   1.3.6.1.5.5.7.16.4(   R$   R%   R)   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRx   9  s   t   OtherRevocationInfoFormatc           B` s:   e  Z d  e f d e f g Z d Z i e d 6e d 6Z RS(   u   other_rev_info_formatu   other_rev_infou   ocsp_responseu   scvp(   u   other_rev_info_formatu   other_rev_info(	   R$   R%   Rx   R   R&   Rp   R   Rw   R7   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRy   @  s   	t   RevocationInfoChoicec           B` s*   e  Z d  e f d e i d d 6f g Z RS(   u   crlu   otheri   u   implicit(   R$   R%   R   Ry   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRz   M  s   	t   RevocationInfoChoicesc           B` s   e  Z e Z RS(    (   R$   R%   Rz   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR{   T  s   t
   SignerInfoc           B` so   e  Z d  e f d e f d e f d e i d d 6e d 6f d e f d e f d	 e i d
 d 6e d 6f g Z	 RS(   u   versionu   sidu   digest_algorithmu   signed_attrsi    u   implicitu   optionalu   signature_algorithmu	   signatureu   unsigned_attrsi   (
   R$   R%   R(   Rt   R   R>   R/   R
   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR|   X  s   					t   SignerInfosc           B` s   e  Z e Z RS(    (   R$   R%   R|   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR}   d  s   t
   SignedDatac        	   B` sv   e  Z d  e f d e f d d e i d d 6e d 6f d e i d d 6e d 6f d	 e f g Z	 d
 „  Z
 i e
 d 6Z RS(   u   versionu   digest_algorithmsu   encap_content_infou   certificatesi    u   implicitu   optionalu   crlsi   u   signer_infosc         C` s   |  d j  d k r t St S(   Nu   versionu   v1(   R9   Rr   Ro   (   R:   (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyt   _encap_content_info_specr  s    N(   u   encap_content_infoN(   R$   R%   R(   Ru   R<   Rn   R/   R{   R}   R&   R   R=   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR~   h  s   			t   OriginatorInfoc           B` sB   e  Z d  e i d d 6e d 6f d e i d d 6e d 6f g Z RS(   u   certsi    u   implicitu   optionalu   crlsi   (   R$   R%   Rn   R/   R{   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR€   …  s   t   RecipientIdentifierc           B` s*   e  Z d  e f d e i d d 6f g Z RS(   u   issuer_and_serial_numberu   subject_key_identifieri    u   implicit(   R$   R%   Rs   R   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR   Œ  s   	t   KeyEncryptionAlgorithmIdc           B` s‹   e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6Z i	 d d 6d d  6d d 6d d 6d d 6d	 d 6d d
 6d d 6d d 6Z RS(   u   rsaes_pkcs1v15u   1.2.840.113549.1.1.1u
   rsaes_oaepu   1.2.840.113549.1.1.7u   aes128_wrapu   2.16.840.1.101.3.4.1.5u   aes128_wrap_padu   2.16.840.1.101.3.4.1.8u   aes192_wrapu   2.16.840.1.101.3.4.1.25u   aes192_wrap_padu   2.16.840.1.101.3.4.1.28u   aes256_wrapu   2.16.840.1.101.3.4.1.45u   aes256_wrap_padu   2.16.840.1.101.3.4.1.48u   rsa(   R$   R%   R)   t   _reverse_map(    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR‚   “  s&   
t   KeyEncryptionAlgorithmc           B` s=   e  Z d  e f d e i e d 6f g Z d Z i e d 6Z RS(   u	   algorithmu
   parametersu   optionalu
   rsaes_oaep(   u	   algorithmu
   parameters(	   R$   R%   R‚   R   R/   R&   Rp   R	   R7   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR„   ¬  s
   	t   KeyTransRecipientInfoc           B` s2   e  Z d  e f d e f d e f d e f g Z RS(   u   versionu   ridu   key_encryption_algorithmu   encrypted_key(   R$   R%   R(   R   R„   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR…   ¸  s   			t   OriginatorIdentifierOrKeyc           B` s=   e  Z d  e f d e i d d 6f d e i d d 6f g Z RS(   u   issuer_and_serial_numberu   subject_key_identifieri    u   implicitu   originator_keyi   (   R$   R%   Rs   R   R   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR†   Á  s   	t   OtherKeyAttributec           B` s    e  Z d  e f d e f g Z RS(   u   key_attr_idu   key_attr(   R$   R%   R   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR‡   É  s   	t   RecipientKeyIdentifierc           B` s=   e  Z d  e f d e i e d 6f d e i e d 6f g Z RS(   u   subject_key_identifieru   dateu   optionalu   other(   R$   R%   R   R   R/   R‡   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRˆ   Ð  s   	t   KeyAgreementRecipientIdentifierc           B` s*   e  Z d  e f d e i d d 6f g Z RS(   u   issuer_and_serial_numberu   r_key_idi    u   implicit(   R$   R%   Rs   Rˆ   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR‰   Ø  s   	t   RecipientEncryptedKeyc           B` s    e  Z d  e f d e f g Z RS(   u   ridu   encrypted_key(   R$   R%   R‰   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRŠ   ß  s   	t   RecipientEncryptedKeysc           B` s   e  Z e Z RS(    (   R$   R%   RŠ   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR‹   æ  s   t   KeyAgreeRecipientInfoc           B` sV   e  Z d  e f d e i d d 6f d e i d d 6e d 6f d e f d e f g Z RS(	   u   versionu
   originatori    u   explicitu   ukmi   u   optionalu   key_encryption_algorithmu   recipient_encrypted_keys(	   R$   R%   R(   R†   R   R/   R„   R‹   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRŒ   ê  s
   		t   KEKIdentifierc           B` s=   e  Z d  e f d e i e d 6f d e i e d 6f g Z RS(   u   key_identifieru   dateu   optionalu   other(   R$   R%   R   R   R/   R‡   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR   ô  s   	t   KEKRecipientInfoc           B` s2   e  Z d  e f d e f d e f d e f g Z RS(   u   versionu   kekidu   key_encryption_algorithmu   encrypted_key(   R$   R%   R(   R   R„   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRŽ   ü  s   			t   PasswordRecipientInfoc           B` sC   e  Z d  e f d e i d d 6e d 6f d e f d e f g Z RS(   u   versionu   key_derivation_algorithmi    u   implicitu   optionalu   key_encryption_algorithmu   encrypted_key(   R$   R%   R(   R   R/   R„   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR     s   		t   OtherRecipientInfoc           B` s    e  Z d  e f d e f g Z RS(   u   ori_typeu	   ori_value(   R$   R%   R   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR     s   	t   RecipientInfoc        	   B` sc   e  Z d  e f d e i d d 6f d e i d d 6f d e i d d 6f d e i d	 d 6f g Z RS(
   u   ktriu   karii   u   implicitu   kekrii   u   pwrii   u   orii   (   R$   R%   R…   RŒ   RŽ   R   R   R,   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR‘     s
   	t   RecipientInfosc           B` s   e  Z e Z RS(    (   R$   R%   R‘   R1   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR’     s   t   EncryptedContentInfoc           B` s:   e  Z d  e f d e f d e i d d 6e d 6f g Z RS(   u   content_typeu   content_encryption_algorithmu   encrypted_contenti    u   implicitu   optional(   R$   R%   R-   R   R   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR“   #  s   		t   EnvelopedDatac        	   B` s]   e  Z d  e f d e i d d 6e d 6f d e f d e f d e i d d 6e d 6f g Z RS(	   u   versionu   originator_infoi    u   implicitu   optionalu   recipient_infosu   encrypted_content_infou   unprotected_attrsi   (	   R$   R%   R(   R€   R/   R’   R“   R>   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR”   +  s
   			t   SignedAndEnvelopedDatac        
   B` so   e  Z d  e f d e f d e f d e f d e i d d 6e d 6f d e i d	 d 6e d 6f d
 e	 f g Z
 RS(   u   versionu   recipient_infosu   digest_algorithmsu   encrypted_content_infou   certificatesi    u   implicitu   optionalu   crlsi   u   signer_infos(   R$   R%   R(   R’   Ru   R“   Rn   R/   Rv   R}   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR•   5  s   				t   DigestedDatac           B` sB   e  Z d  e f d e f d d e f g Z d „  Z i e d 6Z RS(   u   versionu   digest_algorithmu   encap_content_infou   digestc         C` s   |  d j  d k r t St S(   Nu   versionu   v1(   R9   Rr   Ro   (   R:   (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR   I  s    N(   u   encap_content_infoN(	   R$   R%   R(   R   R<   R   R&   R   R=   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR–   A  s   			t   EncryptedDatac           B` s:   e  Z d  e f d e f d e i d d 6e d 6f g Z RS(   u   versionu   encrypted_content_infou   unprotected_attrsi   u   implicitu   optional(   R$   R%   R(   R“   R>   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR—   \  s   		t   AuthenticatedDatac           B` s£   e  Z d  e f d e i d d 6e d 6f d e f d e f d e i d d 6e d 6f d	 e f d
 e	 i d d 6e d 6f d e
 f d e	 i d d 6e d 6f g	 Z RS(   u   versionu   originator_infoi    u   implicitu   optionalu   recipient_infosu   mac_algorithmu   digest_algorithmi   u   encap_content_infou
   auth_attrsi   u   macu   unauth_attrsi   (   R$   R%   R(   R€   R/   R’   R   R   Rr   R>   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR˜   d  s   					t   AuthEnvelopedDatac           B` s€   e  Z d  e f d e i d d 6e d 6f d e f d e f d e i d d 6e d 6f d	 e f d
 e i d d 6e d 6f g Z	 RS(   u   versionu   originator_infoi    u   implicitu   optionalu   recipient_infosu   auth_encrypted_content_infou
   auth_attrsi   u   macu   unauth_attrsi   (
   R$   R%   R(   R€   R/   R’   R“   R>   R   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR™   t  s   				t   CompressionAlgorithmIdc           B` s   e  Z i d  d 6Z RS(   u   zlibu   1.2.840.113549.1.9.16.3.8(   R$   R%   R)   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRš   €  s   t   CompressionAlgorithmc           B` s*   e  Z d  e f d e i e d 6f g Z RS(   u	   algorithmu
   parametersu   optional(   R$   R%   Rš   R   R/   R&   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyR›   †  s   	t   CompressedDatac           B` s>   e  Z d  e f d e f d e f g Z d Z e d „  ƒ Z	 RS(   u   versionu   compression_algorithmu   encap_content_infoc         C` sQ   |  j  d  k rJ t d  k r* t d ƒ ‚ n  t j |  d d j ƒ |  _  n  |  j  S(   Nu    The zlib module is not availableu   encap_content_infou   content(   t   _decompressedR<   t   zlibt   SystemErrort
   decompressR9   (   R:   (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyt   decompressed–  s
     N(
   R$   R%   R(   R›   Rr   R&   R<   R   t   propertyR¡   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyRœ     s
   		u   datau   signed_datau   enveloped_datau   signed_and_enveloped_datau   digested_datau   encrypted_datau   authenticated_datau   compressed_datau   authenticated_enveloped_datau   content_typeu   message_digestu   signing_timeu   counter_signatureu   signature_time_stamp_tokenu   cms_algorithm_protectionu   microsoft_nested_signatureu   microsoft_time_stamp_token(   t   __doc__t
   __future__R    R   R   R   Rž   t   ImportErrorR<   t   algosR   R   R   R   R   R	   R
   t   coreR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   crlR   t   keysR   t   ocspR   t   x509R   R   R   R    R!   R"   R#   R'   R(   R*   R+   R-   R.   R0   R2   R3   R4   R5   R6   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   RM   RN   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   RZ   R[   R\   R]   R^   R_   R`   Ra   Rb   Rd   Re   Rn   Ro   Rq   Rr   Rs   Rt   Ru   Rv   Rw   Rx   Ry   Rz   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œ   R7   (    (    (    s-   lib/python2.7/site-packages/asn1crypto/cms.pyt   <module>   s  "
4	d.	
#

	
		

