
    gh i                       U d Z ddlmZ ddlZddlZddlmZmZmZ ddl	m
Z
 dZdZ	 ddlmZ 	 ddlmZ erddlZddlmZmZ dZerjej<                  Zde d<   ejB                  ejB                  z   Z!de d<   ejD                  ejD                  fZ"de d<   ejF                  ejF                  fZ#de d<   nAej<                  ZejB                  Z!de d<   ejD                  fZ"de d<   ejF                  fZ#de d<   ej<                  Ze"Z$ddZ%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ&y G d de'      ZdZdZ!de d<   ddZ%d Z&y# eef$ r+ZdZ eee      r ej(                  ded	
       Y dZ[6dZ[ww xY w# e$ r dZY Aw xY w)zSupport for SSL in PyMongo.    )annotationsN)AnyOptionalUnionConfigurationErrorTFzFailed to use the installed version of PyOpenSSL. Falling back to stdlib ssl, disabling OCSP support. This is likely caused by incompatible versions of PyOpenSSL < 23.2.0 and cryptography >= 42.0.0. Try updating PyOpenSSL >= 23.2.0 to enable OCSP.   )
stacklevel)	CERT_NONECERT_REQUIREDr   
PYSSLErrortupleBLOCKING_IO_ERRORSBLOCKING_IO_READ_ERRORBLOCKING_IO_WRITE_ERRORc                R    | rt         rt        j                  S t        j                  S )N)
HAVE_PYSSL_pysslHAS_SNI_sslis_syncs    O/opt/movilizia/ApiFast/venv/lib/python3.12/site-packages/pymongo/ssl_support.py_has_snir   N   s    z>>!||    c                D   |rt         rt        }nt        }|rt        nt        }	|j                  |j                        }
|	t        k7  r	| |
_        nd|
_        t        |
d      r| |
_	        t        |
d      r||
xj                  |j                  z  c_
        |
xj                  |j                  z  c_
        |
xj                  |j                  z  c_
        |
xj                  |j                  z  c_
        | 	 |
j                  | d|       |:|j$                  rt#        d      t'        |dd      |
_        |
j+                  |       ||
j+                  |       n|	t        k7  r|
j-                          |	|
_        |
S # |j                   $ r}t#        d|       dd}~ww xY w)	z'Create and return an SSLContext object.Fcheck_ocsp_endpointoptionsNz'Private key doesn't match certificate: z(tlsCRLFile cannot be used with PyOpenSSLVERIFY_CRL_CHECK_LEAFr   )r   r   r   r   r   
SSLContextPROTOCOL_SSLv23check_hostnamehasattrr   r   OP_NO_SSLv2OP_NO_SSLv3OP_NO_COMPRESSIONOP_NO_RENEGOTIATIONload_cert_chainSSLErrorr   IS_PYOPENSSLgetattrverify_flagsload_verify_locationsload_default_certsverify_mode)certfile
passphraseca_certscrlfileallow_invalid_certificatesallow_invalid_hostnamesdisable_ocsp_endpoint_checkr   sslr/   ctxexcs               r   get_ssl_contextr:   S   sx    z$*CC#=i=nnS001)#%<!<C!&C3-.*E&EC#3	"
 KK3??*KKK3??*KKK3000KKK3222Kd##HdJ? ()STT&s,CQGC%%g.%%h/I%""$%
 << d(+RSVRW)XY_ccds   7E< <FFFc                      e Zd Zy)r)   N)__name__
__module____qualname__ r   r   r)   r)      s    r   r)   r?   c                     y)NFr?   r   s    r   r   r      s    r   c                     t        d      )z(No ssl module, raise ConfigurationError.zThe ssl module is not availabler   )dummys    r   r:   r:      s     !BCCr   )r   boolreturnrC   )r0   Optional[str]r1   rE   r2   rE   r3   rE   r4   rC   r5   rC   r6   rC   r   rC   rD   z)Union[_pyssl.SSLContext, _ssl.SSLContext])(__doc__
__future__r   typeswarningstypingr   r   r   pymongo.errorsr   HAVE_SSLr   pymongo.pyopenssl_contextpyopenssl_contextr   ImportErrorAttributeErrorr9   
isinstancewarnUserWarningpymongo.ssl_contextssl_contextr   r7   
_stdlibsslr   r   IPADDR_SAFEr)   r   __annotations__r   r   r   BLOCKING_IO_LOOKUP_ERRORr   r:   	Exceptionr?   r   r   <module>r[      s   " "   ' ' -

.&
 
 ,K //
C)##f&?&?? 	E 	
 ))'')
 	

 **((*
 	

 ]]
$($;$;E;)-)D)D(FF*.*F*F)HH}}H5
00!0  0 	0
 %)0 "&0 &*0 0 
30h9  K ""Dg 	^$ 
J#~&?
 	

  Hs(   D6 E+ 6E(= E##E(+E65E6