
    hIF                     <   S SK r S SKrS SKrS SKJr  S SKJr  S SKJrJrJrJ	r	J
r
JrJrJrJrJr  S SKJrJrJrJrJrJrJrJrJrJr  S SKJrJr  SSKJr  \r\r \r! " S	 S
\5      r"\" \"5      r#\" \#5      r$ " S S\5      r%\" \%5      r& " S S\5      r' " S S\5      r(\(       a  \\(   r)O\" \(5      r) " S S\5      r* " S S\5      r+\" \+5      r, " S S\5      r-\" \-5      r. " S S\5      r/\" \/5      r0\" \05      r1 " S S\5      r2 " S S\5      r3\" \35      r4 " S S\5      r5\" \55      r6 " S S \5      r7\" \75      r8\" \5      r9Sr:S!r;S"r<S#r=Sr>\" S$5      r?S%r@S&rAS'rBS(rCS)rDS*rES+rFS,rGS-rHS.rIS/rJS0rKS#rLS1rMS0rNS2rO\B\C-  \D-  \E-  \F-  \G-  \H-  \I-  \J-  rP\" S35      rQ\" S45      rRS5\SS6\S7\S8\4S9 jrT\QR                  rU\8\94\UlV        \T\UlW        \QR                  rX\\\!\\
4\XlV        \ \XlY        \T\XlW        \QR                  rZ\ \\\\\$4\ZlV        \\ZlY        \QR                  r[\\\4\[lV        \#\[lY        \T\[lW        \QR                  r\\\#\\ \)\\
\14\\lV        \\\lY        \T\\lW        \QR                  r]\	\0\4\64\]lV        \\]lY        \QR                  r^\ \4\^lV        \\^lY        \T\^lW        \QR                  r_\04\_lV        \QR                  r`\#4\`lV        \QR                  ra\4\alV        \RR                  rb\\\\\\\
4\blV        \\blY         SHS:\R                  S;\d\e   S<\fS-  S8S4S= jjrgS:\R                  S>\S-  S?\ S@\
SA\)S<\fS-  SB\hS8S4SC jriS:\R                  SD\d\e   S?\ S@\
SA\)S<\fS-  SB\hS8S4SE jrj\ R                  SF\R                  S8\R                  S   4SG j5       rmg)I    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                   6    \ rS rSrS\4S\4S\4S\4S\44rSrg)	CERT_CONTEXT'   dwCertEncodingTypepbCertEncodedcbCertEncoded	pCertInfo
hCertStore N)	__name__
__module____qualname____firstlineno__r   r
   
HCERTSTORE_fields___static_attributes__r&       tC:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\pip/_vendor/truststore/_windows.pyr   r   '   s1    	u%	(#	% 	h	z"Hr.   r   c                   0    \ rS rSrS\4S\" \5      44rSrg)CERT_ENHKEY_USAGE5   cUsageIdentifierrgpszUsageIdentifierr&   N)	r'   r(   r)   r*   r   r   r   r,   r-   r&   r.   r/   r1   r1   5   s    	U#	0Hr.   r1   c                   $    \ rS rSrS\4S\44rSrg)CERT_USAGE_MATCH?   dwTypeUsager&   N)r'   r(   r)   r*   r   r1   r,   r-   r&   r.   r/   r6   r6   ?   s    	5	#$Hr.   r6   c            
       N    \ rS rSrS\4S\4S\4S\4S\4S\4S\4S	\4S
\44	r	Sr
g)CERT_CHAIN_PARAF   cbSizeRequestedUsageRequestedIssuancePolicydwUrlRetrievalTimeoutfCheckRevocationFreshnessTimedwRevocationFreshnessTimepftCacheResyncpStrongSignParadwStrongSignFlagsr&   N)r'   r(   r)   r*   r   r6   r   r   r
   r,   r-   r&   r.   r/   r;   r;   F   sS    	5	+,	"$45	 %(	($/	$e,	:&	H%	e$
Hr.   r;   c                   $    \ rS rSrS\4S\44rSrg)CERT_TRUST_STATUSZ   dwErrorStatusdwInfoStatusr&   N)r'   r(   r)   r*   r   r,   r-   r&   r.   r/   rG   rG   Z   s    	% 	Hr.   rG   c                   B    \ rS rSrS\4S\4S\4S\4S\4S\4S\	44r
S	rg
)CERT_CHAIN_ELEMENTa   r=   pCertContextTrustStatuspRevocationInfopIssuanceUsagepApplicationUsagepwszExtendedErrorInfor&   N)r'   r(   r)   r*   r   PCERT_CONTEXTrG   r
   PCERT_ENHKEY_USAGEr   r,   r-   r&   r.   r/   rL   rL   a   sD    	5	'	)*	H%	-.	01	 '*Hr.   rL   c                   N    \ rS rSrS\4S\4S\4S\" \5      4S\4S\	4S\44r
S	rg
)CERT_SIMPLE_CHAINp   r=   rO   cElement
rgpElementpTrustListInfofHasRevocationFreshnessTimerB   r&   N)r'   r(   r)   r*   r   rG   r   PCERT_CHAIN_ELEMENTr
   r   r,   r-   r&   r.   r/   rW   rW   p   sH    	5	)*	U	w234	8$	&-	$e,Hr.   rW   c            	       T    \ rS rSrS\4S\4S\4S\" \5      4S\4S\4S\	4S	\44r
S
rg)CERT_CHAIN_CONTEXT   r=   rO   cChainrgpChaincLowerQualityChainContextrgpLowerQualityChainContextr\   rB   r&   N)r'   r(   r)   r*   r   rG   r   PCERT_SIMPLE_CHAINr
   r   r,   r-   r&   r.   r/   r_   r_      sP    	5	)*	5	W/01	$e,	&1	&-	$e,	Hr.   r_   c                   0    \ rS rSrS\4S\4S\4S\44rSrg) SSL_EXTRA_CERT_CHAIN_POLICY_PARA   r=   
dwAuthType	fdwCheckspwszServerNamer&   N)r'   r(   r)   r*   r   r   r,   r-   r&   r.   r/   rg   rg      s)    	5	u	e	7#	Hr.   rg   c                   *    \ rS rSrS\4S\4S\44rSrg)CERT_CHAIN_POLICY_PARA   r=   dwFlagspvExtraPolicyParar&   N)r'   r(   r)   r*   r   r
   r,   r-   r&   r.   r/   rm   rm      s!    	5	E	h'Hr.   rm   c                   6    \ rS rSrS\4S\4S\4S\4S\44rSrg)	CERT_CHAIN_POLICY_STATUS   r=   dwErrorlChainIndexlElementIndexpvExtraPolicyStatusr&   N)	r'   r(   r)   r*   r   r   r
   r,   r-   r&   r.   r/   rr   rr      s1    	5	E		$	)Hr.   rr   c                   f    \ rS rSrS\4S\4S\4S\4S\4S\4S\4S	\4S
\4S\4S\4S\4S\44rSrg)CERT_CHAIN_ENGINE_CONFIG   r=   hRestrictedRoothRestrictedTrusthRestrictedOthercAdditionalStorerghAdditionalStorero   r@   MaximumCachedCertificatesCycleDetectionModulushExclusiveRoothExclusiveTrustedPeopledwExclusiveFlagsr&   N)	r'   r(   r)   r*   r   r+   r
   r,   r-   r&   r.   r/   ry   ry      sq    	5	J'	Z(	Z(	U#	x(	E	 %(	$e,	 %(	:&	"J/	U#Hr.   ry   i   s   Memory   s   1.3.6.1.5.5.7.3.1i   i             @          i   i   i @  i      i   zcrypt32.dllzkernel32.dllresult_argsreturnc                 (    U (       d
  [        5       eU$ Nr   )r   r   r   s      r/   _handle_win_errorr      s    jKr.   ssl_context
cert_chainserver_hostnamec                    U(       d  [         R                  " S5      eSn[        [        SSSS5      n USS  H+  n[	        U[
        [        -  U[        U5      [        S5        M-     US   n[        [
        [        -  U[        U5      5      n[        5       nSUl        [        S-  " [        5      Ul        [        5       nXxl        [#        5       n	Xl        ['        U	5      U	l        [+        U	5      n
U R,                  [         R.                  -  (       a  [0        nO+U R,                  [         R2                  -  (       a  [4        nOSn [7        U SUUU
UUS9  [=        US5        U(       a  [?        U5        gg! [         R                   aL  nU R9                  SS9nU(       a0   [;        U UUUU
UUS9   SnAN_! [         R                   a    USef = fe SnAff = f! [=        US5        U(       a  [?        U5        f f = f)z9Verify the cert_chain from the server using Windows APIs.z#Peer sent no certificates to verifyNr   r   )chain_flagsT)binary_form) sslSSLCertVerificationErrorCertOpenStoreCERT_STORE_PROV_MEMORY CertAddEncodedCertificateToStoreX509_ASN_ENCODINGPKCS_7_ASN_ENCODINGlenCERT_STORE_ADD_USE_EXISTINGCertCreateCertificateContextr1   r3   r   OID_PKIX_KP_SERVER_AUTHr4   r6   r9   r;   r>   r   r=   r   verify_flagsVERIFY_CRL_CHECK_CHAIN!CERT_CHAIN_REVOCATION_CHECK_CHAINVERIFY_CRL_CHECK_LEAF$CERT_CHAIN_REVOCATION_CHECK_END_CERT_get_and_verify_cert_chainget_ca_certs_verify_using_custom_ca_certsCertCloseStoreCertFreeCertificateContext)r   r   r   rN   hIntermediateCertStore
cert_bytes	leaf_certcert_enhkey_usagecert_usage_matchchain_params
pChainParar   ecustom_ca_certss                 r/   _verify_peercerts_implr   C  s    **+PQQL*+A1dAtTK5$QR.J,&!$77J+ ) qM	3 33YI

 ./-.*2:Q,@W1X.+-!2&(&6#$\2\*
##c&@&@@;K%%(A(AA>KK#	 '&'D 	-q1&|4 5 ++ 	
 3>2J2J  3K 3O &1#'.$"'$/ 33 &%& /	2 	-q1&|4 sB   DG E6 6G
G!F50G 5GGGG !G:hChainEnginer   pPeerCertContextr   r   c           
      F   S n [        [        5       5      n[        UUS UUUS U5        UR                  n[	        5       n	[        U	5      U	l        [        U	l        SU	l	        U R                  SL a  [        U	l	        U(       a  [        U5      U	l        [        5       n
[        [        U	5      [         5      U
l        U R$                  [&        R(                  :X  a  U
=R*                  [,        -  sl        [        U
5      U
l        [        U
5      n[/        5       n[        U5      Ul        [        U5      n[1        [2        UUU5        UR4                  nU(       a  [7        S5      n[9        [:        [<        -  S USU[        U5      S 5      nUS::  a  SUS SUR>                   S3nOUR@                  RC                  5       n[&        RD                  " U5      nUUl#        UUl$        US e U(       a  [K        UR                  5        g g ! U(       a  [K        UR                  5        f f = f)Nr   Fi   zCertificate chain policy error z#xz [])&r   PCERT_CHAIN_CONTEXTCertGetCertificateChaincontentsrg   r   r=   AUTHTYPE_SERVERri   rj   check_hostname$SECURITY_FLAG_IGNORE_CERT_CN_INVALIDr   rk   rm   r   r
   rp   verify_moder   	CERT_NONEro   (CERT_CHAIN_POLICY_VERIFY_MODE_NONE_FLAGSrr    CertVerifyCertificateChainPolicyCERT_CHAIN_POLICY_SSLrt   r   FormatMessageWFORMAT_MESSAGE_FROM_SYSTEMFORMAT_MESSAGE_IGNORE_INSERTSrv   valuestripr   verify_messageverify_codeCertFreeCertificateChain)r   r   r   r   r   r   r   ppChainContextpChainContext ssl_extra_cert_chain_policy_parachain_policypPolicyParapolicy_statuspPolicyStatus
error_codeerror_message_buferror_message_charserror_messageerrs                      r/   r   r     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   GH H r   c           	         S n[        [        SS SS 5      n U H+  n	[        U[        [        -  U	[        U	5      [        S 5        M-     [        5       n
[        U
5      U
l	        Xl
        [        U
5      n[        [        5       5      n[        UU5        UR                  n[        U UUUUUU5        U(       a  [!        U5        [#        US5        g ! U(       a  [!        U5        [#        US5        f = f)Nr   )r   r   r   r   r   r   r   ry   r   r=   r   r   HCERTCHAINENGINE CertCreateCertificateChainEnginer   r   CertFreeCertificateChainEnginer   )r   r   r   r   r   r   r   r   hRootCertStorer   cert_chain_engine_configpConfigphChainEngines                r/   r   r     s     L"#91dAtLN&*)J,!$77J+ * $<#= *01I*J '2@/23 0 23(	
 %-- 	#"	
 *<8~q) *<8~q)s   BC  C.ctxc              #      #    U R                   nU R                  nSU l         [        U [        R                  5         S v   Xl         [        X5        g ! Xl         [        X5        f = f7f)NF)r   r   r   r   r   )r   r   r   s      r/   _configure_contextr   -  sV     ''N//KC cmm47+$S6 ,$S6s   :A)A A)A&&A)r   )n
contextlibr   typingctypesr   r   r   r   r   r	   r
   r   r   r   r   r   ctypes.wintypesr   r   r   r   r   r   r   r   r   r   r   r   _ssl_constantsr   r   r+   HCRYPTPROV_LEGACYr   rT   PCCERT_CONTEXTr1   rU   r6   r;   PCERT_CHAIN_PARArG   rL   r]   rW   re   r_   r   PCCERT_CHAIN_CONTEXTrg   rm   PCERT_CHAIN_POLICY_PARArr   PCERT_CHAIN_POLICY_STATUSry   PCERT_CHAIN_ENGINE_CONFIGPHCERTCHAINENGINEr   r   r   r   USAGE_MATCH_TYPE_ORr   r   r   1CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS7CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG'CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG*CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG)CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG,CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG.CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS%CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG%CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAGr   r   r   r   r   r   wincryptkernel32boolr   r   argtypeserrcheckr   restyper   r   r   r   r   r   r   r   r   
SSLContextlistbytesstrr   intr   r   contextmanagerIteratorr   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 ,, ,, ) - .!d s # #  $,#L#L  -   ) ->   )&& %):E8L " * #+#L#L  			-   ) ,0   ('DD ).%(@  %'4  $(9  %":: 		$    #'  #4   #+#L#L  	-   ) ,0   (((%u-  + #<< %8$:  !%@@ '4&6  #!)!H!H +;*=  '((			
	    #'Y5Y5UY5 4ZY5 
	Y5xW>W>"T)W> 'W> 	W>
 !W> 4ZW> W> 
W>t1*1*%[1* '1* 	1*
 !1* 4Z1* 1* 
1*h 	7CNN 	7vt/D 	7 	7r.   