§
    ¡”jPJ  ã                   óÖ  — 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"  G d
„ de¦  «        Z# G d„ de¦  «        Z$ G d„ de¦  «        Z% G d„ de¦  «        Z& G d„ de¦  «        Z' G d„ de¦  «        Z( G d„ de¦  «        Z) G d„ de¦  «        Z* G d„ de¦  «        Z+ G d„ de¦  «        Z, G d„ de¦  «        Z- G d „ d!e¦  «        Z. G d"„ d#e¦  «        Z/ G d$„ d%e¦  «        Z0 G d&„ d'e¦  «        Z1 G d(„ d)e¦  «        Z2 G d*„ d+e¦  «        Z3 G d,„ d-e¦  «        Z4 G d.„ d/e¦  «        Z5 G d0„ d1e¦  «        Z6 G d2„ d3e¦  «        Z7 G d4„ d5e¦  «        Z8 G d6„ d7e¦  «        Z9 G d8„ d9e¦  «        Z: G d:„ d;e¦  «        Z; G d<„ d=e¦  «        Z< G d>„ d?e¦  «        Z= G d@„ dAe¦  «        Z> G dB„ dCe¦  «        Z? G dD„ dEe¦  «        Z@ G dF„ dGe¦  «        ZA G dH„ dIe¦  «        ZB G dJ„ dKe¦  «        ZC G dL„ dMe¦  «        ZD G dN„ dOe¦  «        ZE G dP„ dQe¦  «        ZF G dR„ dSe¦  «        ZG G dT„ dUe¦  «        ZHdVS )WzÒ
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.
é    )Úunicode_literalsÚdivisionÚabsolute_importÚprint_functioné   )Úunwrap)ÚDigestAlgorithmÚSignedDigestAlgorithm)ÚBooleanÚChoiceÚ
EnumeratedÚGeneralizedTimeÚ	IA5StringÚIntegerÚNullÚObjectIdentifierÚOctetBitStringÚOctetStringÚParsableOctetStringÚSequenceÚ
SequenceOf)ÚAuthorityInfoAccessSyntaxÚ	CRLReason)ÚPublicKeyAlgorithm)ÚCertificateÚGeneralNameÚGeneralNamesÚNamec                   ó   — e Zd ZddiZdS )ÚVersionr   Úv1N©Ú__name__Ú
__module__Ú__qualname__Ú_map© ó    ú^/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/asn1crypto/ocsp.pyr    r    (   s   € € € € € à	ˆ4ð€D€D€Dr(   r    c                   ó*   — e Zd ZdefdefdefdefgZdS )ÚCertIdÚhash_algorithmÚissuer_name_hashÚissuer_key_hashÚserial_numberN)r#   r$   r%   r	   r   r   Ú_fieldsr'   r(   r)   r+   r+   .   s5   € € € € € à	˜?Ð+Ø	˜[Ð)Ø	˜KÐ(Ø	˜'Ð"ð	€G€G€Gr(   r+   c                   ó   — e Zd ZdefdefgZdS )ÚServiceLocatorÚissuerÚlocatorN)r#   r$   r%   r   r   r0   r'   r(   r)   r2   r2   7   s&   € € € € € à	�4ÐØ	Ð-Ð.ð€G€G€Gr(   r2   c                   ó   — e Zd ZddiZdS )ÚRequestExtensionIdz1.3.6.1.5.5.7.48.1.7Úservice_locatorNr"   r'   r(   r)   r6   r6   >   s   € € € € € àÐ 1ð€D€D€Dr(   r6   c                   ó6   — e Zd ZdefdeddifdefgZdZdeiZ	dS )	ÚRequestExtensionÚextn_idÚcriticalÚdefaultFÚ
extn_value©r:   r=   r7   N)
r#   r$   r%   r6   r   r   r0   Ú	_oid_pairr2   Ú
_oid_specsr'   r(   r)   r9   r9   D   sI   € € € € € à	Ð&Ð'Ø	�W˜y¨%Ð0Ð1Ø	Ð*Ð+ð€Gð *€Ià˜>ð€J€J€Jr(   r9   c                   ó   — e Zd ZeZdS )ÚRequestExtensionsN)r#   r$   r%   r9   Ú_child_specr'   r(   r)   rB   rB   Q   s   € € € € € Ø"€K€K€Kr(   rB   c                   ód   — e Zd ZdefdedddœfgZdZdZdZd„ Z	e
d	„ ¦   «         Ze
d
„ ¦   «         ZdS )ÚRequestÚreq_certÚsingle_request_extensionsr   T©ÚexplicitÚoptionalFNc                 ó  — t          ¦   «         | _        | d         D ]g}|d         j        }d|z  }t          | |¦  «        rt	          | ||d         j        ¦  «         |d         j        r| j                             |¦  «         Œhd| _        dS )úv
        Sets common named extensions to private attributes and creates a list
        of critical extensions
        rG   r:   ú	_%s_valuer=   r;   TN©ÚsetÚ_critical_extensionsÚnativeÚhasattrÚsetattrÚparsedÚaddÚ_processed_extensions©ÚselfÚ	extensionÚnameÚattribute_names       r)   Ú_set_extensionszRequest._set_extensions_   sŸ   € õ %(¡E¤EˆÔ!àÐ9Ô:ð 	4ð 	4ˆIØ˜YÔ'Ô.ˆDØ(¨4Ñ/ˆNÝ�t˜^Ñ,Ô,ð NÝ˜˜n¨i¸Ô.EÔ.LÑMÔMÐMØ˜Ô$Ô+ð 4ØÔ)×-Ò-¨dÑ3Ô3Ð3øà%)ˆÔ"Ð"Ð"r(   c                 óF   — | j         s|                      ¦   «          | j        S ©z²
        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
        ©rV   r\   rP   ©rX   s    r)   Úcritical_extensionszRequest.critical_extensionsq   ó*   € ð Ô)ð 	#Ø× Ò Ñ"Ô"Ð"ØÔ(Ð(r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )z¿
        This extension is used when communicating with an OCSP responder that
        acts as a proxy for OCSP requests

        :return:
            None or a ServiceLocator object
        F)rV   r\   Ú_service_locator_valuer`   s    r)   Úservice_locator_valuezRequest.service_locator_value   ó-   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØÔ*Ð*r(   )r#   r$   r%   r+   rB   r0   rV   rP   rd   r\   Úpropertyra   re   r'   r(   r)   rE   rE   U   s�   € € € € € à	�VÐØ	$Ð&7ÀaÐUYÐ9ZÐ9ZÐ[ð€Gð
 "ÐØÐØ!Ðð*ð *ð *ð$ ð)ð )ñ „Xð)ð ð+ð +ñ „Xð+ð +ð +r(   rE   c                   ó   — e Zd ZeZdS )ÚRequestsN)r#   r$   r%   rE   rC   r'   r(   r)   ri   ri   Ž   s   € € € € € Ø€K€K€Kr(   ri   c                   ó   — e Zd ZddiZdS )ÚResponseTypez1.3.6.1.5.5.7.48.1.1Úbasic_ocsp_responseNr"   r'   r(   r)   rk   rk   ’   s   € € € € € àÐ 5ð€D€D€Dr(   rk   c                   ó   — e Zd ZeZdS )ÚAcceptableResponsesN)r#   r$   r%   rk   rC   r'   r(   r)   rn   rn   ˜   s   € € € € € Ø€K€K€Kr(   rn   c                   ó$   — e Zd ZdefdeddifgZdS )ÚPreferredSignatureAlgorithmÚsig_identifierÚcert_identifierrJ   TN)r#   r$   r%   r
   r   r0   r'   r(   r)   rp   rp   œ   s.   € € € € € à	Ð0Ð1Ø	Ð.°¸TÐ0BÐCð€G€G€Gr(   rp   c                   ó   — e Zd ZeZdS )ÚPreferredSignatureAlgorithmsN)r#   r$   r%   rp   rC   r'   r(   r)   rt   rt   £   s   € € € € € Ø-€K€K€Kr(   rt   c                   ó   — e Zd ZddddœZdS )ÚTBSRequestExtensionIdÚnonceÚacceptable_responsesÚpreferred_signature_algorithms)ú1.3.6.1.5.5.7.48.1.2z1.3.6.1.5.5.7.48.1.4z1.3.6.1.5.5.7.48.1.8Nr"   r'   r(   r)   rv   rv   §   s#   € € € € € à 'Ø 6Ø @ðð €D€D€Dr(   rv   c                   ó:   — e Zd ZdefdeddifdefgZdZee	e
dœZdS )	ÚTBSRequestExtensionr:   r;   r<   Fr=   r>   )rw   rx   ry   N)r#   r$   r%   rv   r   r   r0   r?   r   rn   rt   r@   r'   r(   r)   r|   r|   ¯   sR   € € € € € à	Ð)Ð*Ø	�W˜y¨%Ð0Ð1Ø	Ð*Ð+ð€Gð *€IàØ 3Ø*Fðð €J€J€Jr(   r|   c                   ó   — e Zd ZeZdS )ÚTBSRequestExtensionsN)r#   r$   r%   r|   rC   r'   r(   r)   r~   r~   ¾   s   € € € € € Ø%€K€K€Kr(   r~   c                   óB   — e Zd Zdedddœfdedddœfd	efd
edddœfgZdS )Ú
TBSRequestÚversionr   r!   ©rI   r<   Úrequestor_namer   TrH   Úrequest_listÚrequest_extensionsé   N)r#   r$   r%   r    r   ri   r~   r0   r'   r(   r)   r€   r€   Â   sU   € € € € € à	�G¨!¸Ð=Ð=Ð>Ø	˜;°QÀDÐ(IÐ(IÐJØ	˜Ð"Ø	Ð3À!ÐQUÐ5VÐ5VÐWð	€G€G€Gr(   r€   c                   ó   — e Zd ZeZdS )ÚCertificatesN)r#   r$   r%   r   rC   r'   r(   r)   rˆ   rˆ   Ë   s   € € € € € Ø€K€K€Kr(   rˆ   c                   ó,   — e Zd ZdefdefdedddœfgZdS )Ú	SignatureÚsignature_algorithmÚ	signatureÚcertsr   TrH   N)r#   r$   r%   r
   r   rˆ   r0   r'   r(   r)   rŠ   rŠ   Ï   s8   € € € € € à	Ð 5Ð6Ø	�nÐ%Ø	�,¨Q¸DÐ AÐ AÐBð€G€G€Gr(   rŠ   c                   ó˜   — e Zd Zdefdedddœfg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dS )ÚOCSPRequestÚtbs_requestÚoptional_signaturer   TrH   FNc                 ó&  — t          ¦   «         | _        | d         d         D ]g}|d         j        }d|z  }t          | |¦  «        rt	          | ||d         j        ¦  «         |d         j        r| j                             |¦  «         Œhd| _        dS )	rL   r�   r…   r:   rM   r=   r;   TNrN   rW   s       r)   r\   zOCSPRequest._set_extensionsã   s¤   € õ %(¡E¤EˆÔ!à˜mÔ,Ð-AÔBð 	4ð 	4ˆIØ˜YÔ'Ô.ˆDØ(¨4Ñ/ˆNÝ�t˜^Ñ,Ô,ð NÝ˜˜n¨i¸Ô.EÔ.LÑMÔMÐMØ˜Ô$Ô+ð 4ØÔ)×-Ò-¨dÑ3Ô3Ð3øà%)ˆÔ"Ð"Ð"r(   c                 óF   — | j         s|                      ¦   «          | j        S r^   r_   r`   s    r)   ra   zOCSPRequest.critical_extensionsõ   rb   r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )zÊ
        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
        F©rV   r\   Ú_nonce_valuer`   s    r)   Únonce_valuezOCSPRequest.nonce_value  ó-   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØÔ Ð r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )a(  
        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
        F)rV   r\   Ú_acceptable_responses_valuer`   s    r)   Úacceptable_responses_valuez&OCSPRequest.acceptable_responses_value  s-   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØÔ/Ð/r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )aj  
        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
        F)rV   r\   Ú%_preferred_signature_algorithms_valuer`   s    r)   Ú$preferred_signature_algorithms_valuez0OCSPRequest.preferred_signature_algorithms_value   s-   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØÔ9Ð9r(   )r#   r$   r%   r€   rŠ   r0   rV   rP   r–   rš   r�   r\   rg   ra   r—   r›   rž   r'   r(   r)   r�   r�   ×   sÏ   € € € € € à	˜
Ð#Ø	˜y°qÀdÐ*KÐ*KÐLð€Gð
 "ÐØÐØ€LØ"&ÐØ,0Ð)ð*ð *ð *ð$ ð)ð )ñ „Xð)ð ð!ð !ñ „Xð!ð ð0ð 0ñ „Xð0ð ð:ð :ñ „Xð:ð :ð :r(   r�   c                   ó    — e Zd ZdddddddœZdS )	ÚOCSPResponseStatusÚ
successfulÚmalformed_requestÚinternal_errorÚ	try_laterÚsign_requiredÚunauthorized)r   r   r†   é   é   é   Nr"   r'   r(   r)   r    r    1  s,   € € € € € àØØØØØðð €D€D€Dr(   r    c                   ó*   — e Zd ZdeddifdeddifgZdS )ÚResponderIdÚby_namerI   r   Úby_keyr†   N)r#   r$   r%   r   r   Ú_alternativesr'   r(   r)   r«   r«   <  s1   € € € € € à	�D˜: q˜/Ð*Ø	�; ¨Q Ð0ð€M€M€Mr(   r«   c                   ó*   — e Zd Zd„ Zed„ ¦   «         ZdS )Ú
StatusGoodc                 ó¢   — |�E|dk    r?t          |t          ¦  «        s*t          t          dt	          |¦  «        ¦  «        ¦  «        ‚d| _        dS )z`
        Sets the value of the object

        :param value:
            None or 'good'
        NÚgoodzK
                value must be one of None, "good", not %s
                r(   ©Ú
isinstancer   Ú
ValueErrorr   ÚreprÚcontents©rX   Úvalues     r)   rO   zStatusGood.setE  s[   € ð Ð ¨&¢ ½ÀEÍ4Ñ9PÔ9P Ý�Vðõ �U‘”ñ	ô ñ ô ð ð ˆŒˆˆr(   c                 ó   — dS )Nr²   r'   r`   s    r)   rQ   zStatusGood.nativeW  s   € àˆvr(   N©r#   r$   r%   rO   rg   rQ   r'   r(   r)   r°   r°   D  s>   € € € € € ðð ð ð$ ðð ñ „Xðð ð r(   r°   c                   ó*   — e Zd Zd„ Zed„ ¦   «         ZdS )ÚStatusUnknownc                 ó¢   — |�E|dk    r?t          |t          ¦  «        s*t          t          dt	          |¦  «        ¦  «        ¦  «        ‚d| _        dS )zc
        Sets the value of the object

        :param value:
            None or 'unknown'
        NÚunknownzN
                value must be one of None, "unknown", not %s
                r(   r³   r¸   s     r)   rO   zStatusUnknown.set^  s^   € ð Ð ¨)Ò!3Ð!3½JÀuÍdÑ<SÔ<SÐ!3Ý�Vðõ �U‘”ñ	ô ñ ô ð ð ˆŒˆˆr(   c                 ó   — dS )Nr¿   r'   r`   s    r)   rQ   zStatusUnknown.nativep  s   € àˆyr(   Nr»   r'   r(   r)   r½   r½   ]  s>   € € € € € ðð ð ð$ ðð ñ „Xðð ð r(   r½   c                   ó&   — e Zd ZdefdedddœfgZdS )ÚRevokedInfoÚrevocation_timeÚrevocation_reasonr   TrH   N)r#   r$   r%   r   r   r0   r'   r(   r)   rÂ   rÂ   u  s/   € € € € € à	˜OÐ,Ø	˜i°aÀTÐ)JÐ)JÐKð€G€G€Gr(   rÂ   c                   ó6   — 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 )	Ú
CertStatusr²   Úimplicitr   Úrevokedr   r¿   r†   N)r#   r$   r%   r°   rÂ   r½   r®   r'   r(   r)   rÆ   rÆ   |  s?   € € € € € à	�˜j¨!˜_Ð-Ø	�K *¨a Ð1Ø	�M J° ?Ð3ð€M€M€Mr(   rÆ   c                   ó<   — 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 )
ÚCrlIdÚcrl_urlr   TrH   Úcrl_numr   Úcrl_timer†   N)r#   r$   r%   r   r   r   r0   r'   r(   r)   rÊ   rÊ   „  sK   € € € € € à	�I¨A¸4Ð@Ð@ÐAØ	�G¨!¸Ð>Ð>Ð?Ø	�_°1À$Ð&GÐ&GÐHð€G€G€Gr(   rÊ   c                   ó    — e Zd ZdddddddœZdS )	ÚSingleResponseExtensionIdÚcrlÚarchive_cutoffÚ
crl_reasonÚinvalidity_dateÚcertificate_issuerÚ!signed_certificate_timestamp_list)z1.3.6.1.5.5.7.48.1.3z1.3.6.1.5.5.7.48.1.6z	2.5.29.21z	2.5.29.24z	2.5.29.29z1.3.6.1.4.1.11129.2.4.5Nr"   r'   r(   r)   rÏ   rÏ   Œ  s.   € € € € € à %Ø 0ð "Ø&Ø)à#Fð
ð 
€D€D€Dr(   rÏ   c                   ó@   — e Zd ZdefdeddifdefgZdZee	e
e	eedœZdS )	ÚSingleResponseExtensionr:   r;   r<   Fr=   r>   )rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   N)r#   r$   r%   rÏ   r   r   r0   r?   rÊ   r   r   r   r   r@   r'   r(   r)   r×   r×   š  s[   € € € € € à	Ð-Ð.Ø	�W˜y¨%Ð0Ð1Ø	Ð*Ð+ð€Gð *€IàØ)ØØ*Ø*Ø-8ðð €J€J€Jr(   r×   c                   ó   — e Zd ZeZdS )ÚSingleResponseExtensionsN)r#   r$   r%   r×   rC   r'   r(   r)   rÙ   rÙ   ¬  s   € € € € € Ø)€K€K€Kr(   rÙ   c            	       óæ   — e Zd Zdefdefdefdedddœfded	ddœfgZd
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dS )ÚSingleResponseÚcert_idÚcert_statusÚthis_updateÚnext_updater   TrH   Úsingle_extensionsr   FNc                 ó  — t          ¦   «         | _        | d         D ]g}|d         j        }d|z  }t          | |¦  «        rt	          | ||d         j        ¦  «         |d         j        r| j                             |¦  «         Œhd| _        dS )rL   rà   r:   rM   r=   r;   TNrN   rW   s       r)   r\   zSingleResponse._set_extensionsÁ  sŸ   € õ %(¡E¤EˆÔ!àÐ1Ô2ð 	4ð 	4ˆIØ˜YÔ'Ô.ˆDØ(¨4Ñ/ˆNÝ�t˜^Ñ,Ô,ð NÝ˜˜n¨i¸Ô.EÔ.LÑMÔMÐMØ˜Ô$Ô+ð 4ØÔ)×-Ò-¨dÑ3Ô3Ð3øà%)ˆÔ"Ð"Ð"r(   c                 óF   — | j         s|                      ¦   «          | j        S r^   r_   r`   s    r)   ra   z"SingleResponse.critical_extensionsÓ  rb   r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )z¬
        This extension is used to locate the CRL that a certificate's revocation
        is contained within.

        :return:
            None or a CrlId object
        F)rV   r\   Ú
_crl_valuer`   s    r)   Ú	crl_valuezSingleResponse.crl_valueá  s,   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØŒÐr(   c                 óJ   — | j         du r|                      ¦   «          | j        S )zÜ
        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
        F)rV   r\   Ú_archive_cutoff_valuer`   s    r)   Úarchive_cutoff_valuez#SingleResponse.archive_cutoff_valueï  s-   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØÔ)Ð)r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )zŽ
        This extension indicates the reason that a certificate was revoked.

        :return:
            None or a CRLReason object
        F)rV   r\   Ú_crl_reason_valuer`   s    r)   Úcrl_reason_valuezSingleResponse.crl_reason_valueý  s-   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØÔ%Ð%r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )a=  
        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
        F)rV   r\   Ú_invalidity_date_valuer`   s    r)   Úinvalidity_date_valuez$SingleResponse.invalidity_date_value
  s-   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØÔ*Ð*r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )z—
        This extension indicates the issuer of the certificate in question.

        :return:
            None or an x509.GeneralNames object
        F)rV   r\   Ú_certificate_issuer_valuer`   s    r)   Úcertificate_issuer_valuez'SingleResponse.certificate_issuer_value  s-   € ð Ô%¨Ð.Ð.Ø× Ò Ñ"Ô"Ð"ØÔ-Ð-r(   )r#   r$   r%   r+   rÆ   r   rÙ   r0   rV   rP   rä   rç   rê   rí   rð   r\   rg   ra   rå   rè   rë   rî   rñ   r'   r(   r)   rÛ   rÛ   °  s5  € € € € € à	�FÐØ	˜
Ð#Ø	˜Ð(Ø	˜°aÀTÐ)JÐ)JÐKØ	Ð6ÀQÐTXÐ8YÐ8YÐZð€Gð "ÐØÐØ€JØ ÐØÐØ!ÐØ $Ðð*ð *ð *ð$ ð)ð )ñ „Xð)ð ðð ñ „Xðð ð*ð *ñ „Xð*ð ð
&ð 
&ñ „Xð
&ð ð+ð +ñ „Xð+ð ð
.ð 
.ñ „Xð
.ð 
.ð 
.r(   rÛ   c                   ó   — e Zd ZeZdS )Ú	ResponsesN)r#   r$   r%   rÛ   rC   r'   r(   r)   ró   ró   (  s   € € € € € Ø €K€K€Kr(   ró   c                   ó   — e Zd ZdddœZdS )ÚResponseDataExtensionIdrw   Úextended_revoke)rz   z1.3.6.1.5.5.7.48.1.9Nr"   r'   r(   r)   rõ   rõ   ,  s    € € € € € à 'Ø 1ðð €D€D€Dr(   rõ   c                   ó8   — e Zd ZdefdeddifdefgZdZee	dœZ
dS )	ÚResponseDataExtensionr:   r;   r<   Fr=   r>   )rw   rö   N)r#   r$   r%   rõ   r   r   r0   r?   r   r   r@   r'   r(   r)   rø   rø   3  sO   € € € € € à	Ð+Ð,Ø	�W˜y¨%Ð0Ð1Ø	Ð*Ð+ð€Gð *€IàØðð €J€J€Jr(   rø   c                   ó   — e Zd ZeZdS )ÚResponseDataExtensionsN)r#   r$   r%   rø   rC   r'   r(   r)   rú   rú   A  s   € € € € € Ø'€K€K€Kr(   rú   c            	       ó@   — e Zd Zdedddœfdefdefdefded	d
dœfgZdS )ÚResponseDatar�   r   r!   r‚   Úresponder_idÚproduced_atÚ	responsesÚresponse_extensionsr   TrH   N)	r#   r$   r%   r    r«   r   ró   rú   r0   r'   r(   r)   rü   rü   E  sS   € € € € € à	�G¨!¸Ð=Ð=Ð>Ø	˜Ð%Ø	˜Ð(Ø	�iÐ Ø	Ð 6ÀQÐTXÐ8YÐ8YÐZð€G€G€Gr(   rü   c                   ó2   — e Zd ZdefdefdefdedddœfgZdS )	ÚBasicOCSPResponseÚtbs_response_datar‹   rŒ   r�   r   TrH   N)r#   r$   r%   rü   r
   r   rˆ   r0   r'   r(   r)   r  r  O  s@   € € € € € à	˜lÐ+Ø	Ð 5Ð6Ø	�nÐ%Ø	�,¨Q¸DÐ AÐ AÐBð	€G€G€Gr(   r  c                   ó*   — e Zd ZdefdefgZdZdeiZdS )ÚResponseBytesÚresponse_typeÚresponse)r  r  rl   N)	r#   r$   r%   rk   r   r0   r?   r  r@   r'   r(   r)   r  r  X  s:   € € € € € à	˜,Ð'Ø	Ð(Ð)ð€Gð
 .€IàÐ0ð€J€J€Jr(   r  c                   óª   — e Zd Zdefdedddœfg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dS )ÚOCSPResponseÚresponse_statusÚresponse_bytesr   TrH   FNc                 óH  — t          ¦   «         | _        | d         d         j        d         d         D ]g}|d         j        }d|z  }t	          | |¦  «        rt          | ||d         j        ¦  «         |d         j        r| j                             |¦  «         Œhd	| _        d
S )rL   r  r  r  r   r:   rM   r=   r;   TN)rO   rP   rT   rQ   rR   rS   rU   rV   rW   s       r)   r\   zOCSPResponse._set_extensionso  s³   € õ %(¡E¤EˆÔ!àÐ.Ô/°
Ô;ÔBÐCVÔWÐXmÔnð 	4ð 	4ˆIØ˜YÔ'Ô.ˆDØ(¨4Ñ/ˆNÝ�t˜^Ñ,Ô,ð NÝ˜˜n¨i¸Ô.EÔ.LÑMÔMÐMØ˜Ô$Ô+ð 4ØÔ)×-Ò-¨dÑ3Ô3Ð3øà%)ˆÔ"Ð"Ð"r(   c                 óF   — | j         s|                      ¦   «          | j        S r^   r_   r`   s    r)   ra   z OCSPResponse.critical_extensions�  rb   r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )z§
        This extension is used to prevent replay attacks on the request/response
        exchange

        :return:
            None or an OctetString object
        Fr•   r`   s    r)   r—   zOCSPResponse.nonce_value�  r˜   r(   c                 óJ   — | j         du r|                      ¦   «          | j        S )zÊ
        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)
        F)rV   r\   Ú_extended_revoke_valuer`   s    r)   Úextended_revoke_valuez"OCSPResponse.extended_revoke_value�  rf   r(   c                 ó(   — | d         d         j         S )z’
        A shortcut into the BasicOCSPResponse sequence

        :return:
            None or an asn1crypto.ocsp.BasicOCSPResponse object
        r  r  ©rT   r`   s    r)   rl   z OCSPResponse.basic_ocsp_response«  s   € ð Ð$Ô% jÔ1Ô8Ð8r(   c                 ó4   — | d         d         j         d         S )z�
        A shortcut into the parsed, ResponseData sequence

        :return:
            None or an asn1crypto.ocsp.ResponseData object
        r  r  r  r  r`   s    r)   Úresponse_datazOCSPResponse.response_data¶  s   € ð Ð$Ô% jÔ1Ô8Ð9LÔMÐMr(   )r#   r$   r%   r    r  r0   rV   rP   r–   r  r\   rg   ra   r—   r  rl   r  r'   r(   r)   r	  r	  d  sê   € € € € € à	Ð.Ð/Ø	˜=°qÀdÐ*KÐ*KÐLð€Gð
 "ÐØÐØ€LØ!Ðð*ð *ð *ð$ ð)ð )ñ „Xð)ð ð!ð !ñ „Xð!ð ð+ð +ñ „Xð+ð ð9ð 9ñ „Xð9ð ðNð Nñ „XðNð Nð Nr(   r	  N)IÚ__doc__Ú
__future__r   r   r   r   Ú_errorsr   Úalgosr	   r
   Úcorer   r   r   r   r   r   r   r   r   r   r   r   r   rÐ   r   r   Úkeysr   Úx509r   r   r   r   r    r+   r2   r6   r9   rB   rE   ri   rk   rn   rp   rt   rv   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)   ú<module>r     s¸  ððð ð SÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rà Ð Ð Ð Ð Ð Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 6Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø $Ð $Ð $Ð $Ð $Ð $Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ˆgñ ô ð ðð ð ð ð ˆXñ ô ð ðð ð ð ð �Xñ ô ð ðð ð ð ð Ð)ñ ô ð ð
ð 
ð 
ð 
ð 
�xñ 
ô 
ð 
ð#ð #ð #ð #ð #˜
ñ #ô #ð #ð6+ð 6+ð 6+ð 6+ð 6+ˆhñ 6+ô 6+ð 6+ðrð ð ð ð ˆzñ ô ð ðð ð ð ð Ð#ñ ô ð ðð ð ð ð ˜*ñ ô ð ðð ð ð ð  (ñ ô ð ð.ð .ð .ð .ð . :ñ .ô .ð .ðð ð ð ð Ð,ñ ô ð ðð ð ð ð ˜(ñ ô ð ð&ð &ð &ð &ð &˜:ñ &ô &ð &ðð ð ð ð �ñ ô ð ðð ð ð ð �:ñ ô ð ðð ð ð ð �ñ ô ð ðW:ð W:ð W:ð W:ð W:�(ñ W:ô W:ð W:ðtð ð ð ð ˜ñ ô ð ðð ð ð ð �&ñ ô ð ðð ð ð ð �ñ ô ð ð2ð ð ð ð �Dñ ô ð ð0ð ð ð ð �(ñ ô ð ðð ð ð ð �ñ ô ð ðð ð ð ð ˆHñ ô ð ðð ð ð ð Ð 0ñ ô ð ðð ð ð ð ˜hñ ô ð ð$*ð *ð *ð *ð *˜zñ *ô *ð *ðu.ð u.ð u.ð u.ð u.�Xñ u.ô u.ð u.ðp!ð !ð !ð !ð !�
ñ !ô !ð !ðð ð ð ð Ð.ñ ô ð ðð ð ð ð ˜Hñ ô ð ð(ð (ð (ð (ð (˜Zñ (ô (ð (ðð ð ð ð �8ñ ô ð ðð ð ð ð ˜ñ ô ð ð	ð 	ð 	ð 	ð 	�Hñ 	ô 	ð 	ð[Nð [Nð [Nð [Nð [N�8ñ [Nô [Nð [Nð [Nð [Nr(   