
    =OOfz                         d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
mZmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZm Z  ddl!m"Z"m#Z# 	 	 	 	 	 dd
Z$d Z%	 	 	 	 ddZ&d Z'd Z(d Z)d Z*y	)
   )SIMPLE	ANONYMOUSSASLSTRING_TYPES)RESULT_CODES)LDAPUserNameIsMandatoryErrorLDAPPasswordIsMandatoryError$LDAPUnknownAuthenticationMethodErrorLDAPUserNameNotAllowedError)validate_simple_password)VersionAuthenticationChoiceSimpleBindRequest
ResultCodeSaslCredentialsBindResponseLDAPDN
LDAPStringReferralServerSaslCredsSicilyPackageDiscoverySicilyNegotiateSicilyResponse)authentication_choice_to_dictreferrals_to_list)
to_unicodeto_rawNc                    t               }t        |       |d<   |d}t        |t              r|rt	        |      n||d<   |t
        k(  rK|st        d      |r1t               j                  dt        t        |                  |d<   |S t        d      |t        k(  r5t               }||d<   |||d	<   t               j                  d
|      |d<   |S |t        k(  r:|rt        d      d|d<   t               j                  dt        d            |d<   |S |dk(  r-d|d<   t               j                  dt!        d            |d<   |S |dk(  r;d|d<   t               j                  dt#        |j%                                     |d<   |S |dk(  rT|j'                  |       |j)                         }	|	r-d|d<   t               j                  dt+        |	            |d<   |S d }|S t-        d      )Nversion namez%user name is mandatory in simple bindsimpleauthenticationz$password is mandatory in simple bind	mechanismcredentialssaslz'user name not allowed in anonymous bindSICILY_PACKAGE_DISCOVERYsicilyPackageDiscoverySICILY_NEGOTIATE_NTLMNTLMsicilyNegotiateSICILY_RESPONSE_NTLMsicilyResponsezunknown authentication method)r   r   
isinstancer   r   r   r	   r   setComponentByNamer   r   r
   r   r   r   r   r   r   create_negotiate_messageparse_challenge_messagecreate_authenticate_messager   r   )
r!   r%   r#   passwordsasl_mechanismsasl_credentialsauto_encoderequest
sasl_credsserver_credss
             U/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/ldap3/operation/bind.pybind_operationr=   $   se    mG )GI|$%.9*T*t./VWW(<(>(Q(QRZ\bc{  }E  dF  ]G  )HG$%B N? //UVV	4	$&
"0
;'(8J}% %9$:$M$MfV`$a !. N- 
9	$-.WXX$8$:$M$MhX^_aXb$c !$ N# 
5	5$8$:$M$MNfh~  @B  iC  %D ! N 
2	2 $8$:$M$MN_apqu  rO  rO  rQ  bR  %S ! N 
1	1$$X.779 GFO(<(>(Q(QRbdrs  eA  )BG$% N	 G N 33RSS    c                 V    t        | d         t        | d         t        | d         dS )Nr!   r#   r%   )r!   r#   r%   )intstrr   )r9   s    r<   bind_request_to_dictrB   ]   s5    79-.(;GDT<UVX Xr>   c                     t               }t        |       |d<   t        |      |d<   t        |      |d<   |rt	        |      |d<   |rt        |      |d<   |S )N
resultCode	matchedDNdiagnosticMessagereferralserverSaslCreds)r   r   r   r   r   r   )result_code
matched_dndiagnostic_messagerG   server_sasl_credentialsresponses         r<   bind_response_operationrN   c   se     ~H'4H\":.H[$./A$BH !'1&56M&N"#Or>   c           	      H   t        | d         t               j                         j                  | d         t	        | d         t	        | d         | d   !| d   j                         rt        | d         ng | d   #| d   j                         rt        | d         dS d dS )NrD   rE   rF   rG   rH   )resultdescriptiondnmessage	referrals	saslCreds)r@   r   getNamedValuesgetNamerA   hasValuer   bytesrM   s    r<   bind_response_to_dictr[   x   s    (<01%<668@@,AWXh{+,8$789DLZDXDdiqr|i}  jG  jG  jI*8J+?@  OQ?GHY?Z?fks  uF  lG  lP  lP  lRx(9:;] ]
 X\] ]r>   c                     t        | d         t               j                         j                  | d         t	        | d         t        | d         dS )NrD   rE   rF   )rP   rQ   r;   error_message)r@   r   rV   rW   rY   rA   rZ   s    r<   sicily_bind_response_to_dictr^      sT    (<01%<668@@,AWX!(;"78 *=!>?A Ar>   c                 6   t               }t        | d   d         |d<   t        |d      |d<   t        | d   d   d      |d<   t        | d	   d   d      |d
<   d |d<   d |d<   | dd  D ]-  }|d	   dk(  rt	        |d         |d<   t        |d         |d<   / |S )N       rP   rQ      Tfrom_serverrR   r   rS   rT   rU   )dictr@   r   r   r   rY   )rM   response_dictrs      r<   bind_response_to_dict_fastrh      s    FM!(1+a.1M(#/h0G#HM- $Xa[^FM$)(1+a.dKM)!%M+!%M+ab\ 5Q419):1Q4)@M+&).qtM+&	5 r>   c                     t               }t        | d   d         |d<   t        |d      |d<   t        | d   d         |d<   t	        | d   d   d	      |d
<   |S )Nr`   ra   rP   rQ   rb   r;   r   Trc   r]   )re   r@   r   rY   r   )rM   rf   s     r<   !sicily_bind_response_to_dict_fastrj      sj    FM!(1+a.1M(#/h0G#HM- $)(1+a.$9M.!%/AD%QM/"r>   )r"   NNNF)r"   r"   NN)+__doc__r"   r   r   r   r   core.resultsr   core.exceptionsr	   r
   r   r   protocol.sasl.saslr   protocol.rfc4511r   r   r   r   r   r   r   r   r   r   r   r   r   r   protocol.convertr   r   
utils.convr   r   r=   rB   rN   r[   r^   rh   rj    r>   r<   <module>rs      s   2 5 4 ' \  \ 9k k k k O +
  "&$($6rX (*/1%)48	*]A"r>   