Q|QZ`UddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z m Z m Z ejdkr ddlmZmZn$ejdkr ddlmZmZnddlmZmZejrddlmZeezejezejezZejed<eezejgeezfzZejed <dd Zdd Z Gd de Z!ej"dkrdej#d e$efdZ%ndej#d e$efdZ%dej&ej#zdedzd dfdZ'dS)N)_original_SSLContext_original_super_SSLContext#_truststore_SSLContext_dunder_class"_truststore_SSLContext_super_classWindows)_configure_context_verify_peercerts_implDarwin)Buffer_StrOrBytesPath _PasswordTypereturncTttdt ddlmcmcmcm}t|dtn#t$rYnwxYw ddl m }t|dd}|*t|dttj dSdS#t$rYdSwxYw)zqInjects the :class:`truststore.SSLContext` into the ``ssl`` module by replacing :class:`ssl.SSLContext`. SSLContextrN)adapters_preloaded_ssl_context) setattrsslrpip._vendor.urllib3.util.ssl__vendorurllib3utilssl_ ImportErrorpip._vendor.requestsrgetattrPROTOCOL_TLS_CLIENT) urllib3_sslrequests_adapterspreloaded_contexts {/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib/python3.11/site-packages/pip/_vendor/truststore/_api.pyinject_into_sslr#"s  Cz*** ;;;;;;;;;;;;;;; \:6666        FFFFFF#$57OQUVV  ( !(3233      ) (      s$%A AAAB B'&B'cttdt ddlmcmcmcm}t|_dS#t$rYdSwxYw)z@Restores the :class:`ssl.SSLContext` class to its original staterrN) rrrrrrrrrr)rs r"extract_from_sslr%Bsw C3444 ;;;;;;;;;;;;;;;!5       s: AAceZdZdZedefdZdCdeddfdZ dDd e j d e d e d e d e dzde j dzde jfdZ dEde jde jd e d e dzde j dzde jf dZ dFde ezeje zejezdzde ezeje zejezdzdeje ddfddfdZ dGdededzdedzddfdZe jjfde jddfdZdeje ddfdZ d eje ddfd!Z!d"e ddfd#Z"dej#fd$Z$de%e effd%Z&de%e effd&Z'dHd'Z(ej) dId)ej*dde+ej#fd*Z,ej)dId)ej*dde+efd+Z,ej)dId)e dej#fd,Z,dJd)e de+ej#e+ezfd-Z,ede fd.Z-e-j.d/e ddfd0Z-ede fd1Z/e/j.d/e ddfd2Z/ede fd3Z0e0j.d/e ddfd4Z0ede j1fd5Z2e2j.d/e j1ddfd6Z2ede j1fd7Z3e3j.d/e j1ddfd8Z3ede j4fd9Z5e5j.d/e j4ddfd:Z5ede fd;Z6e6j.d/e ddfd<Z6ede j7fd=Z8edefd>Z9ede j:fd?Z;e;j.d/e j:ddfd@Z;ede j<fdAZ=e=j.d/e j<ddfdBZ=dS)Krz=SSLContext API that uses system certificates on all platformsrctptSN)rrselfs r" __class__zSSLContext.__class__Ps 3@j@Nprotocolct||_tj|_Gddt j}||j_dS)Nc eZdZdfd ZxZS)0SSLContext.__init__..TruststoreSSLObjectrNctt}t||j|S)Nserver_hostname)super do_handshake_verify_peercertsr3)r*retr+s r"r5z=SSLContext.__init__..TruststoreSSLObject.do_handshake`s3gg**,,!$8LMMMM r,rN)__name__ __module__ __qualname__r5 __classcell__)r+s@r"TruststoreSSLObjectr0[s=           r,r=)r_ctx threadingLock _ctx_lockr SSLObjectsslobject_class)r*r-r=s r"__init__zSSLContext.__init__Ws^(22 "))     #-   %8 !!!r,FTsock server_sidedo_handshake_on_connectsuppress_ragged_eofsr3sessionc tj5}|j5|t |jdddn #1swxYwY|j||||||}dddn #1swxYwY t||n##t$r| wxYw|S)N)rFr3rGrHrIr2) contextlib ExitStackrA enter_contextr r> wrap_socketr6 Exceptionclose) r*rErFrGrHr3rIstackssl_socks r"rNzSSLContext.wrap_socketgsr ! # # u C C##$6ty$A$ABBB C C C C C C C C C C C C C C Cy,,' /(?%9 -H                 h H H H H H    NN     s@B(A BA BA #BB B B%% Cincomingoutgoingct|j5|j|||||}dddn #1swxYwY|S)N)r3rFrI)r r>wrap_bio)r*rSrTrFr3rIssl_objs r"rVzSSLContext.wrap_bios  * *  i(( /' )G               s AAAcafilecapathcadatar c<|j|||S)N)rXrYrZ)r>load_verify_locations)r*rXrYrZs r"r\z SSLContext.load_verify_locationss* y..&/   r,certfilekeyfilepasswordc<|j|||S)N)r]r^r_)r>load_cert_chain)r*r]r^r_s r"razSSLContext.load_cert_chains* y((w)   r,purposec6|j|Sr()r>load_default_certs)r*rbs r"rdzSSLContext.load_default_certssy++G444r,alpn_protocolsc6|j|Sr()r>set_alpn_protocols)r*res r"rgzSSLContext.set_alpn_protocolssy++N;;;r, npn_protocolsc6|j|Sr()r>set_npn_protocols)r*rhs r"rjzSSLContext.set_npn_protocolssy**=999r,_SSLContext__cipherlistc6|j|Sr()r> set_ciphers)r*rks r"rmzSSLContext.set_cipherssy$$\222r,c4|jSr()r> get_ciphersr)s r"rozSSLContext.get_cipherssy$$&&&r,c4|jSr()r> session_statsr)s r"rqzSSLContext.session_statssy&&(((r,ctr(NotImplementedErrorr)s r"cert_store_statszSSLContext.cert_store_stats!###r,c8|jdSr()r>set_default_verify_pathsr)s r"rxz#SSLContext.set_default_verify_pathss **,,,,,r,. binary_formcdSr(r*rys r" get_ca_certszSSLContext.get_ca_certss 3r,cdSr(r{r|s r"r}zSSLContext.get_ca_certssTWTWr,cdSr(r{r|s r"r}zSSLContext.get_ca_certssCF3r,ctr(rsr|s r"r}zSSLContext.get_ca_certsrvr,c|jjSr(r>check_hostnamer)s r"rzSSLContext.check_hostname y''r,valuec||j_dSr(rr*rs r"rzSSLContext.check_hostnames#(    r,c|jjSr(r>hostname_checks_common_namer)s r"rz&SSLContext.hostname_checks_common_names y44r,c||j_dSr(rrs r"rz&SSLContext.hostname_checks_common_names05 ---r,c|jjSr(r>keylog_filenamer)s r"rzSSLContext.keylog_filename y((r,c||j_dSr(rrs r"rzSSLContext.keylog_filenames$) !!!r,c|jjSr()r>maximum_versionr)s r"rzSSLContext.maximum_versionrr,cPtj|j|dSr()rr__set__r>rs r"rzSSLContext.maximum_version."2:: Iu     r,c|jjSr()r>minimum_versionr)s r"rzSSLContext.minimum_versionrr,cPtj|j|dSr()rrrr>rs r"rzSSLContext.minimum_versionrr,c|jjSr()r>optionsr)s r"rzSSLContext.optionss y  r,cPtj|j|dSr()rrrr>rs r"rzSSLContext.optionss."*22 Iu     r,c|jjSr(r>post_handshake_authr)s r"rzSSLContext.post_handshake_auth s y,,r,c||j_dSr(rrs r"rzSSLContext.post_handshake_auths(- %%%r,c|jjSr()r>r-r)s r"r-zSSLContext.protocols y!!r,c|jjSr()r>security_levelr)s r"rzSSLContext.security_levelrr,c|jjSr()r> verify_flagsr)s r"rzSSLContext.verify_flagss y%%r,cPtj|j|dSr()rrrr>rs r"rzSSLContext.verify_flags s."/77 Iu     r,c|jjSr()r> verify_moder)s r"rzSSLContext.verify_mode&s y$$r,cPtj|j|dSr()rrrr>rs r"rzSSLContext.verify_mode*s.".66 Iu     r,r()FTTNN)FNN)NNN)NNr8).)F)>r9r:r;__doc__propertytyper+intrDsocketboolstrr SSLSession SSLSocketrN MemoryBIOrBrVbytesosPathLiketypingUnionr\r rraPurpose SERVER_AUTHrdIterablergrjrmAnyrodictrqrurxoverloadLiterallistr}rsetterrr TLSVersionrrOptionsrr _SSLMethodr-r VerifyFlagsr VerifyModerr{r,r"rrMsGG A4AAAXA 8888888&"(,%)&*)-m"&  #  t $& J"&*)- --  t  $&  (NRMQ48   e bk#..U1CCdJ e bk#..U1CCdJ  S(D01       +/)-   ! !4'  $&       &)[%<55{5 5555 <1E<$<<<<:vs/C:::::333333'VZ'''')tCH~))))$$sCx.$$$$---- _36!>%0 fj _ _WWt(<WtE{WWW_W _FFFvzFFF_F$$$fj9IDQVK9W$$$$((((X()D)T))))5T555X5!'66$666('6))))X)*S*T****))))X) S^     ))))X) S^     !!!!X! ^ S[ T   ^ -T---X-..$... ."#."""X"((((X(&co&&&X& #/ d    %S^%%%X%  D      r,r) sslobjcF|pd}d|DS)Nr{czg|]8}t|tr|n|tj9Sr{) isinstancer public_bytes_ssl ENCODING_DER.0certs r" z/_get_unverified_chain_bytes..8sL   tU++ UDD1B1B4CT1U1U   r,get_unverified_chainrunverified_chains r"_get_unverified_chain_bytesr6s:!6688>B  (    r,cF|pd}d|DS)Nr{cLg|]!}|tj"Sr{)rrrrs r"rz/_get_unverified_chain_bytes..As)RRR!!$"344RRRr,rrs r"rr?s.!6688>BRRAQRRRRr,sock_or_sslobjr3c|} t|ds|j}t|dn#t$rYnwxYwt|}t |j||dS)z{ Verifies the peer certificates from an SSLSocket or SSLObject against the certificates in the OS trust store. rr2N)hasattr_sslobjAttributeErrorrr context)rr3r cert_bytess r"r6r6Ds+F &"899 $^F&"899 $      -V44J Os ', 99r8)(rKrplatformrrsysr?rr_ssl_constantsrrrrsystem_windowsr r _macos_openssl TYPE_CHECKINGtyping_extensionsr rrrr TypeAlias__annotations__Callablerr#r%r version_inforBrrrr6r{r,r"rs   8? !!DDDDDDDDDX_(""BBBBBBBBBDDDDDDDD )((((((%(%K"+c2B$BR[QVEW$W!WWW"%+C%K0P"P vPPP    @    a a a a a 3a a a Nw CM d5k     SCMSd5kSSSS MCM1DG$J r,