
    Oh&                        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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j0                  ed<   eez  ej4                  g eez  f   z  Zej0                  ed	<   ddZddZ G d de
      Zdej>                  ej@                  z  dedz  d
dfdZ!y)    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                      t        t        dt               	 ddlmc mc mc m}  t        | dt               y# t        $ r Y yw xY w)zqInjects the :class:`truststore.SSLContext` into the ``ssl``
    module by replacing :class:`ssl.SSLContext`.
    
SSLContextr   N)	setattrsslr   pip._vendor.urllib3.util.ssl__vendorurllib3utilssl_ImportErrorurllib3_ssls    m/mnt/c/Users/Administrator/Desktop/help_/test_env/lib/python3.12/site-packages/pip/_vendor/truststore/_api.pyinject_into_sslr      s9     Cz*;;\:6 s    8 	AAc                      t        t        dt               	 ddlmc mc mc m}  t        | _        y# t        $ r Y y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   r   r   s    r   extract_from_sslr   .   s4    C34;;!5 s   2 	>>c                      e Zd ZdZedefd       ZdAdeddfdZ	 	 	 	 	 dBd	e	j                  d
e
de
de
dedz  dej                  dz  dej                  fdZ	 	 	 dCdej                   dej                   d
e
dedz  dej                  dz  dej"                  fdZ	 	 	 dDd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	 	 dEdededz  dedz  ddfdZej8                  j:                  fdej8                  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jF                  fd$Z$de%eef   fd%Z&de%eef   fd&Z'ejP                  	 dFd'ejR                  d   de*ejF                     fd(       Z+ejP                  dFd'ejR                  d   de*e   fd)       Z+ejP                  dFd'e
dejF                  fd*       Z+dGd'e
de*ejF                     e*e   z  fd+Z+ede
fd,       Z,e,jZ                  d-e
ddfd.       Z,ede
fd/       Z.e.jZ                  d-e
ddfd0       Z.edefd1       Z/e/jZ                  d-eddfd2       Z/edej`                  fd3       Z1e1jZ                  d-ej`                  ddfd4       Z1edej`                  fd5       Z2e2jZ                  d-ej`                  ddfd6       Z2edejf                  fd7       Z4e4jZ                  d-ejf                  ddfd8       Z4ede
fd9       Z5e5jZ                  d-e
ddfd:       Z5edejl                  fd;       Z7edefd<       Z8edejr                  fd=       Z:e:jZ                  d-ejr                  ddfd>       Z:edejv                  fd?       Z<e<jZ                  d-ejv                  ddfd@       Z<y)Hr   z=SSLContext API that uses system certificates on all platformsr   c                     t         xs t        S N)r   r   selfs    r   	__class__zSSLContext.__class__<   s    
 3@j@    Nprotocolc                 x    t        |      | _         G d dt        j                        }|| j                  _        y )Nc                         e Zd Zd fdZ xZS )0SSLContext.__init__.<locals>.TruststoreSSLObjectc                 R    t         |          }t        | | j                         |S )Nserver_hostname)superdo_handshake_verify_peercertsr-   )r$   retr%   s     r   r/   z=SSLContext.__init__.<locals>.TruststoreSSLObject.do_handshakeK   s%    g*,!$8L8LM
r&   r   N)__name__
__module____qualname__r/   __classcell__)r%   s   @r   TruststoreSSLObjectr*   F   s    
 r&   r7   )r   _ctxr   	SSLObjectsslobject_class)r$   r'   r7   s      r   __init__zSSLContext.__init__C   s,    (2		#-- 	 %8		!r&   FTsockserver_sidedo_handshake_on_connectsuppress_ragged_eofsr-   sessionc           	          t        | j                        5  | j                  j                  ||||||      }d d d        	 t        |       |S # 1 sw Y   xY w# t        $ r j                           w xY w)N)r=   r-   r>   r?   r@   r,   )r	   r8   wrap_socketr0   	Exceptionclose)r$   r<   r=   r>   r?   r-   r@   ssl_socks           r   rB   zSSLContext.wrap_socketR   s      		* 	yy,,' /(?%9 - H		hH 	 	  	NN	s   "AA AA7incomingoutgoingc                     t        | j                        5  | j                  j                  |||||      }d d d        |S # 1 sw Y   S xY w)N)r-   r=   r@   )r	   r8   wrap_bio)r$   rF   rG   r=   r-   r@   ssl_objs          r   rI   zSSLContext.wrap_bion   sV      		* 	ii(( /' ) G	 	 s   !AAcafilecapathcadatar   c                 >    | j                   j                  |||      S )N)rK   rL   rM   )r8   load_verify_locations)r$   rK   rL   rM   s       r   rO   z SSLContext.load_verify_locations   s'     yy..& / 
 	
r&   certfilekeyfilepasswordc                 >    | j                   j                  |||      S )N)rP   rQ   rR   )r8   load_cert_chain)r$   rP   rQ   rR   s       r   rT   zSSLContext.load_cert_chain   s'     yy((w ) 
 	
r&   purposec                 8    | j                   j                  |      S r"   )r8   load_default_certs)r$   rU   s     r   rW   zSSLContext.load_default_certs   s     yy++G44r&   alpn_protocolsc                 8    | j                   j                  |      S r"   )r8   set_alpn_protocols)r$   rX   s     r   rZ   zSSLContext.set_alpn_protocols   s    yy++N;;r&   npn_protocolsc                 8    | j                   j                  |      S r"   )r8   set_npn_protocols)r$   r[   s     r   r]   zSSLContext.set_npn_protocols   s    yy**=99r&   _SSLContext__cipherlistc                 8    | j                   j                  |      S r"   )r8   set_ciphers)r$   r^   s     r   r`   zSSLContext.set_ciphers   s    yy$$\22r&   c                 6    | j                   j                         S r"   )r8   get_ciphersr#   s    r   rb   zSSLContext.get_ciphers   s    yy$$&&r&   c                 6    | j                   j                         S r"   )r8   session_statsr#   s    r   rd   zSSLContext.session_stats   s    yy&&((r&   c                     t               r"   NotImplementedErrorr#   s    r   cert_store_statszSSLContext.cert_store_stats       !##r&   binary_formc                      y r"    r$   rj   s     r   get_ca_certszSSLContext.get_ca_certs   s     	r&   c                      y r"   rl   rm   s     r   rn   zSSLContext.get_ca_certs       r&   c                      y r"   rl   rm   s     r   rn   zSSLContext.get_ca_certs   rp   r&   c                     t               r"   rf   rm   s     r   rn   zSSLContext.get_ca_certs   ri   r&   c                 .    | j                   j                  S r"   r8   check_hostnamer#   s    r   ru   zSSLContext.check_hostname       yy'''r&   valuec                 &    || j                   _        y r"   rt   r$   rw   s     r   ru   zSSLContext.check_hostname   s    #(		 r&   c                 .    | j                   j                  S r"   r8   hostname_checks_common_namer#   s    r   r|   z&SSLContext.hostname_checks_common_name   s    yy444r&   c                 &    || j                   _        y r"   r{   ry   s     r   r|   z&SSLContext.hostname_checks_common_name   s    05		-r&   c                 .    | j                   j                  S r"   r8   keylog_filenamer#   s    r   r   zSSLContext.keylog_filename       yy(((r&   c                 &    || j                   _        y r"   r   ry   s     r   r   zSSLContext.keylog_filename   s    $)		!r&   c                 .    | j                   j                  S r"   )r8   maximum_versionr#   s    r   r   zSSLContext.maximum_version   r   r&   c                 X    t         j                  j                  | j                  |       y r"   )r   r   __set__r8   ry   s     r   r   zSSLContext.maximum_version       "22::IIu	
r&   c                 .    | j                   j                  S r"   )r8   minimum_versionr#   s    r   r   zSSLContext.minimum_version   r   r&   c                 X    t         j                  j                  | j                  |       y r"   )r   r   r   r8   ry   s     r   r   zSSLContext.minimum_version   r   r&   c                 .    | j                   j                  S r"   )r8   optionsr#   s    r   r   zSSLContext.options   s    yy   r&   c                 X    t         j                  j                  | j                  |       y r"   )r   r   r   r8   ry   s     r   r   zSSLContext.options   s    "**22IIu	
r&   c                 .    | j                   j                  S r"   r8   post_handshake_authr#   s    r   r   zSSLContext.post_handshake_auth   s    yy,,,r&   c                 &    || j                   _        y r"   r   ry   s     r   r   zSSLContext.post_handshake_auth   s    (-		%r&   c                 .    | j                   j                  S r"   )r8   r'   r#   s    r   r'   zSSLContext.protocol   s    yy!!!r&   c                 .    | j                   j                  S r"   )r8   security_levelr#   s    r   r   zSSLContext.security_level   rv   r&   c                 .    | j                   j                  S r"   )r8   verify_flagsr#   s    r   r   zSSLContext.verify_flags  s    yy%%%r&   c                 X    t         j                  j                  | j                  |       y r"   )r   r   r   r8   ry   s     r   r   zSSLContext.verify_flags  s    "//77IIu	
r&   c                 .    | j                   j                  S r"   )r8   verify_moder#   s    r   r   zSSLContext.verify_mode  s    yy$$$r&   c                 X    t         j                  j                  | j                  |       y r"   )r   r   r   r8   ry   s     r   r   zSSLContext.verify_mode  s    "..66IIu	
r&   r"   )FTTNN)FNN)NNN)NN).)F)=r3   r4   r5   __doc__propertytyper%   intr;   socketboolstrr   
SSLSession	SSLSocketrB   	MemoryBIOr9   rI   bytesosPathLiketypingUnionrO   r   r   rT   PurposeSERVER_AUTHrW   IterablerZ   r]   r`   Anyrb   dictrd   rh   overloadLiterallistrn   ru   setterr|   r   
TLSVersionr   r   Optionsr   r   
_SSLMethodr'   r   VerifyFlagsr   
VerifyModer   rl   r&   r   r   r   9   s   GA4 A A8 8 8$ "(,%)&*)-mm  "&	
 # t $& 
@ "&*)--- -- 	
 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	 
 __t(< tE{   __ vzz  $ $fjj9IDQVK9W $ ( ( ( )D )T ) ) 5T 5 5 !''6 6$ 6 (6 ) ) ) *S *T * * ) ) ) 
S^^ 
 
 

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

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

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

 %S^^ % % 
 
D 
 
r&   r   sock_or_sslobjr-   c                 ,   | }	 t        |d      s|j                  }t        |d      s|j                         xs d}|D cg c]!  }|j	                  t
        j                        # }}t        | j                  ||       y# t        $ r Y dw xY wc c}w )z{
    Verifies the peer certificates from an SSLSocket or SSLObject
    against the certificates in the OS trust store.
    get_unverified_chainrl   r,   N)	hasattr_sslobjAttributeErrorr   public_bytes_sslENCODING_DERr
   context)r   r-   sslobjunverified_chaincert
cert_bytess         r   r0   r0     s     +F&"89^^F &"89 	##%+  DTT4$##D$5$56TJT
O   Us   $B &B	BBr2   )"r   platformr   r   r   r   _ssl_constantsr   r   r   r   system_windowsr	   r
   _macos_opensslTYPE_CHECKINGpip._vendor.typing_extensionsr   r   r   r   r   	TypeAlias__annotations__Callabler   r   r   r   r   r9   r0   rl   r&   r   <module>r      s   	   
    8??	!DDX__("BBD	4 %(%K"++c2B$BR[[QVEW$W!! W"%+C%K0P"Pv P[
3 [
|MMCMM1DG$J	r&   