ó
l]›]c           @` s6  d  Z  d d l m Z m Z m Z m Z d d l m Z d d l 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 d d l m Z m Z d d l m Z d d	 l m Z m  Z  m! Z! m" Z" 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% „  ƒ  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 d0 e f d1 „  ƒ  YZ6 d2 e f d3 „  ƒ  YZ7 d4 e f d5 „  ƒ  YZ8 d6 e f d7 „  ƒ  YZ9 d8 e f d9 „  ƒ  YZ: d: e f d; „  ƒ  YZ; d< e f d= „  ƒ  YZ< d> e f d? „  ƒ  YZ= d@ e f dA „  ƒ  YZ> dB e f dC „  ƒ  YZ? dD e f dE „  ƒ  YZ@ dF e f dG „  ƒ  YZA dH e f dI „  ƒ  YZB dJ e f dK „  ƒ  YZC dL e f dM „  ƒ  YZD dN e f dO „  ƒ  YZE dP e f dQ „  ƒ  YZF dR e f dS „  ƒ  YZG dT e f dU „  ƒ  YZH dV S(W   uÒ   
ASN.1 type classes for the online certificate status protocol (OCSP). Exports
the following items:

 - OCSPRequest()
 - OCSPResponse()

Other type classes are defined that help compose the types listed above.
i    (   t   unicode_literalst   divisiont   absolute_importt   print_functioni   (   t   unwrap(   t   DigestAlgorithmt   SignedDigestAlgorithm(   t   Booleant   Choicet
   Enumeratedt   GeneralizedTimet	   IA5Stringt   Integert   Nullt   ObjectIdentifiert   OctetBitStringt   OctetStringt   ParsableOctetStringt   Sequencet
   SequenceOf(   t   AuthorityInfoAccessSyntaxt	   CRLReason(   t   PublicKeyAlgorithm(   t   Certificatet   GeneralNamet   GeneralNamest   Namet   Versionc           B` s   e  Z i d  d 6Z RS(   u   v1i    (   t   __name__t
   __module__t   _map(    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR   (   s   t   CertIdc           B` s2   e  Z d  e f d e f d e f d e f g Z RS(   u   hash_algorithmu   issuer_name_hashu   issuer_key_hashu   serial_number(   R   R   R   R   R   t   _fields(    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR   .   s   			t   ServiceLocatorc           B` s    e  Z d  e f d e f g Z RS(   u   issueru   locator(   R   R   R   R   R    (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR!   7   s   	t   RequestExtensionIdc           B` s   e  Z i d  d 6Z RS(   u   service_locatoru   1.3.6.1.5.5.7.48.1.7(   R   R   R   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR"   >   s   t   RequestExtensionc           B` sF   e  Z d  e f d e i e d 6f d e f g Z d Z i e d 6Z	 RS(   u   extn_idu   criticalu   defaultu
   extn_valueu   service_locator(   u   extn_idu
   extn_value(
   R   R   R"   R   t   FalseR   R    t	   _oid_pairR!   t
   _oid_specs(    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR#   D   s   	t   RequestExtensionsc           B` s   e  Z e Z RS(    (   R   R   R#   t   _child_spec(    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR'   Q   s   t   Requestc           B` sj   e  Z d  e f d e i d d 6e d 6f g Z e Z d Z	 d Z
 d „  Z e d „  ƒ Z e d „  ƒ Z RS(	   u   req_certu   single_request_extensionsi    u   explicitu   optionalc         C` sŽ   t  ƒ  |  _ xr |  d D]f } | d j } d | } t |  | ƒ r] t |  | | d j ƒ n  | d j r |  j j | ƒ q q Wt |  _ d S(   uv   
        Sets common named extensions to private attributes and creates a list
        of critical extensions
        u   single_request_extensionsu   extn_idu	   _%s_valueu
   extn_valueu   criticalN(	   t   sett   _critical_extensionst   nativet   hasattrt   setattrt   parsedt   addt   Truet   _processed_extensions(   t   selft	   extensiont   namet   attribute_name(    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   _set_extensions_   s    
c         C` s   |  j  s |  j ƒ  n  |  j S(   u²   
        Returns a set of the names (or OID if not a known extension) of the
        extensions marked as critical

        :return:
            A set of unicode strings
        (   R2   R7   R+   (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   critical_extensionsq   s    
	c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   u¿   
        This extension is used when communicating with an OCSP responder that
        acts as a proxy for OCSP requests

        :return:
            None or a ServiceLocator object
        (   R2   R$   R7   t   _service_locator_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   service_locator_value   s    
N(   R   R   R   R'   R1   R    R$   R2   t   NoneR+   R9   R7   t   propertyR8   R:   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR)   U   s   	 	t   Requestsc           B` s   e  Z e Z RS(    (   R   R   R)   R(   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR=   Ž   s   t   ResponseTypec           B` s   e  Z i d  d 6Z RS(   u   basic_ocsp_responseu   1.3.6.1.5.5.7.48.1.1(   R   R   R   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR>   ’   s   t   AcceptableResponsesc           B` s   e  Z e Z RS(    (   R   R   R>   R(   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR?   ˜   s   t   PreferredSignatureAlgorithmc           B` s*   e  Z d  e f d e i e d 6f g Z RS(   u   sig_identifieru   cert_identifieru   optional(   R   R   R   R   R1   R    (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR@   œ   s   	t   PreferredSignatureAlgorithmsc           B` s   e  Z e Z RS(    (   R   R   R@   R(   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRA   £   s   t   TBSRequestExtensionIdc           B` s#   e  Z i d  d 6d d 6d d 6Z RS(   u   nonceu   1.3.6.1.5.5.7.48.1.2u   acceptable_responsesu   1.3.6.1.5.5.7.48.1.4u   preferred_signature_algorithmsu   1.3.6.1.5.5.7.48.1.8(   R   R   R   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRB   §   s   t   TBSRequestExtensionc           B` sT   e  Z d  e f d e i e d 6f d e f g Z d Z i e d 6e	 d 6e
 d 6Z RS(   u   extn_idu   criticalu   defaultu
   extn_valueu   nonceu   acceptable_responsesu   preferred_signature_algorithms(   u   extn_idu
   extn_value(   R   R   RB   R   R$   R   R    R%   R   R?   RA   R&   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRC   ¯   s   	t   TBSRequestExtensionsc           B` s   e  Z e Z RS(    (   R   R   RC   R(   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRD   ¾   s   t
   TBSRequestc           B` se   e  Z d  e i d d 6d d 6f d e i d d 6e d 6f d e f d	 e i d
 d 6e d 6f g Z RS(   u   versioni    u   explicitu   v1u   defaultu   requestor_namei   u   optionalu   request_listu   request_extensionsi   (   R   R   R   R   R1   R=   RD   R    (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRE   Â   s   	t   Certificatesc           B` s   e  Z e Z RS(    (   R   R   R   R(   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRF   Ë   s   t	   Signaturec           B` s:   e  Z d  e f d e f d e i d d 6e d 6f g Z RS(   u   signature_algorithmu	   signatureu   certsi    u   explicitu   optional(   R   R   R   R   RF   R1   R    (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRG   Ï   s   		t   OCSPRequestc           B` s”   e  Z d  e f d e i d d 6e d 6f g Z e Z d
 Z	 d
 Z
 d
 Z d
 Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d	 „  ƒ Z RS(   u   tbs_requestu   optional_signaturei    u   explicitu   optionalc         C` s’   t  ƒ  |  _ xv |  d d D]f } | d j } d | } t |  | ƒ ra t |  | | d j ƒ n  | d j r |  j j | ƒ q q Wt |  _ d S(   uv   
        Sets common named extensions to private attributes and creates a list
        of critical extensions
        u   tbs_requestu   request_extensionsu   extn_idu	   _%s_valueu
   extn_valueu   criticalN(	   R*   R+   R,   R-   R.   R/   R0   R1   R2   (   R3   R4   R5   R6   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR7   ã   s    
c         C` s   |  j  s |  j ƒ  n  |  j S(   u²   
        Returns a set of the names (or OID if not a known extension) of the
        extensions marked as critical

        :return:
            A set of unicode strings
        (   R2   R7   R+   (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR8   õ   s    
	c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   uÊ   
        This extension is used to prevent replay attacks by including a unique,
        random value with each request/response pair

        :return:
            None or an OctetString object
        (   R2   R$   R7   t   _nonce_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   nonce_value  s    
c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   u(  
        This extension is used to allow the client and server to communicate
        with alternative response formats other than just basic_ocsp_response,
        although no other formats are defined in the standard.

        :return:
            None or an AcceptableResponses object
        (   R2   R$   R7   t   _acceptable_responses_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   acceptable_responses_value  s    c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   uj  
        This extension is used by the client to define what signature algorithms
        are preferred, including both the hash algorithm and the public key
        algorithm, with a level of detail down to even the public key algorithm
        parameters, such as curve name.

        :return:
            None or a PreferredSignatureAlgorithms object
        (   R2   R$   R7   t%   _preferred_signature_algorithms_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt$   preferred_signature_algorithms_value   s    N(   R   R   RE   RG   R1   R    R$   R2   R;   R+   RI   RK   RM   R7   R<   R8   RJ   RL   RN   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRH   ×   s   	 	t   OCSPResponseStatusc           B` s8   e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6Z RS(   u
   successfuli    u   malformed_requesti   u   internal_errori   u	   try_lateri   u   sign_requiredi   u   unauthorizedi   (   R   R   R   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRO   1  s   t   ResponderIdc           B` s4   e  Z d  e i d d 6f d e i d d 6f g Z RS(   u   by_namei   u   explicitu   by_keyi   (   R   R   R   R   t   _alternatives(    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRP   <  s   t
   StatusGoodc           B` s    e  Z d  „  Z e d „  ƒ Z RS(   c         C` sS   | d k	 rF | d k rF t | t ƒ rF t t d t | ƒ ƒ ƒ ‚ n  d |  _ d S(   u`   
        Sets the value of the object

        :param value:
            None or 'good'
        u   gooduK   
                value must be one of None, "good", not %s
                t    N(   R;   t
   isinstanceR   t
   ValueErrorR   t   reprt   contents(   R3   t   value(    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR*   E  s
    (c         C` s   d S(   Nu   good(    (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR,   W  s    (   R   R   R*   R<   R,   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRR   D  s   	t   StatusUnknownc           B` s    e  Z d  „  Z e d „  ƒ Z RS(   c         C` sS   | d k	 rF | d k rF t | t ƒ rF t t d t | ƒ ƒ ƒ ‚ n  d |  _ d S(   uc   
        Sets the value of the object

        :param value:
            None or 'unknown'
        u   unknownuN   
                value must be one of None, "unknown", not %s
                RS   N(   R;   RT   R   RU   R   RV   RW   (   R3   RX   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR*   ^  s
    (c         C` s   d S(   Nu   unknown(    (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR,   p  s    (   R   R   R*   R<   R,   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRY   ]  s   	t   RevokedInfoc           B` s1   e  Z d  e f d e i d d 6e d 6f g Z RS(   u   revocation_timeu   revocation_reasoni    u   explicitu   optional(   R   R   R
   R   R1   R    (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRZ   u  s   	t
   CertStatusc           B` sG   e  Z d  e i d d 6f d e i d d 6f d e i d d 6f g Z RS(   u   goodi    u   implicitu   revokedi   u   unknowni   (   R   R   RR   RZ   RY   RQ   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR[   |  s   t   CrlIdc           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   crl_urli    u   explicitu   optionalu   crl_numi   u   crl_timei   (   R   R   R   R1   R   R
   R    (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR\   „  s   t   SingleResponseExtensionIdc           B` s8   e  Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6Z RS(   u   crlu   1.3.6.1.5.5.7.48.1.3u   archive_cutoffu   1.3.6.1.5.5.7.48.1.6u
   crl_reasonu	   2.5.29.21u   invalidity_dateu	   2.5.29.24u   certificate_issueru	   2.5.29.29u!   signed_certificate_timestamp_listu   1.3.6.1.4.1.11129.2.4.5(   R   R   R   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR]   Œ  s   t   SingleResponseExtensionc           B` si   e  Z d  e f d e i e d 6f d e f g Z d
 Z i e d 6e	 d 6e
 d 6e	 d 6e d 6e d	 6Z RS(   u   extn_idu   criticalu   defaultu
   extn_valueu   crlu   archive_cutoffu
   crl_reasonu   invalidity_dateu   certificate_issueru!   signed_certificate_timestamp_list(   u   extn_idu
   extn_value(   R   R   R]   R   R$   R   R    R%   R\   R
   R   R   R   R&   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR^   š  s   	t   SingleResponseExtensionsc           B` s   e  Z e Z RS(    (   R   R   R^   R(   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR_   ¬  s   t   SingleResponsec        	   B` sê   e  Z 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 g Z e Z	 d Z d Z d Z d Z d Z d Z d	 „  Z e d
 „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   u   cert_idu   cert_statusu   this_updateu   next_updatei    u   explicitu   optionalu   single_extensionsi   c         C` sŽ   t  ƒ  |  _ xr |  d D]f } | d j } d | } t |  | ƒ r] t |  | | d j ƒ n  | d j r |  j j | ƒ q q Wt |  _ d S(   uv   
        Sets common named extensions to private attributes and creates a list
        of critical extensions
        u   single_extensionsu   extn_idu	   _%s_valueu
   extn_valueu   criticalN(	   R*   R+   R,   R-   R.   R/   R0   R1   R2   (   R3   R4   R5   R6   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR7   Á  s    
c         C` s   |  j  s |  j ƒ  n  |  j S(   u²   
        Returns a set of the names (or OID if not a known extension) of the
        extensions marked as critical

        :return:
            A set of unicode strings
        (   R2   R7   R+   (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR8   Ó  s    
	c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   u¬   
        This extension is used to locate the CRL that a certificate's revocation
        is contained within.

        :return:
            None or a CrlId object
        (   R2   R$   R7   t
   _crl_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt	   crl_valueá  s    
c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   uÜ   
        This extension is used to indicate the date at which an archived
        (historical) certificate status entry will no longer be available.

        :return:
            None or a GeneralizedTime object
        (   R2   R$   R7   t   _archive_cutoff_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   archive_cutoff_valueï  s    
c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   uŽ   
        This extension indicates the reason that a certificate was revoked.

        :return:
            None or a CRLReason object
        (   R2   R$   R7   t   _crl_reason_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   crl_reason_valueý  s    	c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   u=  
        This extension indicates the suspected date/time the private key was
        compromised or the certificate became invalid. This would usually be
        before the revocation date, which is when the CA processed the
        revocation.

        :return:
            None or a GeneralizedTime object
        (   R2   R$   R7   t   _invalidity_date_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   invalidity_date_value
  s    c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   u—   
        This extension indicates the issuer of the certificate in question.

        :return:
            None or an x509.GeneralNames object
        (   R2   R$   R7   t   _certificate_issuer_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   certificate_issuer_value  s    	N(   R   R   R   R[   R
   R1   R_   R    R$   R2   R;   R+   Ra   Rc   Re   Rg   Ri   R7   R<   R8   Rb   Rd   Rf   Rh   Rj   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR`   °  s&   			 	t	   Responsesc           B` s   e  Z e Z RS(    (   R   R   R`   R(   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRk   (  s   t   ResponseDataExtensionIdc           B` s   e  Z i d  d 6d d 6Z RS(   u   nonceu   1.3.6.1.5.5.7.48.1.2u   extended_revokeu   1.3.6.1.5.5.7.48.1.9(   R   R   R   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRl   ,  s   t   ResponseDataExtensionc           B` sM   e  Z d  e f d e i e d 6f d e f g Z d Z i e d 6e	 d 6Z
 RS(   u   extn_idu   criticalu   defaultu
   extn_valueu   nonceu   extended_revoke(   u   extn_idu
   extn_value(   R   R   Rl   R   R$   R   R    R%   R   R   R&   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRm   3  s   	t   ResponseDataExtensionsc           B` s   e  Z e Z RS(    (   R   R   Rm   R(   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRn   A  s   t   ResponseDatac        	   B` s]   e  Z d  e i d d 6d d 6f d e f d e f d e f d e i d	 d 6e d
 6f g Z RS(   u   versioni    u   explicitu   v1u   defaultu   responder_idu   produced_atu	   responsesu   response_extensionsi   u   optional(	   R   R   R   RP   R
   Rk   Rn   R1   R    (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRo   E  s
   			t   BasicOCSPResponsec           B` sC   e  Z d  e f d e f d e f d e i d d 6e d 6f g Z RS(   u   tbs_response_datau   signature_algorithmu	   signatureu   certsi    u   explicitu   optional(   R   R   Ro   R   R   RF   R1   R    (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRp   O  s   			t   ResponseBytesc           B` s3   e  Z d  e f d e f g Z d Z i e d 6Z RS(   u   response_typeu   responseu   basic_ocsp_response(   u   response_typeu   response(   R   R   R>   R   R    R%   Rp   R&   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRq   X  s
   	t   OCSPResponsec           B` s   e  Z d  e f d e i d d 6e d 6f g Z e Z d Z	 d Z
 d Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d	 „  ƒ Z e d
 „  ƒ Z RS(   u   response_statusu   response_bytesi    u   explicitu   optionalc         C` s   t  ƒ  |  _ x |  d d j d d D]f } | d j } d | } t |  | ƒ rl t |  | | d j ƒ n  | d j r& |  j j | ƒ q& q& Wt |  _ d	 S(
   uv   
        Sets common named extensions to private attributes and creates a list
        of critical extensions
        u   response_bytesu   responseu   tbs_response_datau   response_extensionsu   extn_idu	   _%s_valueu
   extn_valueu   criticalN(	   R*   R+   R/   R,   R-   R.   R0   R1   R2   (   R3   R4   R5   R6   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR7   o  s     
c         C` s   |  j  s |  j ƒ  n  |  j S(   u²   
        Returns a set of the names (or OID if not a known extension) of the
        extensions marked as critical

        :return:
            A set of unicode strings
        (   R2   R7   R+   (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyR8     s    
	c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   u§   
        This extension is used to prevent replay attacks on the request/response
        exchange

        :return:
            None or an OctetString object
        (   R2   R$   R7   RI   (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRJ     s    
c         C` s#   |  j  t k r |  j ƒ  n  |  j S(   uÊ   
        This extension is used to signal that the responder will return a
        "revoked" status for non-issued certificates.

        :return:
            None or a Null object (if present)
        (   R2   R$   R7   t   _extended_revoke_value(   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   extended_revoke_value  s    
c         C` s   |  d d j  S(   u’   
        A shortcut into the BasicOCSPResponse sequence

        :return:
            None or an asn1crypto.ocsp.BasicOCSPResponse object
        u   response_bytesu   response(   R/   (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   basic_ocsp_response«  s    	c         C` s   |  d d j  d S(   u   
        A shortcut into the parsed, ResponseData sequence

        :return:
            None or an asn1crypto.ocsp.ResponseData object
        u   response_bytesu   responseu   tbs_response_data(   R/   (   R3   (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   response_data¶  s    	N(   R   R   RO   Rq   R1   R    R$   R2   R;   R+   RI   Rs   R7   R<   R8   RJ   Rt   Ru   Rv   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyRr   d  s   	 	N(I   t   __doc__t
   __future__R    R   R   R   t   _errorsR   t   algosR   R   t   coreR   R   R	   R
   R   R   R   R   R   R   R   R   R   t   crlR   R   t   keysR   t   x509R   R   R   R   R   R   R!   R"   R#   R'   R)   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   RO   RP   RR   RY   RZ   R[   R\   R]   R^   R_   R`   Rk   Rl   Rm   Rn   Ro   Rp   Rq   Rr   (    (    (    s.   lib/python2.7/site-packages/asn1crypto/ocsp.pyt   <module>   sZ   "X"	9	Zx
	