
    h2                         d Z 	 ddlZddlmZmZmZ dZddlZddl	m
Z
 dd	lmZ dd
lmZmZ  G d de      Zd Zy# e$ r  G d de      ZdZY ;w xY w)z#MONGODB-AWS Authentication helpers.    N)AwsCredentialAwsSaslContextPyMongoAuthAwsErrorTc                       e Zd Zd Zy)r   c                      y )N )selfcredentialss     S/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/pymongo/auth_aws.py__init__zAwsSaslContext.__init__   s        N)__name__
__module____qualname__r   r   r   r   r   r      s    	r   r   FBinary)SON)ConfigurationErrorOperationFailurec                       e Zd Zd Zd Zd Zy)_AwsSaslContextc                     t         S )z#Return the bson.binary.Binary type.r   )r	   s    r   binary_typez_AwsSaslContext.binary_type%   s    r   c                 ,    t        j                  |      S )zEncode a dictionary to BSON.)bsonencode)r	   docs     r   bson_encodez_AwsSaslContext.bson_encode)   s    {{3r   c                 ,    t        j                  |      S )zDecode BSON to a dictionary.)r   decode)r	   datas     r   bson_decodez_AwsSaslContext.bson_decode-   s    {{4  r   N)r   r   r   r   r   r"   r   r   r   r   r   #   s     !r   r   c                 F   t         st        d      |j                  dk  rt        d      	 t        t	        | j
                  | j                  | j                  j                              }|j                  d      }t        ddd|fg      }|j                  d|      }|}t        d	      D ]D  }|j                  |d         }t        d
d|d   fd|fg      }|j                  d|      }|d   sD y y# t        $ r$}	t        |	dt        j                   d      d}	~	w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   pymongo_auth_aws__version__)
r
   	sock_infoctxclient_payloadclient_firstserver_firstres_cmdexcs
             r   _authenticate_awsrB   2   sV     AB 	B !!A% NP 	P0m  +"6"6,,>>@ A $,8&79 : !((lCr 	A XXc)n5N*(,7G*HI!>24 5C ##K5C6{	  0!-- / 0 	00s$   CC3 /C3 1C3 3	D <DD )__doc__r7   r   r   r   r.   ImportErrorobjectr   bson.binaryr   bson.sonr   pymongo.errorsr   r   r   rB   r   r   r   <module>rI      sh    *
7 7     ?!n !#07    	s   ; AA