§
    Ètºf½
  ã                   ó¦  — d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZ  ee¦  «         G d„ d	¦  «        ¦   «         Z ee¦  «         G d
„ d¦  «        ¦   «         Z ee¦  «         G d„ d¦  «        ¦   «         Z ee
¦  «         G d„ dej        ¦  «        ¦   «         Z ee
¦  «         G d„ dej        ¦  «        ¦   «         Zg d¢ZdS )z*
Credential managers for L{twisted.mail}.
é    N)Úimplementer)Úcredentials)ÚIllegalClientResponse)ÚIChallengeResponseÚIClientAuthentication)ÚnativeStringc                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚCramMD5ClientAuthenticatorc                 ó   — || _         d S ©N©Úuser©Úselfr   s     úQ/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/mail/_cred.pyÚ__init__z#CramMD5ClientAuthenticator.__init__   ó   € ØˆŒ	ˆ	ˆ	ó    c                 ó   — dS )Ns   CRAM-MD5© ©r   s    r   ÚgetNamez"CramMD5ClientAuthenticator.getName   s   € Øˆ{r   c                 ó¨   — t          j        ||t          j        ¬¦  «                             ¦   «         }| j        dz   |                     d¦  «        z   S )N)Ú	digestmodó    Úascii)ÚhmacÚHMACÚhashlibÚmd5Ú	hexdigestr   Úencode)r   ÚsecretÚchalÚresponses       r   ÚchallengeResponsez,CramMD5ClientAuthenticator.challengeResponse   sD   € Ý”9˜V TµW´[ÐAÑAÔA×KÒKÑMÔMˆØŒy˜4Ñ (§/¢/°'Ñ":Ô":Ñ:Ð:r   N©Ú__name__Ú
__module__Ú__qualname__r   r   r&   r   r   r   r
   r
      sA   € € € € € ðð ð ðð ð ð;ð ;ð ;ð ;ð ;r   r
   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚLOGINAuthenticatorc                 ó,   — || _         | j        | _        d S r   )r   ÚchallengeUsernamer&   r   s     r   r   zLOGINAuthenticator.__init__#   s   € ØˆŒ	Ø!%Ô!7ˆÔÐÐr   c                 ó   — dS )Ns   LOGINr   r   s    r   r   zLOGINAuthenticator.getName'   ó   € Øˆxr   c                 ó(   — | j         | _        | j        S r   )ÚchallengeSecretr&   r   ©r   r#   r$   s      r   r.   z$LOGINAuthenticator.challengeUsername*   s   € à!%Ô!5ˆÔØŒyÐr   c                 ó   — |S r   r   r3   s      r   r2   z"LOGINAuthenticator.challengeSecret/   s   € àˆr   N)r(   r)   r*   r   r   r.   r2   r   r   r   r,   r,   !   sP   € € € € € ð8ð 8ð 8ðð ð ðð ð ð
ð ð ð ð r   r,   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚPLAINAuthenticatorc                 ó   — || _         d S r   r   r   s     r   r   zPLAINAuthenticator.__init__6   r   r   c                 ó   — dS )Ns   PLAINr   r   s    r   r   zPLAINAuthenticator.getName9   r0   r   c                 ó"   — d| j         z   dz   |z   S )Nó    r   r3   s      r   r&   z$PLAINAuthenticator.challengeResponse<   s   € Ø�t”yÑ  5Ñ(¨6Ñ1Ð1r   Nr'   r   r   r   r6   r6   4   sA   € € € € € ðð ð ðð ð ð2ð 2ð 2ð 2ð 2r   r6   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚLOGINCredentialsc                 ól   — ddg| _         ddg| _        t          j                             | d d ¦  «         d S )Ns	   Password s
   User Name s   passwords   username)Ú
challengesÚ	responsesr   ÚUsernamePasswordr   r   s    r   r   zLOGINCredentials.__init__B   s;   € Ø(¨.Ð9ˆŒØ% {Ð3ˆŒÝÔ$×-Ò-¨d°D¸$Ñ?Ô?Ð?Ð?Ð?r   c                 ó4   — | j                              ¦   «         S r   )r>   Úpopr   s    r   ÚgetChallengezLOGINCredentials.getChallengeG   s   € ØŒ×"Ò"Ñ$Ô$Ð$r   c                 óp   — t          | t          | j                             ¦   «         ¦  «        |¦  «         d S r   )Úsetattrr   r?   rB   )r   r%   s     r   ÚsetResponsezLOGINCredentials.setResponseJ   s0   € Ý�•l 4¤>×#5Ò#5Ñ#7Ô#7Ñ8Ô8¸(ÑCÔCÐCÐCÐCr   c                 ó*   — t          | j        ¦  «        S r   )Úboolr>   r   s    r   ÚmoreChallengeszLOGINCredentials.moreChallengesM   s   € Ý�D”OÑ$Ô$Ð$r   N©r(   r)   r*   r   rC   rF   rI   r   r   r   r<   r<   @   sV   € € € € € ð@ð @ð @ð
%ð %ð %ðDð Dð Dð%ð %ð %ð %ð %r   r<   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚPLAINCredentialsc                 óH   — t           j                             | d d ¦  «         d S r   )r   r@   r   r   s    r   r   zPLAINCredentials.__init__S   s#   € ÝÔ$×-Ò-¨d°D¸$Ñ?Ô?Ð?Ð?Ð?r   c                 ó   — dS )Nr   r   r   s    r   rC   zPLAINCredentials.getChallengeV   s   € Øˆsr   c                 ó”   — |                      d¦  «        }t          |¦  «        dk    rt          d¦  «        ‚|\  }| _        | _        d S )Nr:   é   z*Malformed Response - wrong number of parts)ÚsplitÚlenr   ÚusernameÚpassword)r   r%   ÚpartsÚuselesss       r   rF   zPLAINCredentials.setResponseY   sE   € Ø—’˜uÑ%Ô%ˆÝˆu‰:Œ:˜Š?ˆ?Ý'Ð(TÑUÔUÐUØ05Ñ-ˆ�” ¤  r   c                 ó   — dS )NFr   r   s    r   rI   zPLAINCredentials.moreChallenges_   s   € Øˆur   NrJ   r   r   r   rL   rL   Q   sS   € € € € € ð@ð @ð @ðð ð ð6ð 6ð 6ðð ð ð ð r   rL   )r
   r<   r,   rL   r6   )Ú__doc__r   r   Úzope.interfacer   Útwisted.credr   Útwisted.mail._exceptr   Útwisted.mail.interfacesr   r   Útwisted.python.compatr   r
   r,   r6   r@   r<   rL   Ú__all__r   r   r   ú<module>r_      sâ  ððð ð
 €€€Ø €€€à &Ð &Ð &Ð &Ð &Ð &à $Ð $Ð $Ð $Ð $Ð $Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ .Ð .Ð .Ð .Ð .Ð .ð €Ð"Ñ#Ô#ð	;ð 	;ð 	;ð 	;ð 	;ñ 	;ô 	;ñ $Ô#ð	;ð €Ð"Ñ#Ô#ðð ð ð ð ñ ô ñ $Ô#ðð$ €Ð"Ñ#Ô#ð2ð 2ð 2ð 2ð 2ñ 2ô 2ñ $Ô#ð2ð €ÐÑ Ô ð%ð %ð %ð %ð %�{Ô3ñ %ô %ñ !Ô ð%ð  €ÐÑ Ô ðð ð ð ð �{Ô3ñ ô ñ !Ô ðð"ð ð €€€r   