ó
    |ñ:i›1  ã                  ó  • S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr   " S	 S
\R                   5      r " S S\R                   5      r\R&                  \R(                  \R*                  \R,                  \R.                  4rSS jr " S S\R                   5      r " S S5      r\	R8                  r\	R:                  r\	R<                  r " S S5      r " S S5      r \	RB                  r!\	RD                  r"g)é    )ÚannotationsN)ÚIterable)ÚutilsÚx509)Úocsp)Úhashes)Ú CertificateIssuerPrivateKeyTypes)Ú_reject_duplicate_extensionc                  ó   • \ rS rSrSrSrSrg)ÚOCSPResponderEncodingé   zBy HashzBy Name© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚHASHÚNAMEÚ__static_attributes__r   ó    ÚY/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/cryptography/x509/ocsp.pyr   r      s   † Ø€DØƒDr   r   c                  ó,   • \ rS rSrSrSrSrSrSrSr	Sr
g	)
ÚOCSPResponseStatusé   r   é   é   é   é   é   r   N)r   r   r   r   Ú
SUCCESSFULÚMALFORMED_REQUESTÚINTERNAL_ERRORÚ	TRY_LATERÚSIG_REQUIREDÚUNAUTHORIZEDr   r   r   r   r   r      s!   † Ø€JØÐØ€NØ€IØ€LØƒLr   r   c                óD   • [        U [        5      (       d  [        S5      eg )Nz9Algorithm must be SHA1, SHA224, SHA256, SHA384, or SHA512)Ú
isinstanceÚ_ALLOWED_HASHESÚ
ValueError)Ú	algorithms    r   Ú_verify_algorithmr+   *   s$   € Ü�i¤×1Ñ1ÜØGó
ð 	
ð 2r   c                  ó    • \ rS rSrSrSrSrSrg)ÚOCSPCertStatusé1   r   r   r   r   N)r   r   r   r   ÚGOODÚREVOKEDÚUNKNOWNr   r   r   r   r-   r-   1   s   † Ø€DØ€GØƒGr   r-   c                  ó>   • \ rS rSr                SS jrSrg)Ú_SingleResponseé7   c	                óv  • [        U5        [        U[        R                  5      (       d  [        S5      eUb*  [        U[        R                  5      (       d  [        S5      eXl        X l        X0l        XPl        X`l        [        U[        5      (       d  [        S5      eU[        R                  La  Ub  [        S5      eUb  [        S5      eOW[        U[        R                  5      (       d  [        S5      eUb*  [        U[        R                  5      (       d  [        S5      eX@l        Xpl        X€l        g )Nz%this_update must be a datetime objectz-next_update must be a datetime object or Nonez8cert_status must be an item from the OCSPCertStatus enumzBrevocation_time can only be provided if the certificate is revokedzDrevocation_reason can only be provided if the certificate is revokedz)revocation_time must be a datetime objectzCrevocation_reason must be an item from the ReasonFlags enum or None)r+   r'   ÚdatetimeÚ	TypeErrorÚ_respÚ
_resp_hashÚ
_algorithmÚ_this_updateÚ_next_updater-   r0   r)   r   ÚReasonFlagsÚ_cert_statusÚ_revocation_timeÚ_revocation_reason)	ÚselfÚrespÚ	resp_hashr*   Úcert_statusÚthis_updateÚnext_updateÚrevocation_timeÚrevocation_reasons	            r   Ú__init__Ú_SingleResponse.__init__8   s;  € ô 	˜)Ô$Ü˜+¤x×'8Ñ'8×9Ñ9ÜÐCÓDÐDØÑ"¬:Øœ×*Ñ*÷,
ñ ,
ô ÐKÓLÐLàŒ
Ø#ŒØ#ŒØ'ÔØ'Ôä˜+¤~×6Ñ6ÜØJóð ð œn×4Ñ4Ò4ØÑ*Ü ð!óð ð !Ñ,Ü ð"óð ð -ô ˜o¬x×/@Ñ/@×AÑAÜÐ KÓLÐLà Ñ,´ZØ!¤4×#3Ñ#3÷6ñ 6ô  ð#óð ð
 (ÔØ /ÔØ"3Õr   )r:   r>   r<   r8   r9   r@   r?   r;   N)rB   z0tuple[x509.Certificate, x509.Certificate] | NonerC   ztuple[bytes, bytes, int] | Noner*   úhashes.HashAlgorithmrD   r-   rE   údatetime.datetimerF   údatetime.datetime | NonerG   rM   rH   úx509.ReasonFlags | None)r   r   r   r   rI   r   r   r   r   r3   r3   7   sU   † ð64à>ð64ð 3ð64ð (ð	64ð
 $ð64ð 'ð64ð .ð64ð 2ð64ð 3÷64r   r3   c                  óŽ   • \ rS rSrSS/ 4       S	S jjr        S
S jr          SS jr      SS jrSS jrSr	g)ÚOCSPRequestBuilderév   Nc                ó(   • Xl         X l        X0l        g ©N)Ú_requestÚ_request_hashÚ_extensions)rA   ÚrequestÚrequest_hashÚ
extensionss       r   rI   ÚOCSPRequestBuilder.__init__w   s   € ð  ŒØ)ÔØ%Õr   c                ó:  • U R                   c  U R                  b  [        S5      e[        U5        [	        U[
        R                  5      (       a  [	        U[
        R                  5      (       d  [        S5      e[        XU4U R                  U R                  5      $ )Nú.Only one certificate can be added to a requestú%cert and issuer must be a Certificate)
rT   rU   r)   r+   r'   r   ÚCertificater7   rP   rV   )rA   ÚcertÚissuerr*   s       r   Úadd_certificateÚ"OCSPRequestBuilder.add_certificate…   sŠ   € ð �=‰=Ñ$¨×(:Ñ(:Ñ(FÜÐMÓNÐNä˜)Ô$Ü˜$¤× 0Ñ 0×1Ñ1¼Ø”D×$Ñ$÷:
ñ :
ô ÐCÓDÐDä!Ø˜9Ð% t×'9Ñ'9¸4×;KÑ;Kó
ð 	
r   c                ó¾  • U R                   c  U R                  b  [        S5      e[        U[        5      (       d  [        S5      e[        U5        [        R                  " SU5        [        R                  " SU5        UR                  [        U5      :w  d  UR                  [        U5      :w  a  [        S5      e[        U R                   XX44U R                  5      $ )Nr\   ú serial_number must be an integerÚissuer_name_hashÚissuer_key_hashú`issuer_name_hash and issuer_key_hash must be the same length as the digest size of the algorithm)rT   rU   r)   r'   Úintr7   r+   r   Ú_check_bytesÚdigest_sizeÚlenrP   rV   )rA   re   rf   Úserial_numberr*   s        r   Úadd_certificate_by_hashÚ*OCSPRequestBuilder.add_certificate_by_hash˜   sÍ   € ð �=‰=Ñ$¨×(:Ñ(:Ñ(FÜÐMÓNÐNä˜-¬×-Ñ-ÜÐ>Ó?Ð?ä˜)Ô$Ü×ÒÐ-Ð/?Ô@Ü×ÒÐ,¨oÔ>Ø× Ñ ¤CØó%
ó 
à×"Ñ"¤c¨/Ó&:Ó:Üð6óð ô
 "Ø�M‰MØ°ÐIØ×Ñó
ð 	
r   c                ó   • [        U[        R                  5      (       d  [        S5      e[        R                  " UR
                  X!5      n[        X0R                  5        [        U R                  U R                  / U R                  QUP5      $ ©Nz"extension must be an ExtensionType)r'   r   ÚExtensionTyper7   Ú	ExtensionÚoidr
   rV   rP   rT   rU   ©rA   ÚextvalÚcriticalÚ	extensions       r   Úadd_extensionÚ OCSPRequestBuilder.add_extension¶   st   € ô ˜&¤$×"4Ñ"4×5Ñ5ÜÐ@ÓAÐAä—N’N 6§:¡:¨xÓ@ˆ	Ü# I×/?Ñ/?Ô@ä!Ø�M‰M˜4×-Ñ-Ð/M°×1AÑ1AÐ/MÀ9Ð/Mó
ð 	
r   c                óx   • U R                   c  U R                  c  [        S5      e[        R                  " U 5      $ )Nz*You must add a certificate before building)rT   rU   r)   r   Úcreate_ocsp_request)rA   s    r   ÚbuildÚOCSPRequestBuilder.buildÃ   s4   € Ø�=‰=Ñ  T×%7Ñ%7Ñ%?ÜÐIÓJÐJä×'Ò'¨Ó-Ð-r   )rV   rT   rU   )rW   zFtuple[x509.Certificate, x509.Certificate, hashes.HashAlgorithm] | NonerX   z5tuple[bytes, bytes, int, hashes.HashAlgorithm] | NonerY   ú(list[x509.Extension[x509.ExtensionType]]ÚreturnÚNone)r_   úx509.Certificater`   r�   r*   rK   r   rP   )
re   Úbytesrf   r‚   rl   rh   r*   rK   r   rP   )ru   úx509.ExtensionTyperv   Úboolr   rP   )r   ÚOCSPRequest)
r   r   r   r   rI   ra   rm   rx   r|   r   r   r   r   rP   rP   v   s¼   † ð àØ?Að&ðð&ðð&ð =ð&ð 
õ&ð
àð
ð !ð
ð (ð	
ð
 
ô
ð&
àð
ð ð
ð ð	
ð
 (ð
ð 
ô
ð<
Ø(ð
Ø48ð
à	ô
÷.r   rP   c                  ó  • \ rS rSrSSS/ 4       SS jjr                  SS jr                    SS jr      SS jr    SS jr      SS jr	      SS	 jr
\    SS
 j5       rSrg)ÚOCSPResponseBuilderéÊ   Nc                ó4   • Xl         X l        X0l        X@l        g rS   )Ú	_responseÚ_responder_idÚ_certsrV   )rA   ÚresponseÚresponder_idÚcertsrY   s        r   rI   ÚOCSPResponseBuilder.__init__Ë   s   € ð "ŒØ)ÔØŒØ%Õr   c	           
     óB  • U R                   b  [        S5      e[        U[        R                  5      (       a  [        U[        R                  5      (       d  [        S5      e[        X4S UUUUUU5      n	[        U	U R                  U R                  U R                  5      $ )Nú#Only one response per OCSPResponse.r]   )rŠ   r)   r'   r   r^   r7   r3   r‡   r‹   rŒ   rV   )
rA   r_   r`   r*   rD   rE   rF   rG   rH   Ú
singleresps
             r   Úadd_responseÚ OCSPResponseBuilder.add_responseØ   s¡   € ð �>‰>Ñ%ÜÐBÓCÐCä˜$¤× 0Ñ 0×1Ñ1¼Ø”D×$Ñ$÷:
ñ :
ô ÐCÓDÐDä$ØˆNØØØØØØØó	
ˆ
ô #ØØ×ÑØ�K‰KØ×Ñó	
ð 	
r   c
           
     óÞ  • U R                   b  [        S5      e[        U[        5      (       d  [	        S5      e[
        R                  " SU5        [
        R                  " SU5        [        U5        UR                  [        U5      :w  d  UR                  [        U5      :w  a  [        S5      e[        S XU4UUUUUU	5      n
[        U
U R                  U R                  U R                  5      $ )Nr’   rd   re   rf   rg   )rŠ   r)   r'   rh   r7   r   ri   r+   rj   rk   r3   r‡   r‹   rŒ   rV   )rA   re   rf   rl   r*   rD   rE   rF   rG   rH   r“   s              r   Úadd_response_by_hashÚ(OCSPResponseBuilder.add_response_by_hashü   sï   € ð �>‰>Ñ%ÜÐBÓCÐCä˜-¬×-Ñ-ÜÐ>Ó?Ð?ä×ÒÐ-Ð/?Ô@Ü×ÒÐ,¨oÔ>Ü˜)Ô$Ø× Ñ ¤CØó%
ó 
à×"Ñ"¤c¨/Ó&:Ó:Üð6óð ô
 %ØØ°Ð>ØØØØØØó	
ˆ
ô #ØØ×ÑØ�K‰KØ×Ñó	
ð 	
r   c                ó   • U R                   b  [        S5      e[        U[        R                  5      (       d  [        S5      e[        U[        5      (       d  [        S5      e[        U R                  X!4U R                  U R                  5      $ )Nz!responder_id can only be set oncez$responder_cert must be a Certificatez6encoding must be an element from OCSPResponderEncoding)r‹   r)   r'   r   r^   r7   r   r‡   rŠ   rŒ   rV   )rA   ÚencodingÚresponder_certs      r   rŽ   Ú OCSPResponseBuilder.responder_id*  s…   € ð ×ÑÑ)ÜÐ@ÓAÐAÜ˜.¬$×*:Ñ*:×;Ñ;ÜÐBÓCÐCÜ˜(Ô$9×:Ñ:ÜØHóð ô #Ø�N‰NØÐ&Ø�K‰KØ×Ñó	
ð 	
r   c                ó  • U R                   b  [        S5      e[        U5      n[        U5      S:X  a  [        S5      e[	        S U 5       5      (       d  [        S5      e[        U R                  U R                  UU R                  5      $ )Nz!certificates may only be set oncer   zcerts must not be an empty listc              3  óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7frS   )r'   r   r^   )Ú.0Úxs     r   Ú	<genexpr>Ú3OCSPResponseBuilder.certificates.<locals>.<genexpr>E  s    é € ÐBºE°q”:˜a¤×!1Ñ!1×2Ð2ºEùs   ‚')z$certs must be a list of Certificates)
rŒ   r)   Úlistrk   Úallr7   r‡   rŠ   r‹   rV   )rA   r�   s     r   ÚcertificatesÚ OCSPResponseBuilder.certificates=  s€   € ð �;‰;Ñ"ÜÐ@ÓAÐAÜ�U“ˆÜˆu‹:˜‹?ÜÐ>Ó?Ð?ÜÑB¹EÓB×BÑBÜÐBÓCÐCÜ"Ø�N‰NØ×ÑØØ×Ñó	
ð 	
r   c                ó6  • [        U[        R                  5      (       d  [        S5      e[        R                  " UR
                  X!5      n[        X0R                  5        [        U R                  U R                  U R                  / U R                  QUP5      $ rp   )r'   r   rq   r7   rr   rs   r
   rV   r‡   rŠ   r‹   rŒ   rt   s       r   rx   Ú!OCSPResponseBuilder.add_extensionN  s|   € ô ˜&¤$×"4Ñ"4×5Ñ5ÜÐ@ÓAÐAä—N’N 6§:¡:¨xÓ@ˆ	Ü# I×/?Ñ/?Ô@ä"Ø�N‰NØ×ÑØ�K‰KØ*ˆd×ÑÐ* 	Ð*ó	
ð 	
r   c                ó®   • U R                   c  [        S5      eU R                  c  [        S5      e[        R                  " [
        R                  XU5      $ )Nz&You must add a response before signingz*You must add a responder_id before signing)rŠ   r)   r‹   r   Úcreate_ocsp_responser   r    )rA   Úprivate_keyr*   s      r   ÚsignÚOCSPResponseBuilder.sign^  sR   € ð
 �>‰>Ñ!ÜÐEÓFÐFØ×ÑÑ%ÜÐIÓJÐJä×(Ò(Ü×)Ñ)¨4¸ió
ð 	
r   c                ó°   • [        U[        5      (       d  [        S5      eU[        R                  L a  [	        S5      e[
        R                  " US S S 5      $ )Nz7response_status must be an item from OCSPResponseStatusz$response_status cannot be SUCCESSFUL)r'   r   r7   r    r)   r   rª   )ÚclsÚresponse_statuss     r   Úbuild_unsuccessfulÚ&OCSPResponseBuilder.build_unsuccessfull  sV   € ô ˜/Ô+=×>Ñ>ÜØIóð ð Ô0×;Ñ;Ò;ÜÐCÓDÐDä×(Ò(¨¸$ÀÀdÓKÐKr   )rŒ   rV   r‹   rŠ   )r�   z_SingleResponse | NonerŽ   z5tuple[x509.Certificate, OCSPResponderEncoding] | Noner�   zlist[x509.Certificate] | NonerY   r~   )r_   r�   r`   r�   r*   rK   rD   r-   rE   rL   rF   rM   rG   rM   rH   rN   r   r‡   )re   r‚   rf   r‚   rl   rh   r*   rK   rD   r-   rE   rL   rF   rM   rG   rM   rH   rN   r   r‡   )rš   r   r›   r�   r   r‡   )r�   zIterable[x509.Certificate]r   r‡   )ru   rƒ   rv   r„   r   r‡   )r«   r	   r*   zhashes.HashAlgorithm | Noner   ÚOCSPResponse)r°   r   r   r³   )r   r   r   r   rI   r”   r—   rŽ   r¥   rx   r¬   Úclassmethodr±   r   r   r   r   r‡   r‡   Ê   s™  † ð ,0àØ/3Ø?Að&à(ð&ðð&ð
 -ð&ð =õ&ð"
àð"
ð !ð"
ð (ð	"
ð
 $ð"
ð 'ð"
ð .ð"
ð 2ð"
ð 3ð"
ð 
ô"
ðH,
àð,
ð ð,
ð ð	,
ð
 (ð,
ð $ð,
ð 'ð,
ð .ð,
ð 2ð,
ð 3ð,
ð 
ô,
ð\
Ø-ð
Ø?Oð
à	ô
ð&
Ø/ð
à	ô
ð"
Ø(ð
Ø48ð
à	ô
ð 
à5ð
ð /ð
ð 
ô	
ð ð
LØ0ð
Là	ó
Ló ó
Lr   r‡   )r*   rK   r   r€   )#Ú
__future__r   r6   Úcollections.abcr   Úcryptographyr   r   Ú"cryptography.hazmat.bindings._rustr   Úcryptography.hazmat.primitivesr   Ú/cryptography.hazmat.primitives.asymmetric.typesr	   Úcryptography.x509.baser
   ÚEnumr   r   ÚSHA1ÚSHA224ÚSHA256ÚSHA384ÚSHA512r(   r+   r-   r3   r…   r³   ÚOCSPSingleResponserP   r‡   Úload_der_ocsp_requestÚload_der_ocsp_responser   r   r   Ú<module>rÅ      sé   ðõ
 #ã Ý $ç $Ý 3Ý 1õõ ?ô˜EŸJ™Jô ô
˜Ÿ™ô ð ‡K�KØ
‡M�MØ
‡M�MØ
‡M�MØ
‡M�Mð€ô
ô�U—Z‘Zô ÷74ñ 74ðt ×Ñ€Ø× Ñ €Ø×,Ñ,Ð ÷Q.ñ Q.÷hmLñ mLð` ×2Ñ2Ð Ø×4Ñ4Ñ r   