Ë
    €V.j›1  ã                  ó  — d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ  G d	„ d
ej                   «      Z G d„ dej                   «      Zej&                  ej(                  ej*                  ej,                  ej.                  fZdd„Z G d„ dej                   «      Z G d„ d«      Ze	j8                  Ze	j:                  Ze	j<                  Z G d„ d«      Z G d„ d«      Z e	jB                  Z!e	jD                  Z"y)é    )ÚannotationsN)ÚIterable)ÚutilsÚx509)Úocsp)Úhashes)Ú CertificateIssuerPrivateKeyTypes)Ú_reject_duplicate_extensionc                  ó   — e Zd ZdZdZy)ÚOCSPResponderEncodingzBy HashzBy NameN)Ú__name__Ú
__module__Ú__qualname__ÚHASHÚNAME© ó    úXC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\cryptography/x509/ocsp.pyr   r      s   „ Ø€DØ�Dr   r   c                  ó$   — e Zd ZdZdZdZdZdZdZy)ÚOCSPResponseStatusr   é   é   é   é   é   N)	r   r   r   Ú
SUCCESSFULÚMALFORMED_REQUESTÚINTERNAL_ERRORÚ	TRY_LATERÚSIG_REQUIREDÚUNAUTHORIZEDr   r   r   r   r      s!   „ Ø€JØÐØ€NØ€IØ€LØ�Lr   r   c                ó:   — t        | t        «      st        d«      ‚y )Nz9Algorithm must be SHA1, SHA224, SHA256, SHA384, or SHA512)Ú
isinstanceÚ_ALLOWED_HASHESÚ
ValueError)Ú	algorithms    r   Ú_verify_algorithmr'   *   s!   € Ü�i¤Ô1ÜØGó
ð 	
ð 2r   c                  ó   — e Zd ZdZdZdZy)ÚOCSPCertStatusr   r   r   N)r   r   r   ÚGOODÚREVOKEDÚUNKNOWNr   r   r   r)   r)   1   s   „ Ø€DØ€GØ�Gr   r)   c                  ó4   — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)Ú_SingleResponsec	                óH  — t        |«       t        |t        j                  «      st        d«      ‚|�%t        |t        j                  «      st        d«      ‚|| _        || _        || _        || _        || _        t        |t        «      st        d«      ‚|t        j                  ur|�t        d«      ‚|�Wt        d«      ‚t        |t        j                  «      st        d«      ‚|�%t        |t        j                  «      st        d«      ‚|| _        || _        || _        y )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)   r+   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__z_SingleResponse.__init__8   s3  € ô 	˜)Ô$Ü˜+¤x×'8Ñ'8Ô9ÜÐCÓDÐDØÐ"¬:Øœ×*Ñ*ô,
ô ÐKÓLÐLàˆŒ
Ø#ˆŒØ#ˆŒØ'ˆÔØ'ˆÔä˜+¤~Ô6ÜØJóð ð œn×4Ñ4Ñ4ØÐ*Ü ð!óð ð !Ð,Ü ð"óð ô
 ˜o¬x×/@Ñ/@ÔAÜÐ KÓLÐLà Ð,´ZØ!¤4×#3Ñ#3ô6ô  ð#óð ð
 (ˆÔØ /ˆÔØ"3ˆÕr   N)r<   z0tuple[x509.Certificate, x509.Certificate] | Noner=   ztuple[bytes, bytes, int] | Noner&   úhashes.HashAlgorithmr>   r)   r?   údatetime.datetimer@   údatetime.datetime | NonerA   rF   rB   úx509.ReasonFlags | None)r   r   r   rC   r   r   r   r.   r.   7   sU   „ ð64à>ð64ð 3ð64ð (ð	64ð
 $ð64ð 'ð64ð .ð64ð 2ð64ð 3ô64r   r.   c                  óz   — e Zd Zddg f	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 	 	 d	d„Z	 	 	 	 	 	 d
d„Zdd„Zy)ÚOCSPRequestBuilderNc                ó.   — || _         || _        || _        y ©N)Ú_requestÚ_request_hashÚ_extensions)r;   ÚrequestÚrequest_hashÚ
extensionss       r   rC   zOCSPRequestBuilder.__init__w   s   € ð  ˆŒØ)ˆÔØ%ˆÕr   c                ó$  — | j                   €| j                  �t        d«      ‚t        |«       t	        |t
        j                  «      rt	        |t
        j                  «      st        d«      ‚t        |||f| j                  | j                  «      S )Nú.Only one certificate can be added to a requestú%cert and issuer must be a Certificate)
rL   rM   r%   r'   r#   r   ÚCertificater1   rI   rN   )r;   ÚcertÚissuerr&   s       r   Úadd_certificatez"OCSPRequestBuilder.add_certificate…   s„   € ð �=‰=Ð$¨×(:Ñ(:Ð(FÜÐMÓNÐNä˜)Ô$Ü˜$¤× 0Ñ 0Ô1¼Ø”D×$Ñ$ô:
ô ÐCÓDÐDä!Ø�6˜9Ð% t×'9Ñ'9¸4×;KÑ;Kó
ð 	
r   c                ó¬  — | j                   €| j                  �t        d«      ‚t        |t        «      st        d«      ‚t        |«       t        j                  d|«       t        j                  d|«       |j                  t        |«      k7  s|j                  t        |«      k7  rt        d«      ‚t        | j                   ||||f| j                  «      S )NrS   ú 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)rL   rM   r%   r#   Úintr1   r'   r   Ú_check_bytesÚdigest_sizeÚlenrI   rN   )r;   r[   r\   Úserial_numberr&   s        r   Úadd_certificate_by_hashz*OCSPRequestBuilder.add_certificate_by_hash˜   sÎ   € ð �=‰=Ð$¨×(:Ñ(:Ð(FÜÐMÓNÐNä˜-¬Ô-ÜÐ>Ó?Ð?ä˜)Ô$Ü×ÑÐ-Ð/?Ô@Ü×ÑÐ,¨oÔ>Ø× Ñ ¤CØó%
ò 
à×"Ñ"¤c¨/Ó&:Ò:Üð6óð ô
 "Ø�M‰MØ˜°¸yÐIØ×Ñó
ð 	
r   c                ó  — t        |t        j                  «      st        d«      ‚t        j                  |j
                  ||«      }t        || j                  «       t        | j                  | j                  g | j                  ¢|‘«      S ©Nz"extension must be an ExtensionType)r#   r   ÚExtensionTyper1   Ú	ExtensionÚoidr
   rN   rI   rL   rM   ©r;   ÚextvalÚcriticalÚ	extensions       r   Úadd_extensionz OCSPRequestBuilder.add_extension¶   su   € ô ˜&¤$×"4Ñ"4Ô5ÜÐ@ÓAÐAä—N‘N 6§:¡:¨x¸Ó@ˆ	Ü# I¨t×/?Ñ/?Ô@ä!Ø�M‰M˜4×-Ñ-Ð/M°×1AÑ1AÐ/MÀ9Ð/Mó
ð 	
r   c                ór   — | j                   €| j                  €t        d«      ‚t        j                  | «      S )Nz*You must add a certificate before building)rL   rM   r%   r   Úcreate_ocsp_request)r;   s    r   ÚbuildzOCSPRequestBuilder.buildÃ   s4   € Ø�=‰=Ð  T×%7Ñ%7Ð%?ÜÐIÓJÐJä×'Ñ'¨Ó-Ð-r   )rO   zFtuple[x509.Certificate, x509.Certificate, hashes.HashAlgorithm] | NonerP   z5tuple[bytes, bytes, int, hashes.HashAlgorithm] | NonerQ   ú(list[x509.Extension[x509.ExtensionType]]ÚreturnÚNone)rV   úx509.CertificaterW   rt   r&   rD   rr   rI   )
r[   Úbytesr\   ru   rb   r^   r&   rD   rr   rI   )rj   úx509.ExtensionTyperk   Úboolrr   rI   )rr   ÚOCSPRequest)r   r   r   rC   rX   rc   rm   rp   r   r   r   rI   rI   v   s¼   „ ð àØ?Að&ðð&ðð&ð =ð&ð 
ó&ð
àð
ð !ð
ð (ð	
ð
 
ó
ð&
àð
ð ð
ð ð	
ð
 (ð
ð 
ó
ð<
Ø(ð
Ø48ð
à	ó
ô.r   rI   c                  óî   — e Zd Zdddg f	 	 	 	 	 	 	 d
d„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	e
	 	 	 	 dd	„«       Zy)ÚOCSPResponseBuilderNc                ó<   — || _         || _        || _        || _        y rK   )Ú	_responseÚ_responder_idÚ_certsrN   )r;   ÚresponseÚresponder_idÚcertsrQ   s        r   rC   zOCSPResponseBuilder.__init__Ë   s"   € ð "ˆŒØ)ˆÔØˆŒØ%ˆÕr   c	           
     ó.  — | j                   �t        d«      ‚t        |t        j                  «      rt        |t        j                  «      st        d«      ‚t        ||fd ||||||«      }	t        |	| j                  | j                  | j                  «      S )Nú#Only one response per OCSPResponse.rT   )r|   r%   r#   r   rU   r1   r.   rz   r}   r~   rN   )
r;   rV   rW   r&   r>   r?   r@   rA   rB   Ú
singleresps
             r   Úadd_responsez OCSPResponseBuilder.add_responseØ   s›   € ð �>‰>Ð%ÜÐBÓCÐCä˜$¤× 0Ñ 0Ô1¼Ø”D×$Ñ$ô:
ô ÐCÓDÐDä$Ø�6ˆNØØØØØØØó	
ˆ
ô #ØØ×ÑØ�K‰KØ×Ñó	
ð 	
r   c
           
     óÌ  — | j                   �t        d«      ‚t        |t        «      st	        d«      ‚t        j                  d|«       t        j                  d|«       t        |«       |j                  t        |«      k7  s|j                  t        |«      k7  rt        d«      ‚t        d |||f||||||	«      }
t        |
| j                  | j                  | j                  «      S )Nrƒ   rZ   r[   r\   r]   )r|   r%   r#   r^   r1   r   r_   r'   r`   ra   r.   rz   r}   r~   rN   )r;   r[   r\   rb   r&   r>   r?   r@   rA   rB   r„   s              r   Úadd_response_by_hashz(OCSPResponseBuilder.add_response_by_hashü   sî   € ð �>‰>Ð%ÜÐBÓCÐCä˜-¬Ô-ÜÐ>Ó?Ð?ä×ÑÐ-Ð/?Ô@Ü×ÑÐ,¨oÔ>Ü˜)Ô$Ø× Ñ ¤CØó%
ò 
à×"Ñ"¤c¨/Ó&:Ò:Üð6óð ô
 %ØØ˜°Ð>ØØØØØØó	
ˆ
ô #ØØ×ÑØ�K‰KØ×Ñó	
ð 	
r   c                ó  — | j                   �t        d«      ‚t        |t        j                  «      st        d«      ‚t        |t        «      st        d«      ‚t        | j                  ||f| j                  | j                  «      S )Nz!responder_id can only be set oncez$responder_cert must be a Certificatez6encoding must be an element from OCSPResponderEncoding)r}   r%   r#   r   rU   r1   r   rz   r|   r~   rN   )r;   ÚencodingÚresponder_certs      r   r€   z OCSPResponseBuilder.responder_id*  s�   € ð ×ÑÐ)ÜÐ@ÓAÐAÜ˜.¬$×*:Ñ*:Ô;ÜÐBÓCÐCÜ˜(Ô$9Ô:ÜØHóð ô #Ø�N‰NØ˜XÐ&Ø�K‰KØ×Ñó	
ð 	
r   c                ó
  — | j                   �t        d«      ‚t        |«      }t        |«      dk(  rt        d«      ‚t	        d„ |D «       «      st        d«      ‚t        | j                  | j                  || j                  «      S )Nz!certificates may only be set oncer   zcerts must not be an empty listc              3  óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wrK   )r#   r   rU   )Ú.0Úxs     r   Ú	<genexpr>z3OCSPResponseBuilder.certificates.<locals>.<genexpr>E  s   è ø€ ÐB¹E°q”:˜a¤×!1Ñ!1×2¹Eùs   ‚$&z$certs must be a list of Certificates)
r~   r%   Úlistra   Úallr1   rz   r|   r}   rN   )r;   r�   s     r   Úcertificatesz OCSPResponseBuilder.certificates=  s}   € ð �;‰;Ð"ÜÐ@ÓAÐAÜ�U“ˆÜˆu‹:˜Š?ÜÐ>Ó?Ð?ÜÑB¹EÓBÔBÜÐBÓCÐCÜ"Ø�N‰NØ×ÑØØ×Ñó	
ð 	
r   c                ó.  — t        |t        j                  «      st        d«      ‚t        j                  |j
                  ||«      }t        || j                  «       t        | j                  | j                  | j                  g | j                  ¢|‘«      S re   )r#   r   rf   r1   rg   rh   r
   rN   rz   r|   r}   r~   ri   s       r   rm   z!OCSPResponseBuilder.add_extensionN  s}   € ô ˜&¤$×"4Ñ"4Ô5ÜÐ@ÓAÐAä—N‘N 6§:¡:¨x¸Ó@ˆ	Ü# I¨t×/?Ñ/?Ô@ä"Ø�N‰NØ×ÑØ�K‰KØ*ˆd×ÑÐ* 	Ð*ó	
ð 	
r   c                óª   — | j                   €t        d«      ‚| j                  €t        d«      ‚t        j                  t
        j                  | ||«      S )Nz&You must add a response before signingz*You must add a responder_id before signing)r|   r%   r}   r   Úcreate_ocsp_responser   r   )r;   Úprivate_keyr&   s      r   ÚsignzOCSPResponseBuilder.sign^  sT   € ð
 �>‰>Ð!ÜÐEÓFÐFØ×ÑÐ%ÜÐIÓJÐJä×(Ñ(Ü×)Ñ)¨4°¸ió
ð 	
r   c                ó¢   — t        |t        «      st        d«      ‚|t        j                  u rt	        d«      ‚t        j                  |d d d «      S )Nz7response_status must be an item from OCSPResponseStatusz$response_status cannot be SUCCESSFUL)r#   r   r1   r   r%   r   r•   )ÚclsÚresponse_statuss     r   Úbuild_unsuccessfulz&OCSPResponseBuilder.build_unsuccessfull  sS   € ô ˜/Ô+=Ô>ÜØIóð ð Ô0×;Ñ;Ñ;ÜÐCÓDÐDä×(Ñ(¨¸$ÀÀdÓKÐKr   )r   z_SingleResponse | Noner€   z5tuple[x509.Certificate, OCSPResponderEncoding] | Noner�   zlist[x509.Certificate] | NonerQ   rq   )rV   rt   rW   rt   r&   rD   r>   r)   r?   rE   r@   rF   rA   rF   rB   rG   rr   rz   )r[   ru   r\   ru   rb   r^   r&   rD   r>   r)   r?   rE   r@   rF   rA   rF   rB   rG   rr   rz   )r‰   r   rŠ   rt   rr   rz   )r�   zIterable[x509.Certificate]rr   rz   )rj   rv   rk   rw   rr   rz   )r–   r	   r&   zhashes.HashAlgorithm | Nonerr   ÚOCSPResponse)rš   r   rr   rœ   )r   r   r   rC   r…   r‡   r€   r’   rm   r—   Úclassmethodr›   r   r   r   rz   rz   Ê   s™  „ ð ,0àØ/3Ø?Að&à(ð&ðð&ð
 -ð&ð =ó&ð"
àð"
ð !ð"
ð (ð	"
ð
 $ð"
ð 'ð"
ð .ð"
ð 2ð"
ð 3ð"
ð 
ó"
ðH,
àð,
ð ð,
ð ð	,
ð
 (ð,
ð $ð,
ð 'ð,
ð .ð,
ð 2ð,
ð 3ð,
ð 
ó,
ð\
Ø-ð
Ø?Oð
à	ó
ð&
Ø/ð
à	ó
ð"
Ø(ð
Ø48ð
à	ó
ð 
à5ð
ð /ð
ð 
ó	
ð ð
LØ0ð
Là	ò
Ló ñ
Lr   rz   )r&   rD   rr   rs   )#Ú
__future__r   r0   Ú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)   r.   rx   rœ   ÚOCSPSingleResponserI   rz   Ú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   