kgh+PUddlZddlZddlZddlZddlZddlZddlZddlmZm Z m Z m Z ej dkr ddl mZmZn$ej dkr ddlmZmZnddlmZmZejrddlmZeezejezejezZejed<eezejgeezfzZejed <dd Zdd ZGd de Zej 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.0/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%@sw 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__Ns 3@j@Nprotocolcvt||_Gddtj}||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"TruststoreSSLObjectr0Xs=           r,r=)r_ctxr SSLObjectsslobject_class)r*r-r=s r"__init__zSSLContext.__init__UsO(22      #-   %8 !!!r,FTsock server_sidedo_handshake_on_connectsuppress_ragged_eofsr3sessionc  t|j5|j||||||}dddn #1swxYwY t||n##t$r|wxYw|S)N)rCr3rDrErFr2)r r> wrap_socketr6 Exceptionclose)r*rBrCrDrEr3rFssl_socks r"rHzSSLContext.wrap_socketds  * *  y,,' /(?%9 -H                 h H H H H H    NN     s!AA AA Bincomingoutgoingct|j5|j|||||}dddn #1swxYwY|S)N)r3rCrF)r r>wrap_bio)r*rLrMrCr3rFssl_objs r"rOzSSLContext.wrap_bios  * *  i(( /' )G               s AAAcafilecapathcadatar c<|j|||S)N)rQrRrS)r>load_verify_locations)r*rQrRrSs r"rUz SSLContext.load_verify_locationss* y..&/   r,certfilekeyfilepasswordc<|j|||S)N)rVrWrX)r>load_cert_chain)r*rVrWrXs r"rZzSSLContext.load_cert_chains* y((w)   r,purposec6|j|Sr()r>load_default_certs)r*r[s r"r]zSSLContext.load_default_certssy++G444r,alpn_protocolsc6|j|Sr()r>set_alpn_protocols)r*r^s r"r`zSSLContext.set_alpn_protocolssy++N;;;r, npn_protocolsc6|j|Sr()r>set_npn_protocols)r*ras r"rczSSLContext.set_npn_protocolssy**=999r,_SSLContext__cipherlistc6|j|Sr()r> set_ciphers)r*rds r"rfzSSLContext.set_cipherssy$$\222r,c4|jSr()r> get_ciphersr)s r"rhzSSLContext.get_cipherssy$$&&&r,c4|jSr()r> session_statsr)s r"rjzSSLContext.session_statssy&&(((r,ctr(NotImplementedErrorr)s r"cert_store_statszSSLContext.cert_store_stats!###r,c8|jdSr()r>set_default_verify_pathsr)s r"rqz#SSLContext.set_default_verify_pathss **,,,,,r,. binary_formcdSr(r*rrs r" get_ca_certszSSLContext.get_ca_certss 3r,cdSr(rtrus r"rvzSSLContext.get_ca_certssTWTWr,cdSr(rtrus r"rvzSSLContext.get_ca_certssCF3r,ctr(rlrus r"rvzSSLContext.get_ca_certsror,c|jjSr(r>check_hostnamer)s r"r|zSSLContext.check_hostname y''r,valuec||j_dSr(r{r*r~s r"r|zSSLContext.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_auths y,,r,c||j_dSr(rrs r"rzSSLContext.post_handshake_auths(- %%%r,c|jjSr()r>r-r)s r"r-zSSLContext.protocol s y!!r,c|jjSr()r>security_levelr)s r"rzSSLContext.security_levelr}r,c|jjSr()r> verify_flagsr)s r"rzSSLContext.verify_flagss y%%r,cPtj|j|dSr()rrrr>rs r"rzSSLContext.verify_flagss."/77 Iu     r,c|jjSr()r> verify_moder)s r"rzSSLContext.verify_modes 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+intrAsocketboolstrr SSLSession SSLSocketrH MemoryBIOr?rObytesosPathLiketypingUnionrUr rrZPurpose SERVER_AUTHr]Iterabler`rcrfAnyrhdictrjrnrqoverloadLiterallistrvr|setterrr TLSVersionrrOptionsrr _SSLMethodr-r VerifyFlagsr VerifyModerrtr,r"rrKsGG A4AAAXA 8 8 8 8 8 8 8$"(,%)&*)-m"&  #  t $& @"&*)- --  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)Nrtczg|]8}t|tr|n|tj9Srt) isinstancer public_bytes_ssl ENCODING_DER.0certs r" z/_get_unverified_chain_bytes..0sL   tU++ UDD1B1B4CT1U1U   r,get_unverified_chainrunverified_chains r"_get_unverified_chain_bytesr.s:!6688>B  (    r,cF|pd}d|DS)NrtcLg|]!}|tj"Srt)rrrrs r"rz/_get_unverified_chain_bytes..9s)RRR!!$"344RRRr,rrs r"rr7s.!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"r6r6<s+F &"899 $^F&"899 $      -V44J Os ', 99r8)&rplatformrrsysrr_ssl_constantsrrrrsystem_windowsr r _macos_openssl TYPE_CHECKINGpip._vendor.typing_extensionsr rrrr TypeAlias__annotations__Callablerr#r%r version_infor?rrrr6rtr,r"rs  8? !!DDDDDDDDDX_(""BBBBBBBBBDDDDDDDD 5444444%(%K"+c2B$BR[QVEW$W!WWW"%+C%K0P"P vPPP    @    [ [ [ [ [ 3[ [ [ Bw CM d5k     SCMSd5kSSSS MCM1DG$J r,