ó
    Ö›‘h½
  ã                   ó^  • S r SSKrSSKrSSKJr  SSKJr  SSKJr  SSK	J
r
Jr  SSKJr  \" \5       " S S	5      5       r\" \5       " S
 S5      5       r\" \5       " S S5      5       r\" \
5       " S S\R"                  5      5       r\" \
5       " S S\R"                  5      5       r/ SQrg)z*
Credential managers for L{twisted.mail}.
é    N)Úimplementer)Úcredentials)ÚIllegalClientResponse)ÚIChallengeResponseÚIClientAuthentication)ÚnativeStringc                   ó&   • \ rS rSrS rS rS rSrg)ÚCramMD5ClientAuthenticatoré   c                 ó   • Xl         g ©N©Úuser©Úselfr   s     ÚVC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/mail/_cred.pyÚ__init__Ú#CramMD5ClientAuthenticator.__init__   ó   € Ø�	ó    c                 ó   • g)Ns   CRAM-MD5© ©r   s    r   ÚgetNameÚ"CramMD5ClientAuthenticator.getName   s   € Ør   c                 ó¦   • [         R                  " X[        R                  S9R	                  5       nU R
                  S-   UR                  S5      -   $ )N)Ú	digestmodó    Úascii)ÚhmacÚHMACÚhashlibÚmd5Ú	hexdigestr   Úencode)r   ÚsecretÚchalÚresponses       r   ÚchallengeResponseÚ,CramMD5ClientAuthenticator.challengeResponse   s<   € Ü—9’9˜V´W·[±[ÑA×KÑKÓMˆØ�y‰y˜4Ñ (§/¡/°'Ó":Ñ:Ð:r   r   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r)   Ú__static_attributes__r   r   r   r
   r
      s   † òòõ;r   r
   c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚLOGINAuthenticatoré!   c                 ó2   • Xl         U R                  U l        g r   )r   ÚchallengeUsernamer)   r   s     r   r   ÚLOGINAuthenticator.__init__#   s   € ØŒ	Ø!%×!7Ñ!7ˆÕr   c                 ó   • g)Ns   LOGINr   r   s    r   r   ÚLOGINAuthenticator.getName'   ó   € Ør   c                 ó<   • U R                   U l        U R                  $ r   )ÚchallengeSecretr)   r   ©r   r&   r'   s      r   r5   Ú$LOGINAuthenticator.challengeUsername*   s   € à!%×!5Ñ!5ˆÔØ�y‰yÐr   c                 ó   • U$ r   r   r<   s      r   r;   Ú"LOGINAuthenticator.challengeSecret/   s   € àˆr   )r)   r   N)	r,   r-   r.   r/   r   r   r5   r;   r0   r   r   r   r2   r2   !   s   † ò8òòõ
r   r2   c                   ó&   • \ rS rSrS rS rS rSrg)ÚPLAINAuthenticatoré4   c                 ó   • Xl         g r   r   r   s     r   r   ÚPLAINAuthenticator.__init__6   r   r   c                 ó   • g)Ns   PLAINr   r   s    r   r   ÚPLAINAuthenticator.getName9   r9   r   c                 ó,   • SU R                   -   S-   U-   $ )Nó    r   r<   s      r   r)   Ú$PLAINAuthenticator.challengeResponse<   s   € Ø�t—y‘yÑ  5Ñ(¨6Ñ1Ð1r   r   Nr+   r   r   r   rA   rA   4   s   † òòõ2r   rA   c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚLOGINCredentialsé@   c                 ój   • SS/U l         SS/U l        [        R                  R	                  U S S 5        g )Ns	   Password s
   User Name s   passwords   username)Ú
challengesÚ	responsesr   ÚUsernamePasswordr   r   s    r   r   ÚLOGINCredentials.__init__B   s2   € Ø(¨.Ð9ˆŒØ% {Ð3ˆŒÜ×$Ñ$×-Ñ-¨d°D¸$Õ?r   c                 ó6   • U R                   R                  5       $ r   )rN   Úpopr   s    r   ÚgetChallengeÚLOGINCredentials.getChallengeG   s   € Ø�‰×"Ñ"Ó$Ð$r   c                 ó`   • [        U [        U R                  R                  5       5      U5        g r   )Úsetattrr   rO   rS   )r   r(   s     r   ÚsetResponseÚLOGINCredentials.setResponseJ   s    € Ü�”l 4§>¡>×#5Ñ#5Ó#7Ó8¸(ÕCr   c                 ó,   • [        U R                  5      $ r   )ÚboolrN   r   s    r   ÚmoreChallengesÚLOGINCredentials.moreChallengesM   s   € Ü�D—O‘OÓ$Ð$r   )rN   rO   N©	r,   r-   r.   r/   r   rT   rX   r\   r0   r   r   r   rK   rK   @   s   † ò@ò
%òDõ%r   rK   c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚPLAINCredentialséQ   c                 óF   • [         R                  R                  U S S 5        g r   )r   rP   r   r   s    r   r   ÚPLAINCredentials.__init__S   s   € Ü×$Ñ$×-Ñ-¨d°D¸$Õ?r   c                 ó   • g)Nr   r   r   s    r   rT   ÚPLAINCredentials.getChallengeV   s   € Ør   c                 óx   • UR                  S5      n[        U5      S:w  a  [        S5      eUu  o0l        U l        g )NrH   é   z*Malformed Response - wrong number of parts)ÚsplitÚlenr   ÚusernameÚpassword)r   r(   ÚpartsÚuselesss       r   rX   ÚPLAINCredentials.setResponseY   s5   € Ø—‘˜uÓ%ˆÜˆu‹:˜‹?Ü'Ð(TÓUÐUØ05Ñ-ˆ” ¥r   c                 ó   • g)NFr   r   s    r   r\   ÚPLAINCredentials.moreChallenges_   s   € Ør   )rk   rj   Nr^   r   r   r   r`   r`   Q   s   † ò@òò6õr   r`   )r
   rK   r2   r`   rA   )Ú__doc__r"   r    Úzope.interfacer   Útwisted.credr   Útwisted.mail._exceptr   Útwisted.mail.interfacesr   r   Útwisted.python.compatr   r
   r2   rA   rP   rK   r`   Ú__all__r   r   r   Ú<module>rx      sÓ   ðñó
 Û å &å $Ý 6ß MÝ .ñ Ð"Ó#÷	;ð 	;ó $ð	;ñ Ð"Ó#÷ð ó $ðñ$ Ð"Ó#÷2ð 2ó $ð2ñ ÐÓ ô%�{×3Ñ3ó %ó !ð%ñ  ÐÓ ô�{×3Ñ3ó ó !ðò"�r   