
    jE j,                        % S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrSSK	J
r
JrJrJr  \R                  " 5       S:X  a	  SSKJrJr  O&\R                  " 5       S:X  a	  SSKJrJr  OSSKJrJr  \R(                  (       a  S SKJr  \\-  \R2                  \   -  \R2                  \   -  r\R6                  \S'   \\-  \R:                  / \\-  4   -  r\R6                  \S	'   SS jrSS jr  " S S\5      r!\RD                  S:  a  S\RF                  S
\$\   4S jr%OS\RF                  S
\$\   4S jr%S\RL                  \RF                  -  S\S-  S
S4S jr'g)    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                  (   [        [        S[        5         SSKJs  Js  Js  Jn   [        U S[        5         SSK	J
n  [        USS5      nUb%  [        US[        [        R                  5      5        gg! [         a     NIf = f! [         a     gf = f)ziInjects the :class:`truststore.SSLContext` into the ``ssl``
module by replacing :class:`ssl.SSLContext`.

SSLContextr   N)adapters_preloaded_ssl_context)setattrsslr   pip._vendor.urllib3.util.ssl__vendorurllib3utilssl_ImportErrorpip._vendor.requestsr   getattrPROTOCOL_TLS_CLIENT)urllib3_sslrequests_adapterspreloaded_contexts      Ec:\Py\emelo-reg\venv\Lib\site-packages\pip/_vendor/truststore/_api.pyinject_into_sslr#   "   s     Cz*;;\:6F#$57OQUV(!(3223 )  "  s"    A4 :B 4
B B
BBc                      [        [        S[        5         SSKJs  Js  Js  Jn   [        U l        g! [         a     gf = f)z@Restores the :class:`ssl.SSLContext` class to its original stater   r   N)
r   r   r   r   r   r   r   r   r   r   )r   s    r"   extract_from_sslr%   B   s4    C34;;!5 s   2 
??c                   D   \ rS rSrSr\S\4S j5       rSDS\SS4S jjr	     SES
\
R                  S\S\S\S\S-  S\R                  S-  S\R                  4S jjr   SFS\R"                  S\R"                  S\S\S-  S\R                  S-  S\R$                  4S jjr   SGS\\-  \R,                  \   -  \R,                  \   -  S-  S\\-  \R,                  \   -  \R,                  \   -  S-  S\R0                  \SS4   SS4S jjr  SHS\S\S-  S\S-  SS4S jjr\R:                  R<                  4S\R:                  SS4S jjrS\R@                  \   SS4S  jr!S!\R@                  \   SS4S" jr"S#\SS4S$ jr#S\RH                  4S% jr%S\&\\4   4S& jr'S\&\\4   4S' jr(SIS( jr)\RT                   SJS)\RV                  S   S\,\RH                     4S* jj5       r-\RT                  SJS)\RV                  S	   S\,\   4S+ jj5       r-\RT                  SJS)\S\RH                  4S, jj5       r-SKS)\S\,\RH                     \,\   -  4S- jjr-\S\4S. j5       r.\.R^                  S/\SS4S0 j5       r.\S\4S1 j5       r0\0R^                  S/\SS4S2 j5       r0\S\4S3 j5       r1\1R^                  S/\SS4S4 j5       r1\S\Rd                  4S5 j5       r3\3R^                  S/\Rd                  SS4S6 j5       r3\S\Rd                  4S7 j5       r4\4R^                  S/\Rd                  SS4S8 j5       r4\S\Rj                  4S9 j5       r6\6R^                  S/\Rj                  SS4S: j5       r6\S\4S; j5       r7\7R^                  S/\SS4S< j5       r7\S\Rp                  4S= j5       r9\S\4S> j5       r:\S\Rv                  4S? j5       r<\<R^                  S/\Rv                  SS4S@ j5       r<\S\Rz                  4SA j5       r>\>R^                  S/\Rz                  SS4SB j5       r>SCr?g)Lr   M   z=SSLContext API that uses system certificates on all platformsr   c                 (    [         =(       d    [        $ N)r   r   selfs    r"   	__class__SSLContext.__class__P   s    
 3@j@    Nprotocolc                     [        U5      U l        [        R                  " 5       U l         " S S[
        R                  5      nX R                  l        g )Nc                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )z0SSLContext.__init__.<locals>.TruststoreSSLObject[   c                 J   > [         TU ]  5       n[        X R                  S9  U$ )Nserver_hostname)superdo_handshake_verify_peercertsr5   )r+   retr,   s     r"   r7   =SSLContext.__init__.<locals>.TruststoreSSLObject.do_handshake`   s#    g*,!$8L8LM
r.    r   N)__name__
__module____qualname____firstlineno__r7   __static_attributes____classcell__)r,   s   @r"   TruststoreSSLObject0SSLContext.__init__.<locals>.TruststoreSSLObject[   s    
 r.   rC   )r   _ctx	threadingLock	_ctx_lockr   	SSLObjectsslobject_class)r+   r/   rC   s      r"   __init__SSLContext.__init__W   s8    (2	")	#-- 	 %8		!r.   FTsockserver_sidedo_handshake_on_connectsuppress_ragged_eofsr5   sessionc           
         [         R                  " 5        nU R                     UR                  [	        U R
                  5      5        S S S 5        U R
                  R                  UUUUUUS9nS S S 5         [        WUS9  U$ ! , (       d  f       NA= f! , (       d  f       N,= f! [         a    WR                  5         e f = f)N)rN   r5   rO   rP   rQ   r4   )

contextlib	ExitStackrH   enter_contextr	   rE   wrap_socketr8   	Exceptionclose)	r+   rM   rN   rO   rP   r5   rQ   stackssl_socks	            r"   rV   SSLContext.wrap_socketg   s     !!#u##$6tyy$AB   yy,,' /(?%9 - H	 $	hH !   $#  	NN	s.   B%B&B7
B% 
B	B
B"%Cincomingoutgoingc           	          [        U R                  5         U R                  R                  UUUUUS9nS S S 5        U$ ! , (       d  f       W$ = f)N)r5   rN   rQ   )r	   rE   wrap_bio)r+   r\   r]   rN   r5   rQ   ssl_objs          r"   r_   SSLContext.wrap_bio   sT      		*ii(( /' ) G +  +* s	   >
Acafilecapathcadatar   c                 6    U R                   R                  XUS9$ )N)rb   rc   rd   )rE   load_verify_locations)r+   rb   rc   rd   s       r"   rf    SSLContext.load_verify_locations   s%     yy.. / 
 	
r.   certfilekeyfilepasswordc                 6    U R                   R                  XUS9$ )N)rh   ri   rj   )rE   load_cert_chain)r+   rh   ri   rj   s       r"   rl   SSLContext.load_cert_chain   s%     yy(( ) 
 	
r.   purposec                 8    U R                   R                  U5      $ r)   )rE   load_default_certs)r+   rn   s     r"   rp   SSLContext.load_default_certs   s     yy++G44r.   alpn_protocolsc                 8    U R                   R                  U5      $ r)   )rE   set_alpn_protocols)r+   rr   s     r"   rt   SSLContext.set_alpn_protocols   s    yy++N;;r.   npn_protocolsc                 8    U R                   R                  U5      $ r)   )rE   set_npn_protocols)r+   rv   s     r"   rx   SSLContext.set_npn_protocols   s    yy**=99r.   _SSLContext__cipherlistc                 8    U R                   R                  U5      $ r)   )rE   set_ciphers)r+   rz   s     r"   r|   SSLContext.set_ciphers   s    yy$$\22r.   c                 6    U R                   R                  5       $ r)   )rE   get_ciphersr*   s    r"   r   SSLContext.get_ciphers   s    yy$$&&r.   c                 6    U R                   R                  5       $ r)   )rE   session_statsr*   s    r"   r   SSLContext.session_stats   s    yy&&((r.   c                     [        5       er)   NotImplementedErrorr*   s    r"   cert_store_statsSSLContext.cert_store_stats       !##r.   c                 8    U R                   R                  5         g r)   )rE   set_default_verify_pathsr*   s    r"   r   #SSLContext.set_default_verify_paths   s    		**,r.   binary_formc                     g r)   r;   r+   r   s     r"   get_ca_certsSSLContext.get_ca_certs   s     r.   c                     g r)   r;   r   s     r"   r   r      s    TWr.   c                     g r)   r;   r   s     r"   r   r      s    CFr.   c                     [        5       er)   r   r   s     r"   r   r      r   r.   c                 .    U R                   R                  $ r)   rE   check_hostnamer*   s    r"   r   SSLContext.check_hostname       yy'''r.   valuec                 $    XR                   l        g r)   r   r+   r   s     r"   r   r      s    #(		 r.   c                 .    U R                   R                  $ r)   rE   hostname_checks_common_namer*   s    r"   r   &SSLContext.hostname_checks_common_name   s    yy444r.   c                 $    XR                   l        g r)   r   r   s     r"   r   r      s    05		-r.   c                 .    U R                   R                  $ r)   rE   keylog_filenamer*   s    r"   r   SSLContext.keylog_filename       yy(((r.   c                 $    XR                   l        g r)   r   r   s     r"   r   r      s    $)		!r.   c                 .    U R                   R                  $ r)   )rE   maximum_versionr*   s    r"   r   SSLContext.maximum_version   r   r.   c                 X    [         R                  R                  U R                  U5        g r)   )r   r   __set__rE   r   s     r"   r   r          "22::IIu	
r.   c                 .    U R                   R                  $ r)   )rE   minimum_versionr*   s    r"   r   SSLContext.minimum_version   r   r.   c                 X    [         R                  R                  U R                  U5        g r)   )r   r   r   rE   r   s     r"   r   r      r   r.   c                 .    U R                   R                  $ r)   )rE   optionsr*   s    r"   r   SSLContext.options  s    yy   r.   c                 X    [         R                  R                  U R                  U5        g r)   )r   r   r   rE   r   s     r"   r   r     s    "**22IIu	
r.   c                 .    U R                   R                  $ r)   rE   post_handshake_authr*   s    r"   r   SSLContext.post_handshake_auth  s    yy,,,r.   c                 $    XR                   l        g r)   r   r   s     r"   r   r     s    (-		%r.   c                 .    U R                   R                  $ r)   )rE   r/   r*   s    r"   r/   SSLContext.protocol  s    yy!!!r.   c                 .    U R                   R                  $ r)   )rE   security_levelr*   s    r"   r   SSLContext.security_level  r   r.   c                 .    U R                   R                  $ r)   )rE   verify_flagsr*   s    r"   r   SSLContext.verify_flags  s    yy%%%r.   c                 X    [         R                  R                  U R                  U5        g r)   )r   r   r   rE   r   s     r"   r   r      s    "//77IIu	
r.   c                 .    U R                   R                  $ r)   )rE   verify_moder*   s    r"   r   SSLContext.verify_mode&  s    yy$$$r.   c                 X    [         R                  R                  U R                  U5        g r)   )r   r   r   rE   r   s     r"   r   r   *  s    "..66IIu	
r.   )rE   rH   r)   )FTTNN)FNN)NNN)NNr<   ).)F)@r=   r>   r?   r@   __doc__propertytyper,   intrK   socketboolstrr   
SSLSession	SSLSocketrV   	MemoryBIOrI   r_   bytesosPathLiketypingUnionrf   r   r   rl   PurposeSERVER_AUTHrp   Iterablert   rx   r|   Anyr   dictr   r   r   overloadLiterallistr   r   setterr   r   
TLSVersionr   r   Optionsr   r   
_SSLMethodr/   r   VerifyFlagsr   
VerifyModer   rA   r;   r.   r"   r   r   M   s   GA4 A A8 8 8& "(,%)&*)-mm  "&	
 # t $& 
J "&*)--- -- 	
 t $& 
( NRMQ48	
ebkk#..U1CCdJ
 ebkk#..U1CCdJ
 S(D01	

 

 +/)-	
!
 !4'
  $&	

 

 &)[[%<%<5{{5	5
<1E <$ <:vs/C : :3 3 3'VZZ ')tCH~ )$$sCx. $- __36!>>%0	fjj	  __Wt(<WtE{W W__FFvzzF F$ $fjj9IDQVK9W $ ( ( ( )D )T ) ) 5T 5 5 !''6 6$ 6 (6 ) ) ) *S *T * * ) ) ) 
S^^ 
 
 

 ) ) ) 
S^^ 
 
 

 ! ! ! ^^
S[[ 
T 
 

 -T - - . .$ .  . "#.. " " ( ( ( &coo & & 
#// 
d 
 

 %S^^ % % 
 
D 
 
r.   r   )      sslobjc                     U R                  5       =(       d    SnU Vs/ s H9  n[        U[        5      (       a  UOUR                  [        R
                  5      PM;     sn$ s  snf Nr;   )get_unverified_chain
isinstancer   public_bytes_sslENCODING_DERr   unverified_chaincerts      r"   _get_unverified_chain_bytesr   6  s_    !668>B )
( tU++D1B1B4CTCT1UU(
 	
 
s   A A!c                     U R                  5       =(       d    SnU Vs/ s H!  o"R                  [        R                  5      PM#     sn$ s  snf r   )r   r   r   r   r   s      r"   r   r   ?  s?    !668>BAQRAQ!!$"3"34AQRRRs   (A	sock_or_sslobjr5   c                     U n [        US5      (       d  UR                  n[        US5      (       d  M  [        U5      n[	        U R
                  X1S9  g! [         a     N,f = f)zo
Verifies the peer certificates from an SSLSocket or SSLObject
against the certificates in the OS trust store.
r   r4   N)hasattr_sslobjAttributeErrorr   r
   context)r   r5   r   
cert_bytess       r"   r8   r8   D  sh     +F&"899^^F &"899
 -V4J
	  s   .A 
A! A!r<   )(rS   r   platformr   r   sysrF   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_inforI   r   r   r   r8   r;   r.   r"   <module>r     sT    	   
 
     ??	!DD__("BBD	( %(%K"++c2B$BR[[QVEW$W!! W"%+C%K0P"Pv P@a
3 a
N w
CMM 
d5k 
SCMM Sd5k S
MMCMM1DG$J	r.   