+
     hIF  c                   s   ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHtHtH	t	H
t
HtHtHtHtHt ^ RIHtHtHtHtHtHtHtHtHtHt ^ RIHtHt ^RIHt ]t]t ]t! ! R R	]4      t"]! ]"4      t#]! ]#4      t$ ! R
 R]4      t%]! ]%4      t& ! R R]4      t' ! R R]4      t(]'       d   ]](,          t)M]! ](4      t) ! R R]4      t* ! R R]4      t+]! ]+4      t, ! R R]4      t-]! ]-4      t. ! R R]4      t/]! ]/4      t0]! ]04      t1 ! R R]4      t2 ! R R]4      t3]! ]34      t4 ! R R]4      t5]! ]54      t6 ! R R]4      t7]! ]74      t8]! ]4      t9^t:R t;R!t<^t=^t>]! R"4      t?R#t@R$tA^tB^tC^tD^@tE^ tF^tGR%tHR&tIR'tJR(tK^tL^tMR(tNR)tO]B]C,          ]D,          ]E,          ]F,          ]G,          ]H,          ]I,          ]J,          tP]! R*4      tQ]! R+4      tRR, R- ltS]QP                  tT]8]93]TnU        ]S]TnV        ]QP                  tW]]]!]]
3]WnU        ] ]WnX        ]S]WnV        ]QP                  tY] ]]]]]$3]YnU        ]]YnX        ]QP                  tZ]]]3]ZnU        ]#]ZnX        ]S]ZnV        ]QP                  t[]]#]] ])]]
]13][nU        ]][nX        ]S][nV        ]QP                  t\]	]0]4]63]\nU        ]]\nX        ]QP                  t]] ]3]]nU        ]]]nX        ]S]]nV        ]QP                  t^]03]^nU        ]QP                  t_]#3]_nU        ]QP                  t`]3]`nU        ]RP                  ta]]]]]]]
3]anU        ]]anX        R6R. R/ lltbR0 R1 ltcR2 R3 ltd] P                  R4 R5 l4       tfR# )7i    N)WinDLLWinError)
POINTER	Structurec_char_pc_ulongc_void_p	c_wchar_pcastcreate_unicode_bufferpointersizeof)
BOOLDWORDHANDLELONGLPCSTRLPCVOIDLPCWSTR
LPFILETIMELPSTRLPWSTR)TYPE_CHECKINGAny)_set_ssl_context_verify_modec                   s8    ] tR t^'tR]3R]3R]3R]3R]33tRtR# )CERT_CONTEXTZdwCertEncodingTypeZpbCertEncodedZcbCertEncodedZ	pCertInfoZ
hCertStore N)	__name__
__module____qualname____firstlineno__r   r   
HCERTSTORE_fields___static_attributes__r       D/usr/lib/python3.14/site-packages/pip/_vendor/truststore/_windows.pyr   r   '   s1    	u%	(#	% 	h	z"Hr#   r   c                   s2    ] tR t^5tR]3R]! ]4      33tRtR# )CERT_ENHKEY_USAGEcUsageIdentifierrgpszUsageIdentifierr   N)	r   r   r   r   r   r   r   r!   r"   r   r#   r$   r%   r%   5   s    	U#	0Hr#   r%   c                   s&    ] tR t^?tR]3R]33tRtR# )CERT_USAGE_MATCHZdwTypeUsager   N)r   r   r   r   r   r%   r!   r"   r   r#   r$   r(   r(   ?   s    	5	#$Hr#   r(   c            
       sP    ] tR t^FtR]3R]3R]3R]3R]3R]3R]3R]3R	]33	t	R
t
R# )CERT_CHAIN_PARAcbSizeRequestedUsageZRequestedIssuancePolicydwUrlRetrievalTimeoutZfCheckRevocationFreshnessTimedwRevocationFreshnessTimeZpftCacheResyncZpStrongSignParaZdwStrongSignFlagsr   N)r   r   r   r   r   r(   r   r   r   r!   r"   r   r#   r$   r*   r*   F   sS    	5	+,	"$45	 %(	($/	$e,	:&	H%	e$
Hr#   r*   c                   s&    ] tR t^ZtR]3R]33tRtR# )CERT_TRUST_STATUSZdwErrorStatusZdwInfoStatusr   N)r   r   r   r   r   r!   r"   r   r#   r$   r/   r/   Z   s    	% 	Hr#   r/   c                   sD    ] tR t^atR]3R]3R]3R]3R]3R]3R]	33t
RtR	# )
CERT_CHAIN_ELEMENTr+   pCertContextTrustStatusZpRevocationInfoZpIssuanceUsageZpApplicationUsageZpwszExtendedErrorInfor   N)r   r   r   r   r   PCERT_CONTEXTr/   r   PCERT_ENHKEY_USAGEr   r!   r"   r   r#   r$   r0   r0   a   sD    	5	'	)*	H%	-.	01	 '*Hr#   r0   c                   sP    ] tR t^ptR]3R]3R]3R]! ]4      3R]3R]	3R]33t
RtR	# )
CERT_SIMPLE_CHAINr+   r2   ZcElementZ
rgpElementZpTrustListInfofHasRevocationFreshnessTimer.   r   N)r   r   r   r   r   r/   r   PCERT_CHAIN_ELEMENTr   r   r!   r"   r   r#   r$   r5   r5   p   sH    	5	)*	U	w234	8$	&-	$e,Hr#   r5   c            	       sV    ] tR t^tR]3R]3R]3R]! ]4      3R]3R]3R]	3R]33t
R	tR
# )CERT_CHAIN_CONTEXTr+   r2   ZcChainZrgpChainZcLowerQualityChainContextZrgpLowerQualityChainContextr6   r.   r   N)r   r   r   r   r   r/   r   PCERT_SIMPLE_CHAINr   r   r!   r"   r   r#   r$   r8   r8      sP    	5	)*	5	W/01	$e,	&1	&-	$e,	Hr#   r8   c                   s2    ] tR t^tR]3R]3R]3R]33tRtR# ) SSL_EXTRA_CERT_CHAIN_POLICY_PARAr+   
dwAuthType	fdwCheckspwszServerNamer   N)r   r   r   r   r   r   r!   r"   r   r#   r$   r:   r:      s)    	5	u	e	7#	Hr#   r:   c                   s,    ] tR t^tR]3R]3R]33tRtR# )CERT_CHAIN_POLICY_PARAr+   dwFlagspvExtraPolicyParar   N)r   r   r   r   r   r   r!   r"   r   r#   r$   r>   r>      s!    	5	E	h'Hr#   r>   c                   s8    ] tR t^tR]3R]3R]3R]3R]33tRtR# )CERT_CHAIN_POLICY_STATUSr+   dwErrorZlChainIndexlElementIndexZpvExtraPolicyStatusr   N)	r   r   r   r   r   r   r   r!   r"   r   r#   r$   rA   rA      s1    	5	E		$	)Hr#   rA   c                   sh    ] tR t^tR]3R]3R]3R]3R]3R]3R]3R]3R	]3R
]3R]3R]3R]33tRtR# )CERT_CHAIN_ENGINE_CONFIGr+   ZhRestrictedRootZhRestrictedTrustZhRestrictedOtherZcAdditionalStoreZrghAdditionalStorer?   r-   ZMaximumCachedCertificatesZCycleDetectionModulushExclusiveRootZhExclusiveTrustedPeopleZdwExclusiveFlagsr   N)	r   r   r   r   r   r    r   r!   r"   r   r#   r$   rD   rD      sq    	5	J'	Z(	Z(	U#	x(	E	 %(	$e,	 %(	:&	"J/	U#Hr#   rD   i   s   Memorys   1.3.6.1.5.5.7.3.1i   i    i   i   i @  i   i   zcrypt32.dllzkernel32.dllc                sH    V ^8  d   QhR\         R\        R\        R\        /# )   result_argsreturn)Zboolr   Zformat   "r$   __annotate__rM      s(      d s # # r#   c                 s*    V '       g   \        4       hV# Nr   )rG   rH   rI   s   &&&r$   _handle_win_errorrO      s    jKr#   c                sx    V ^8  d   QhR\         P                  R\        \        ,          R\        R,          RR/# )rF   ssl_context
cert_chainserver_hostnameNrJ   )ssl
SSLContextlistbytesstrrK   rL   r$   rM   rM   C  sB     Y5 Y5Y5UY5 4ZY5 
	Y5r#   c                sX   V'       g   \         P                  ! R4      hRp\        \        ^ R^ R4      p VR,           F/  p\	        V\
        \        ,          V\        V4      \        R4       K1  	  V^ ,          p\        \
        \        ,          V\        V4      4      p\        4       p^Vn        \        ^,          ! \        4      Vn        \        4       pWxn        \#        4       p	Wn        \'        V	4      V	n        \+        V	4      p
V P,                  \         P.                  ,          '       d   \0        pM0V P,                  \         P2                  ,          '       d   \4        pM^ p \7        V RVVV
VVR7       \=        T^ 4       T'       d   \?        T4       R# R#   \         P                   dU   pT P9                  RR7      pT'       d5    \;        T TTTT
TTR7        Rp?Lj  \         P                   d    TRhi ; ih Rp?ii ; i  \=        T^ 4       T'       d   \?        T4       i i ; i)z9Verify the cert_chain from the server using Windows APIs.z#Peer sent no certificates to verifyN:i   NN)chain_flagsT)Zbinary_form) rS   SSLCertVerificationErrorCertOpenStoreCERT_STORE_PROV_MEMORY CertAddEncodedCertificateToStoreX509_ASN_ENCODINGPKCS_7_ASN_ENCODINGlenCERT_STORE_ADD_USE_EXISTINGCertCreateCertificateContextr%   r&   r   OID_PKIX_KP_SERVER_AUTHr'   r(   r)   r*   r,   r   r+   r   Zverify_flagsZVERIFY_CRL_CHECK_CHAIN!CERT_CHAIN_REVOCATION_CHECK_CHAINZVERIFY_CRL_CHECK_LEAF$CERT_CHAIN_REVOCATION_CHECK_END_CERT_get_and_verify_cert_chainZget_ca_certs_verify_using_custom_ca_certsCertCloseStoreCertFreeCertificateContext)rP   rQ   rR   r1   hIntermediateCertStore
cert_bytesZ	leaf_certZcert_enhkey_usageZcert_usage_matchZchain_params
pChainPararX   Zecustom_ca_certss   &&&           r$   _verify_peercerts_implrm   C  s    **+PQQL*+A1dAtTK5$R..J,&!$77J+ ) qM	3 33YI

 ./-.*2:Q,@W1X.+-!2&(&6#$\2\*
##c&@&@@@;K%%(A(AAA>KK#	 '&'D 	-q1&|4 5 ++ 	
 3>2J2J  3K 3O &1#'.$"'$/  33 &%& /	2 	-q1&|4 sH   D&H 	H &F H0G?G"H "G;;G??HH "H)c                s    V ^8  d   QhR\         P                  R\        R,          R\        R\        R\
        R\        R,          R\        R	R/# )
rF   rP   hChainEngineNri   pPeerCertContextrk   rR   rX   rJ   )rS   rT   HCERTCHAINENGINEr    r   PCERT_CHAIN_PARArW   intrK   rL   r$   rM   rM     so     W> W>W>"T)W> 'W> 	W>
 !W> 4ZW> W> 
W>r#   c           
      sh   R p \        \        4       4      p\        VVR VVVR V4       VP                  p\	        4       p	\        V	4      V	n        \        V	n        ^ V	n	        V P                  RJ d   \        V	n	        V'       d   \        V4      V	n        \        4       p
\        \        V	4      \         4      V
n        V P$                  \&        P(                  8X  d   V
;P*                  \,        ,          un        \        V
4      V
n        \        V
4      p\/        4       p\        V4      Vn        \        V4      p\1        \2        VVV4       VP4                  pV'       d   \7        R4      p\9        \:        \<        ,          R V^ V\        V4      R 4      pV^ 8:  d   RVR RVP>                   R2pMVP@                  PC                  4       p\&        PD                  ! V4      pVVn#        VVn$        VR h V'       d   \K        VP                  4       R # R #   T'       d   \K        TP                  4       i i ; i)NFi   zCertificate chain policy error z#xz [Z])&r   PCERT_CHAIN_CONTEXTCertGetCertificateChaincontentsr:   r   r+   AUTHTYPE_SERVERr;   r<   check_hostname$SECURITY_FLAG_IGNORE_CERT_CN_INVALIDr   r=   r>   r	   r   r@   verify_moderS   	CERT_NONEr?   (CERT_CHAIN_POLICY_VERIFY_MODE_NONE_FLAGSrA    CertVerifyCertificateChainPolicyCERT_CHAIN_POLICY_SSLrB   r
   FormatMessageWFORMAT_MESSAGE_FROM_SYSTEMFORMAT_MESSAGE_IGNORE_INSERTSrC   ZvalueZstriprY   Zverify_messageZverify_codeCertFreeCertificateChain)rP   rn   ri   ro   rk   rR   rX   ZppChainContextZpChainContextZ ssl_extra_cert_chain_policy_paraZchain_policyZpPolicyParaZpolicy_statusZpPolicyStatusZ
error_codeZerror_message_bufZerror_message_charsZerror_messageZerrs   &&&&&&&            r$   re   re     s    NM> !4!67"		
 '// ,L+M(28,3
(/ 7F(356(2%%.4 -6 >G>X,;-/)-45x*
& ""cmm3  $LL $\2l+02%m4.(!		
 #**
 5d ;"0*-JJ!()# #a'"A*RPRS`SnSnRoop q 1 7 7 = = ?..}=C!.C(CO41 4 $^%<%<= >$^%<%<= s   A?H E+H  H1c                s    V ^8  d   QhR\         P                  R\        \        ,          R\        R\
        R\        R\        R,          R\        R	R/# )
rF   rP   rl   ri   ro   rk   rR   NrX   rJ   )	rS   rT   rU   rV   r    r   rq   rW   rr   rK   rL   r$   rM   rM     sd     1* 1*1*%[1* '1* 	1*
 !1* 4Z1* 1* 
1*r#   c           	      s   R p\        \        ^ R ^ R 4      p V F/  p	\        V\        \        ,          V	\        V	4      \        R 4       K1  	  \        4       p
\        V
4      V
n	        Wn
        \        V
4      p\        \        4       4      p\        VV4       VP                  p\        V VVVVVV4       V'       d   \!        V4       \#        V^ 4       R #   T'       d   \!        T4       \#        T^ 4       i ; irN   )rZ   r[   r\   r]   r^   r_   r`   rD   r   r+   rE   r   rp    CertCreateCertificateChainEngineru   re   CertFreeCertificateChainEnginerg   )rP   rl   ri   ro   rk   rR   rX   rn   ZhRootCertStorerj   Zcert_chain_engine_configZpConfigZphChainEngines   &&&&&&&      r$   rf   rf     s     L"#91dAtLN&*)J,!$77J+ * $<#= *01I*J '2@/23 0 23(	
 %-- 	#"	
 *<8~q) *<8~q)s   BC !C5c                sf    V ^8  d   QhR\         P                  R\        P                  R,          /# )rF   ctxrJ   N)rS   rT   typingZIteratorrK   rL   r$   rM   rM   .  s'     	7 	7CNN 	7vt/D 	7r#   c              #   s   "   V P                   pV P                  pR V n         \        V \        P                  4        Rx  Wn         \        W4       R#   Yn         \        Y4       i ; i5i)FN)rw   ry   r   rS   rz   )r   rw   ry   s   &  r$   _configure_contextr   -  sV     ''N//KC cmm47+$S6 ,$S6s   :A*A A*A''A*rN   )gZ
contextlibrS   r   Zctypesr    r   r   r   r   r   r   r   r	   r
   r   r   Zctypes.wintypesr   r   r   r   r   r   r   r   r   r   r   r   Z_ssl_constantsr   rp   r    ZHCRYPTPROV_LEGACYr   r3   ZPCCERT_CONTEXTr%   r4   r(   r*   rq   r/   r0   r7   r5   r9   r8   rs   ZPCCERT_CHAIN_CONTEXTr:   r>   ZPCERT_CHAIN_POLICY_PARArA   ZPCERT_CHAIN_POLICY_STATUSrD   ZPCERT_CHAIN_ENGINE_CONFIGZPHCERTCHAINENGINEr]   r^   r[   r`   ZUSAGE_MATCH_TYPE_ORrb   rd   rc   Z1CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGSZ7CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAGZ'CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAGZ*CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAGZ)CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAGZ,CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAGZ.CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGSZ%CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAGZ%CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAGrx   rv   r}   r   r   r{   ZwincryptZkernel32rO   r   ZargtypesZerrcheckrZ   Zrestyper\   ra   rt   r|   rg   r   rh   r   r~   rm   re   rf   Zcontextmanagerr   r   r#   r$   <module>r      s~    
        & 8 
 9  %'	  ./ y i  //	 	 	 01 		 	 ./ 
 
 01 23 y Y  ""89 y  $$<= y $ $$<= ,-    "   "#78 '1 $$. !4> 1:D 7*4 '-7 *,6 )/9 ,1; .(2 %(2 %'1 $ '  *  6=>-. 11 0	0
 33 55 ,, ,, ) - .! $,#L#L  -   ) ->   )&& %):E8L " * #+#L#L  			-   ) ,0   ('DD ).%(@  %'4  $(9  %":: 		$    #'  #4   #+#L#L  	-   ) ,0   (((%u-  + #<< %8$:  !%@@ '4&6  #!)!H!H +;*=  '((			
	   Y5xW>t1*h 	7 	7r#   