
    [j                    N   d Z ddlmZ 	 ddlZddlmZmZmZ dZn# e$ r  G d d          ZdZY nw xY w	 dd	l	m
Z
mZ  ed           n# e$ r ddZ
Y nw xY wddlmZmZmZmZmZ ddlZddlmZ ddlmZ ddlmZmZ erddlmZ ddlmZ ddlmZ  G d de          Z ddZ!dS )z#MONGODB-AWS Authentication helpers.    )annotationsN)AwsCredentialAwsSaslContextPyMongoAuthAwsErrorTc                      e Zd ZddZdS )r   credentialsMongoCredentialc                    d S N )selfr   s     T/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/pymongo/auth_aws.py__init__zAwsSaslContext.__init__   s    D    N)r   r	   )__name__
__module____qualname__r   r   r   r   r   r      s(        	 	 	 	 	 	r   r   F)set_cached_credentialsset_use_cached_credentials_credsOptional[AwsCredential]returnNonec                    d S r   r   )r   s    r   r   r   &   s    r   )TYPE_CHECKINGAnyMappingOptionalTypeBinary)SON)ConfigurationErrorOperationFailure)_ReadableBuffer)r	   )
Connectionc                  &    e Zd ZddZddZdd
ZdS )_AwsSaslContextr   Type[Binary]c                    t           S )z#Return the bson.binary.Binary type.r    )r   s    r   binary_typez_AwsSaslContext.binary_type9   s    r   docMapping[str, Any]bytesc                *    t          j        |          S )zEncode a dictionary to BSON.)bsonencode)r   r,   s     r   bson_encodez_AwsSaslContext.bson_encode=   s    {3r   datar%   c                *    t          j        |          S )zDecode BSON to a dictionary.)r0   decode)r   r3   s     r   bson_decodez_AwsSaslContext.bson_decodeA   s    {4   r   N)r   r)   )r,   r-   r   r.   )r3   r%   r   r-   )r   r   r   r+   r2   r6   r   r   r   r(   r(   7   sP                  ! ! ! ! ! !r   r(   r   r	   connr&   c                   t           st          d          |j        dk     rt          d          	 t          t	          | j        | j        | j        j                            }|	                    d          }t          ddd|fg          }|                    d|          }|}t          d	          D ]Z}|	                    |d                   }t          d
d|d         fd|fg          }|                    d|          }|d         r dS [dS # t          $ r4}	t          d           t          |	 dt           j         d          dd}	~	wt$          $ r t          d            w xY w)zAuthenticate using MONGODB-AWS.zhMONGODB-AWS authentication requires pymongo-auth-aws: install with: python -m pip install 'pymongo[aws]'	   z@MONGODB-AWS authentication requires MongoDB version 4.4 or laterN)	saslStart   )	mechanismzMONGODB-AWSpayloadz	$external
   )saslContinuer;   conversationIddonez (pymongo-auth-aws version ))_HAVE_MONGODB_AWSr#   max_wire_versionr(   r   usernamepasswordmechanism_propertiesaws_session_tokenstepr"   commandranger   r   r$   pymongo_auth_aws__version__	Exception)
r   r7   ctxclient_payloadclient_firstserver_firstres_cmdexcs
             r   _authenticate_awsrW   F   s    
 A
 
 	

 q   !cddd&$$0B 
 
 $;i=XY
 
 ||K>>r 	 	A XXc)n55N'%|4D'EF/ C ,,{C00C6{ 	 	    t$$$NN/?/KNNN
 
	    t$$$s   CD D 
E(/E

E()r   r   r   r   )r   r	   r7   r&   r   r   )"__doc__
__future__r   rL   r   r   r   rC   ImportErrorpymongo_auth_aws.authr   r   typingr   r   r   r   r   r0   bson.binaryr!   bson.sonr"   pymongo.errorsr#   r$   bson.typingsr%   pymongo.authr	   pymongo.poolr&   r(   rW   r   r   r   <module>rc      s   * ) " " " " " "SSSSSSSSSS           XXXXXXXX t$$$$         ? > > > > > > > > > > > > >              ? ? ? ? ? ? ? ? (,,,,,,,,,,,,''''''! ! ! ! !n ! ! !1 1 1 1 1 1s    22A
 
	AA