2biC S SK Jr S SKrS SKrS SKrS SKrS SKJrJr S SK J r JrJr SSK JrJrJrJr SSKJr SS KJrJr SrSrS rS rS rS/r\ \\S.rS r\" \S\5 r S SK!r!S SK!J"r"J#r# S SK!Jr SSK%Jr S SK!J&r& \&r' S SK!J(r( S SK!J)r)J*r*J+r+ S SK!J,r, SR[ / SQ5 r. S SK!Jr S r0S r1S! r2 S'S" jr3 S(S# jr4S$ r5S% r6S)S& jr7g! \$ a N~f = f! \$ a Nf = f! \$ a Nf = f! \$ a S SK!J'r& \&r' N! \$ a S=r'r& Nf = ff = f! \$ a \&r( Nf = f! \$ a Su r*r+Sr) Nf = f! \$ a Sr, Nf = f! \$ a " S S\/5 r Nf = f)* )absolute_importN)hexlify unhexlify)md5sha1sha256 )InsecurePlatformWarningProxySchemeUnsupportedSNIMissingWarningSSLError)six )BRACELESS_IPV6_ADDRZ_REIPV4_REFzhttp/1.1) ( @ c [ [ U 5 [ U5 - 5 n[ [ U 5 [ U5 5 H u p4X#U- - nM US:H $ )z Compare two digests of equal length in constant time. The digests must be of type str/bytes. Returns True if the digests match, and False otherwise. r )abslenzip bytearray)abresultleftrights ڏ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/urllib3/util/ssl_.py_const_compare_digest_backportr sK Q#a& !F9Q<16, 7Q; compare_digest) CERT_REQUIREDwrap_socket)HAS_SNI)SSLTransport)PROTOCOL_TLS)PROTOCOL_SSLv23)PROTOCOL_TLS_CLIENT)OP_NO_COMPRESSIONOP_NO_SSLv2OP_NO_SSLv3)i i i )OP_NO_TICKETi @ :)zECDHE+AESGCMzECDHE+CHACHA20z DHE+AESGCMzDHE+CHACHA20zECDH+AESGCMz DH+AESGCMzECDH+AESzDH+AESz RSA+AESGCMzRSA+AESz!aNULLz!eNULLz!MD5z!DSS) SSLContextc : \ rS rSrS rS rS S jrS rS S jrSr g)r/ c Xl SU l [ R U l S U l SU l S U l S U l S U l g )NFr ) protocolcheck_hostnamessl CERT_NONEverify_modeca_certsoptionscertfilekeyfileciphers)selfprotocol_versions r __init__SSLContext.__init__ s> ,M"'D"}}D DMDL DMDLDLr! c Xl X l g N)r: r; )r= r: r; s r load_cert_chainSSLContext.load_cert_chain s $M"Lr! Nc H Xl Ub [ S5 eUb [ S5 eg )Nz-CA directories not supported in older Pythonsz&CA data not supported in older Pythons)r8 r )r= cafilecapathcadatas r load_verify_locations SSLContext.load_verify_locations s0 "M!NOO!GHH "r! c Xl g rB r<