§
    n�’j¬-  ã                   ó`  — U d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZddl	m
Z
mZmZmZ  ej        ¦   «         dk    r	ddlmZmZ n$ ej        ¦   «         dk    r	ddlmZmZ nddlmZmZ ej        rd dlmZ eez  ej        e         z  ej        e         z  Zej        ed<   eez  ej        g eez  f         z  Zej        ed	<   dd„Zdd„Z  G d„ de¦  «        Z!ej"        dk    rdej#        d
e$e         fd„Z%ndej#        d
e$e         fd„Z%dej&        ej#        z  dedz  d
dfd„Z'dS )é    Né   )Ú_original_SSLContextÚ_original_super_SSLContextÚ#_truststore_SSLContext_dunder_classÚ"_truststore_SSLContext_super_classÚWindows)Ú_configure_contextÚ_verify_peercerts_implÚDarwin)ÚBufferÚ_StrOrBytesPathÚ_PasswordTypeÚreturnc                  óX  — t          t          dt          ¦  «         	 ddlmc m}  t          | dt          ¦  «         n# t          $ r Y nw xY w	 ddl}t          |j	        dd¦  «        }|�/t          |j	        dt          t          j
        ¦  «        ¦  «         dS dS # t          $ r Y dS w xY w)zqInjects the :class:`truststore.SSLContext` into the ``ssl``
    module by replacing :class:`ssl.SSLContext`.
    Ú
SSLContextr   NÚ_preloaded_ssl_context)ÚsetattrÚsslr   Úurllib3.util.ssl_ÚutilÚssl_ÚImportErrorÚrequests.adaptersÚgetattrÚadaptersÚPROTOCOL_TLS_CLIENT)Úurllib3_sslÚrequestsÚpreloaded_contexts      ú=C:\Projects\DSCons\.venv\Lib\site-packages\truststore\_api.pyÚinject_into_sslr!   "   sø   € õ �C��zÑ*Ô*Ð*ðØ/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/å�˜\­:Ñ6Ô6Ð6Ð6øÝð ð ð ØˆðøøøðØ Ð Ð Ð å# HÔ$5Ð7OÐQUÑVÔVÐØÐ(ÝØÔ!Ø(Ý�3Ô2Ñ3Ô3ñô ð ð ð ð )Ð(øõ ð ð ð Øˆˆðøøøs"   �= ½
A
Á	A
ÁA	B Â
B)Â(B)c                  óŠ   — t          t          dt          ¦  «         	 ddlmc m}  t          | _        dS # t          $ r Y dS w xY w)z@Restores the :class:`ssl.SSLContext` class to its original stater   r   N)r   r   r   r   r   r   r   r   )r   s    r    Úextract_from_sslr#   B   se   € å�C�Õ3Ñ4Ô4Ð4ðØ/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/å!5ˆÔÐÐøÝð ð ð Øˆˆðøøøs   �4 ´
AÁAc                   óü  — e Zd ZdZedefd„¦   «         ZdCdeddfd„Z	 	 	 	 	 dDd	e	j	        d
e
de
de
dedz  dej        dz  dej        fd„Z	 	 	 dEdej        dej        d
e
dedz  dej        dz  dej        fd„Z	 	 	 dFdeez  ej        e         z  ej        e         z  dz  deez  ej        e         z  ej        e         z  dz  dej        eddf         ddfd„Z	 	 dGdededz  dedz  ddfd„Zej        j        fdej        ddfd„Zdej        e         ddfd„Z d ej        e         ddfd!„Z!d"eddfd#„Z"dej#        fd$„Z$de%eef         fd%„Z&de%eef         fd&„Z'dHd'„Z(ej)        	 dId)ej*        d         de+ej#                 fd*„¦   «         Z,ej)        dId)ej*        d         de+e         fd+„¦   «         Z,ej)        dId)e
dej#        fd,„¦   «         Z,dJd)e
de+ej#                 e+e         z  fd-„Z,ede
fd.„¦   «         Z-e-j.        d/e
ddfd0„¦   «         Z-ede
fd1„¦   «         Z/e/j.        d/e
ddfd2„¦   «         Z/edefd3„¦   «         Z0e0j.        d/eddfd4„¦   «         Z0edej1        fd5„¦   «         Z2e2j.        d/ej1        ddfd6„¦   «         Z2edej1        fd7„¦   «         Z3e3j.        d/ej1        ddfd8„¦   «         Z3edej4        fd9„¦   «         Z5e5j.        d/ej4        ddfd:„¦   «         Z5ede
fd;„¦   «         Z6e6j.        d/e
ddfd<„¦   «         Z6edej7        fd=„¦   «         Z8edefd>„¦   «         Z9edej:        fd?„¦   «         Z;e;j.        d/ej:        ddfd@„¦   «         Z;edej<        fdA„¦   «         Z=e=j.        d/ej<        ddfdB„¦   «         Z=dS )Kr   z=SSLContext API that uses system certificates on all platformsr   c                 ó   — t           pt          S ©N)r   r   ©Úselfs    r    Ú	__class__zSSLContext.__class__P   s   € õ
 3Ð@µjÐ@ó    NÚprotocolc                 ó¦   — t          |¦  «        | _        t          j        ¦   «         | _         G d„ dt
          j        ¦  «        }|| j        _        d S )Nc                   ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ú0SSLContext.__init__.<locals>.TruststoreSSLObjectr   Nc                 ót   •— t          ¦   «                              ¦   «         }t          | | j        ¬¦  «         |S )N©Úserver_hostname)ÚsuperÚdo_handshakeÚ_verify_peercertsr1   )r(   Úretr)   s     €r    r3   z=SSLContext.__init__.<locals>.TruststoreSSLObject.do_handshake`   s3   ø€ Ý‘g”g×*Ò*Ñ,Ô,�Ý! $¸Ô8LÐMÑMÔMÐMØ�
r*   ©r   N)Ú__name__Ú
__module__Ú__qualname__r3   Ú__classcell__)r)   s   @r    ÚTruststoreSSLObjectr.   [   s=   ø€ € € € € ð
ð ð ð ð ð ð ð ð ð r*   r;   )r   Ú_ctxÚ	threadingÚLockÚ	_ctx_lockr   Ú	SSLObjectÚsslobject_class)r(   r+   r;   s      r    Ú__init__zSSLContext.__init__W   s^   € Ý(¨Ñ2Ô2ˆŒ	Ý"œÑ)Ô)ˆŒð	ð 	ð 	ð 	ð 	¥#¤-ñ 	ô 	ð 	ð %8ˆŒ	Ô!Ð!Ð!r*   FTÚsockÚserver_sideÚdo_handshake_on_connectÚsuppress_ragged_eofsr1   Úsessionc           	      ó”  — t          j        ¦   «         5 }| j        5  |                     t	          | j        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   | j                             ||||||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   	 t          ||¬¦  «         n## t          $ r | 	                    ¦   «          ‚ w xY w|S )N)rD   r1   rE   rF   rG   r0   )
Ú
contextlibÚ	ExitStackr?   Úenter_contextr	   r<   Úwrap_socketr4   Ú	ExceptionÚclose)	r(   rC   rD   rE   rF   r1   rG   ÚstackÚssl_socks	            r    rL   zSSLContext.wrap_socketg   sr  € õ Ô!Ñ#Ô#ð 	 uØ”ð Cð CØ×#Ò#Õ$6°t´yÑ$AÔ$AÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð ”y×,Ò,ØØ'Ø /Ø(?Ø%9Øð -ñ ô ˆHð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	Ý˜h¸ÐHÑHÔHÐHÐHøÝð 	ð 	ð 	Ø�NŠNÑÔÐØð	øøøð ˆs@   ”Bœ(AÁBÁA	ÁBÁA	Á#BÂBÂBÂB% Â% CÚincomingÚoutgoingc                 óœ   — t          | j        ¦  «        5  | j                             |||||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |S )N)r1   rD   rG   )r	   r<   Úwrap_bio)r(   rQ   rR   rD   r1   rG   Ússl_objs          r    rT   zSSLContext.wrap_bioˆ   s›   € õ   ¤	Ñ*Ô*ð 	ð 	Ø”i×(Ò(ØØØ /Ø'Øð )ñ ô ˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆs   • AÁAÁAÚcafileÚcapathÚcadatar   c                 ó<   — | j                              |||¬¦  «        S )N)rV   rW   rX   )r<   Úload_verify_locations)r(   rV   rW   rX   s       r    rZ   z SSLContext.load_verify_locationsš   s*   € ð Œy×.Ò.Ø &°ð /ñ 
ô 
ð 	
r*   ÚcertfileÚkeyfileÚpasswordc                 ó<   — | j                              |||¬¦  «        S )N)r[   r\   r]   )r<   Úload_cert_chain)r(   r[   r\   r]   s       r    r_   zSSLContext.load_cert_chain¤   s*   € ð Œy×(Ò(Ø w¸ð )ñ 
ô 
ð 	
r*   Úpurposec                 ó6   — | j                              |¦  «        S r&   )r<   Úload_default_certs)r(   r`   s     r    rb   zSSLContext.load_default_certs®   s   € ð Œy×+Ò+¨GÑ4Ô4Ð4r*   Úalpn_protocolsc                 ó6   — | j                              |¦  «        S r&   )r<   Úset_alpn_protocols)r(   rc   s     r    re   zSSLContext.set_alpn_protocols³   s   € ØŒy×+Ò+¨NÑ;Ô;Ð;r*   Únpn_protocolsc                 ó6   — | j                              |¦  «        S r&   )r<   Úset_npn_protocols)r(   rf   s     r    rh   zSSLContext.set_npn_protocols¶   s   € ØŒy×*Ò*¨=Ñ9Ô9Ð9r*   Ú_SSLContext__cipherlistc                 ó6   — | j                              |¦  «        S r&   )r<   Úset_ciphers)r(   ri   s     r    rk   zSSLContext.set_ciphers¹   s   € ØŒy×$Ò$ \Ñ2Ô2Ð2r*   c                 ó4   — | j                              ¦   «         S r&   )r<   Úget_ciphersr'   s    r    rm   zSSLContext.get_ciphers¼   s   € ØŒy×$Ò$Ñ&Ô&Ð&r*   c                 ó4   — | j                              ¦   «         S r&   )r<   Úsession_statsr'   s    r    ro   zSSLContext.session_stats¿   s   € ØŒy×&Ò&Ñ(Ô(Ð(r*   c                 ó   — t          ¦   «         ‚r&   ©ÚNotImplementedErrorr'   s    r    Úcert_store_statszSSLContext.cert_store_statsÂ   ó   € Ý!Ñ#Ô#Ð#r*   c                 ó8   — | j                              ¦   «          d S r&   )r<   Úset_default_verify_pathsr'   s    r    rv   z#SSLContext.set_default_verify_pathsÅ   s   € ØŒ	×*Ò*Ñ,Ô,Ð,Ð,Ð,r*   .Úbinary_formc                 ó   — d S r&   © ©r(   rw   s     r    Úget_ca_certszSSLContext.get_ca_certsÈ   s	   € ð ˜3r*   c                 ó   — d S r&   ry   rz   s     r    r{   zSSLContext.get_ca_certsÍ   s   € ØTWÐTWr*   c                 ó   — d S r&   ry   rz   s     r    r{   zSSLContext.get_ca_certsÐ   s   € ØCFÀ3r*   c                 ó   — t          ¦   «         ‚r&   rq   rz   s     r    r{   zSSLContext.get_ca_certsÓ   rt   r*   c                 ó   — | j         j        S r&   ©r<   Úcheck_hostnamer'   s    r    r�   zSSLContext.check_hostnameÖ   ó   € àŒyÔ'Ð'r*   Úvaluec                 ó   — || j         _        d S r&   r€   ©r(   rƒ   s     r    r�   zSSLContext.check_hostnameÚ   s   € à#(ˆŒ	Ô Ð Ð r*   c                 ó   — | j         j        S r&   ©r<   Úhostname_checks_common_namer'   s    r    rˆ   z&SSLContext.hostname_checks_common_nameÞ   s   € àŒyÔ4Ð4r*   c                 ó   — || j         _        d S r&   r‡   r…   s     r    rˆ   z&SSLContext.hostname_checks_common_nameâ   s   € à05ˆŒ	Ô-Ð-Ð-r*   c                 ó   — | j         j        S r&   ©r<   Úkeylog_filenamer'   s    r    rŒ   zSSLContext.keylog_filenameæ   ó   € àŒyÔ(Ð(r*   c                 ó   — || j         _        d S r&   r‹   r…   s     r    rŒ   zSSLContext.keylog_filenameê   s   € à$)ˆŒ	Ô!Ð!Ð!r*   c                 ó   — | j         j        S r&   )r<   Úmaximum_versionr'   s    r    r�   zSSLContext.maximum_versionî   r�   r*   c                 óP   — t           j                             | j        |¦  «         d S r&   )r   r�   Ú__set__r<   r…   s     r    r�   zSSLContext.maximum_versionò   ó.   € å"Ô2×:Ò:ØŒI�uñ	
ô 	
ð 	
ð 	
ð 	
r*   c                 ó   — | j         j        S r&   )r<   Úminimum_versionr'   s    r    r•   zSSLContext.minimum_versionø   r�   r*   c                 óP   — t           j                             | j        |¦  «         d S r&   )r   r•   r’   r<   r…   s     r    r•   zSSLContext.minimum_versionü   r“   r*   c                 ó   — | j         j        S r&   )r<   Úoptionsr'   s    r    r˜   zSSLContext.options  s   € àŒyÔ Ð r*   c                 óP   — t           j                             | j        |¦  «         d S r&   )r   r˜   r’   r<   r…   s     r    r˜   zSSLContext.options  s.   € å"Ô*×2Ò2ØŒI�uñ	
ô 	
ð 	
ð 	
ð 	
r*   c                 ó   — | j         j        S r&   ©r<   Úpost_handshake_authr'   s    r    rœ   zSSLContext.post_handshake_auth  s   € àŒyÔ,Ð,r*   c                 ó   — || j         _        d S r&   r›   r…   s     r    rœ   zSSLContext.post_handshake_auth  s   € à(-ˆŒ	Ô%Ð%Ð%r*   c                 ó   — | j         j        S r&   )r<   r+   r'   s    r    r+   zSSLContext.protocol  s   € àŒyÔ!Ð!r*   c                 ó   — | j         j        S r&   )r<   Úsecurity_levelr'   s    r    r    zSSLContext.security_level  r‚   r*   c                 ó   — | j         j        S r&   )r<   Úverify_flagsr'   s    r    r¢   zSSLContext.verify_flags  s   € àŒyÔ%Ð%r*   c                 óP   — t           j                             | j        |¦  «         d S r&   )r   r¢   r’   r<   r…   s     r    r¢   zSSLContext.verify_flags   s.   € å"Ô/×7Ò7ØŒI�uñ	
ô 	
ð 	
ð 	
ð 	
r*   c                 ó   — | j         j        S r&   )r<   Úverify_moder'   s    r    r¥   zSSLContext.verify_mode&  s   € àŒyÔ$Ð$r*   c                 óP   — t           j                             | j        |¦  «         d S r&   )r   r¥   r’   r<   r…   s     r    r¥   zSSLContext.verify_mode*  s.   € å"Ô.×6Ò6ØŒI�uñ	
ô 	
ð 	
ð 	
ð 	
r*   r&   )FTTNN)FNN)NNN)NNr6   ).)F)>r7   r8   r9   Ú__doc__ÚpropertyÚtyper)   ÚintrB   ÚsocketÚboolÚstrr   Ú
SSLSessionÚ	SSLSocketrL   Ú	MemoryBIOr@   rT   ÚbytesÚosÚPathLikeÚtypingÚUnionrZ   r   r   r_   ÚPurposeÚSERVER_AUTHrb   ÚIterablere   rh   rk   ÚAnyrm   Údictro   rs   rv   ÚoverloadÚLiteralÚlistr{   r�   Úsetterrˆ   rŒ   Ú
TLSVersionr�   r•   ÚOptionsr˜   rœ   Ú
_SSLMethodr+   r    ÚVerifyFlagsr¢   Ú
VerifyModer¥   ry   r*   r    r   r   M   sÁ  € € € € € ØGÐGàðA˜4ð Að Að Añ „XðAð8ð 8 ð 8°ð 8ð 8ð 8ð 8ð& "Ø(,Ø%)Ø&*Ø)-ðð àŒmðð ðð "&ð	ð
 #ðð ˜t™ðð ” $Ñ&ðð 
Œðð ð ð ðJ "Ø&*Ø)-ðð à”-ðð ”-ðð ð	ð
 ˜t™ðð ” $Ñ&ðð 
Œðð ð ð ð( NRØMQØ48ð	
ð 
à�e‘˜bœk¨#Ô.Ñ.°´¸UÔ1CÑCÀdÑJð
ð �e‘˜bœk¨#Ô.Ñ.°´¸UÔ1CÑCÀdÑJð
ð ”˜S (¨DÐ0Ô1ð	
ð
 
ð
ð 
ð 
ð 
ð +/Ø)-ð	
ð 
à!ð
ð ! 4Ñ'ð
ð   $Ñ&ð	
ð
 
ð
ð 
ð 
ð 
ð &)¤[Ô%<ð5ð 5Ø”{ð5à	ð5ð 5ð 5ð 5ð
<°´ÀÔ1Eð <È$ð <ð <ð <ð <ð:¨v¬¸sÔ/Cð :Èð :ð :ð :ð :ð3¨ð 3°ð 3ð 3ð 3ð 3ð'˜VœZð 'ð 'ð 'ð 'ð)˜t C¨ Hœ~ð )ð )ð )ð )ð$ $ s¨C x¤.ð $ð $ð $ð $ð-ð -ð -ð -ð „_à36ðð Ø!œ>¨%Ô0ðà	ˆfŒjÔ	ðð ð ñ „_ðð „_ØWÐW¨¬°tÔ(<ÐWÀtÈEÄ{ÐWÐWÐWñ „_ØWà„_ØFÐF¨ÐF°v´zÐFÐFÐFñ „_ØFð$ð $¨ð $¸¸f¼jÔ9IÈDÐQVÌKÑ9Wð $ð $ð $ð $ð ð( ð (ð (ð (ñ „Xð(ð Ôð) Dð )¨Tð )ð )ð )ñ Ôð)ð ð5¨Tð 5ð 5ð 5ñ „Xð5ð !Ô'ð6°ð 6¸$ð 6ð 6ð 6ñ (Ô'ð6ð ð) ð )ð )ð )ñ „Xð)ð Ôð* Sð *¨Tð *ð *ð *ñ Ôð*ð ð) ¤ð )ð )ð )ñ „Xð)ð Ôð
 S¤^ð 
¸ð 
ð 
ð 
ñ Ôð
ð
 ð) ¤ð )ð )ð )ñ „Xð)ð Ôð
 S¤^ð 
¸ð 
ð 
ð 
ñ Ôð
ð
 ð!˜œð !ð !ð !ñ „Xð!ð „^ð
˜Sœ[ð 
¨Tð 
ð 
ð 
ñ „^ð
ð
 ð- Tð -ð -ð -ñ „Xð-ð Ôð.¨ð .°$ð .ð .ð .ñ  Ôð.ð ð"˜#œ.ð "ð "ð "ñ „Xð"ð ð( ð (ð (ð (ñ „Xð(ð ð&˜cœoð &ð &ð &ñ „Xð&ð Ôð
 #¤/ð 
°dð 
ð 
ð 
ñ Ôð
ð
 ð%˜Sœ^ð %ð %ð %ñ „Xð%ð Ôð
 ¤ð 
°Dð 
ð 
ð 
ñ Ôð
ð 
ð 
r*   r   )é   é   Ússlobjc                 óF   — |                       ¦   «         pd}d„ |D ¦   «         S )Nry   c                 óz   — g | ]8}t          |t          ¦  «        r|n|                     t          j        ¦  «        ‘Œ9S ry   )Ú
isinstancer±   Úpublic_bytesÚ_sslÚENCODING_DER©Ú.0Úcerts     r    ú
<listcomp>z/_get_unverified_chain_bytes.<locals>.<listcomp>8  sL   € ð 
ð 
ð 
àõ ˜t¥UÑ+Ô+ÐUˆDˆD°×1BÒ1BÅ4ÔCTÑ1UÔ1Uð
ð 
ð 
r*   ©Úget_unverified_chain©rÆ   Úunverified_chains     r    Ú_get_unverified_chain_bytesrÕ   6  s:   € Ø!×6Ò6Ñ8Ô8Ð>¸BÐð
ð 
à(ð
ñ 
ô 
ð 	
r*   c                 óF   — |                       ¦   «         pd}d„ |D ¦   «         S )Nry   c                 óL   — g | ]!}|                      t          j        ¦  «        ‘Œ"S ry   )rÊ   rË   rÌ   rÍ   s     r    rÐ   z/_get_unverified_chain_bytes.<locals>.<listcomp>A  s)   € ÐRÐRÐR¸�×!Ò!¥$Ô"3Ñ4Ô4ÐRÐRÐRr*   rÑ   rÓ   s     r    rÕ   rÕ   ?  s.   € Ø!×6Ò6Ñ8Ô8Ð>¸BÐØRÐRÐAQÐRÑRÔRÐRr*   Úsock_or_sslobjr1   c                 óÈ   — | }	 t          |d¦  «        s|j        }t          |d¦  «        ¯n# t          $ r Y nw xY wt          |¦  «        }t	          | j        ||¬¦  «         dS )z{
    Verifies the peer certificates from an SSLSocket or SSLObject
    against the certificates in the OS trust store.
    rÒ   r0   N)ÚhasattrÚ_sslobjÚAttributeErrorrÕ   r
   Úcontext)rØ   r1   rÆ   Ú
cert_bytess       r    r4   r4   D  s˜   € ð +€FðÝ˜&Ð"8Ñ9Ô9ð 	$Ø”^ˆFõ ˜&Ð"8Ñ9Ô9ð 	$øøåð ð ð Øˆðøøøõ -¨VÑ4Ô4€JÝØÔ 
¸Oðñ ô ð ð ð s   „', ¬
9¸9r6   )(rI   r²   Úplatformr«   r   Úsysr=   r´   rË   Ú_ssl_constantsr   r   r   r   ÚsystemÚ_windowsr	   r
   Ú_macosÚ_opensslÚTYPE_CHECKINGÚtyping_extensionsr   r­   r±   r³   r   Ú	TypeAliasÚ__annotations__ÚCallabler   r!   r#   r   Úversion_infor@   r½   rÕ   r¯   r4   ry   r*   r    ú<module>rì      sš  ðØ Ð Ð Ð Ð Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø 
€
€
€
Ø Ð Ð Ð Ø €€€à €€€ðð ð ð ð ð ð ð ð ð ð ð ð €8„?ÑÔ˜	Ò!Ð!ØDÐDÐDÐDÐDÐDÐDÐDÐDØ€X„_ÑÔ˜(Ò"Ð"ØBÐBÐBÐBÐBÐBÐBÐBÐBàDÐDÐDÐDÐDÐDÐDÐDà	Ôð )Ø(Ð(Ð(Ð(Ð(Ð(ð %(¨%¡K°"´+¸cÔ2BÑ$BÀRÄ[ÐQVÔEWÑ$W€�Ô!Ð WÐ WÑ WØ"%¨¡+°´ÀÀCÈ%ÁKÀÔ0PÑ"P€ˆvÔÐ PÐ PÑ Pðð ð ð ð@ð ð ð ða
ð a
ð a
ð a
ð a
Ð3ñ a
ô a
ð a
ðN Ô�wÒÐð
¨C¬Mð 
¸dÀ5¼kð 
ð 
ð 
ð 
ð 
ðS¨C¬Mð S¸dÀ5¼kð Sð Sð Sð Sð
Ø”M C¤MÑ1ðØDGÈ$ÁJðà	ðð ð ð ð ð r*   