+
    Dfj
                     `   R t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHt ]! ]4       ! R R4      4       t]! ]4       ! R	 R
4      4       t]! ]4       ! R R4      4       t]! ]
4       ! R R]P"                  4      4       t]! ]
4       ! R R]P"                  4      4       t. ROtR# )z*
Credential managers for L{twisted.mail}.
N)implementer)credentials)IllegalClientResponse)IChallengeResponseIClientAuthentication)nativeStringc                   2   a  ] tR t^t o R tR tR tRtV tR# )CramMD5ClientAuthenticatorc                    Wn         R # Nuserselfr   s   &&4/usr/lib/python3/dist-packages/twisted/mail/_cred.py__init__#CramMD5ClientAuthenticator.__init__       	    c                    R # )s   CRAM-MD5 r   s   &r   getName"CramMD5ClientAuthenticator.getName   s    r   c                    \         P                  ! W\        P                  R 7      P	                  4       pV P
                  R,           VP                  R4      ,           # ))	digestmod    ascii)hmacHMAChashlibmd5	hexdigestr   encode)r   secretchalresponses   &&& r   challengeResponse,CramMD5ClientAuthenticator.challengeResponse   s<    99VW[[AKKMyy4(//'":::r   r   N	__name__
__module____qualname____firstlineno__r   r   r'   __static_attributes____classdictcell____classdict__s   @r   r	   r	      s     ; ;r   r	   c                   8   a  ] tR t^!t o R tR tR tR tRtV t	R# )LOGINAuthenticatorc                4    Wn         V P                  V n        R # r   )r   challengeUsernamer'   r   s   &&r   r   LOGINAuthenticator.__init__#   s    	!%!7!7r   c                    R # )s   LOGINr   r   s   &r   r   LOGINAuthenticator.getName'       r   c                <    V P                   V n        V P                  # r   )challengeSecretr'   r   r   r$   r%   s   &&&r   r5   $LOGINAuthenticator.challengeUsername*   s    !%!5!5yyr   c                    V# r   r   r<   s   &&&r   r;   "LOGINAuthenticator.challengeSecret/   s    r   )r'   r   N)
r*   r+   r,   r-   r   r   r5   r;   r.   r/   r0   s   @r   r3   r3   !   s     8
 r   r3   c                   2   a  ] tR t^4t o R tR tR tRtV tR# )PLAINAuthenticatorc                    Wn         R # r   r   r   s   &&r   r   PLAINAuthenticator.__init__6   r   r   c                    R # )s   PLAINr   r   s   &r   r   PLAINAuthenticator.getName9   r9   r   c                D    R V P                   ,           R ,           V,           # )    r   r<   s   &&&r   r'   $PLAINAuthenticator.challengeResponse<   s    tyy 5(611r   r   Nr)   r0   s   @r   rA   rA   4   s     2 2r   rA   c                   8   a  ] tR t^@t o R tR tR tR tRtV t	R# )LOGINCredentialsc                l    R R.V n         RR.V n        \        P                  P	                  V RR4       R# )s	   Password s
   User Name s   passwords   usernameN)
challenges	responsesr   UsernamePasswordr   r   s   &r   r   LOGINCredentials.__init__B   s2    (.9%{3$$--dD$?r   c                6    V P                   P                  4       # r   )rL   popr   s   &r   getChallengeLOGINCredentials.getChallengeG   s    ""$$r   c                b    \        V \        V P                  P                  4       4      V4       R # r   )setattrr   rM   rQ   )r   r&   s   &&r   setResponseLOGINCredentials.setResponseJ   s     l4>>#5#5#78(Cr   c                ,    \        V P                  4      # r   )boolrL   r   s   &r   moreChallengesLOGINCredentials.moreChallengesM   s    DOO$$r   )rL   rM   N
r*   r+   r,   r-   r   rR   rV   rZ   r.   r/   r0   s   @r   rJ   rJ   @   s      @
%D% %r   rJ   c                   8   a  ] tR t^Qt o R tR tR tR tRtV t	R# )PLAINCredentialsc                H    \         P                  P                  V R R 4       R # r   )r   rN   r   r   s   &r   r   PLAINCredentials.__init__S   s    $$--dD$?r   c                    R # )r   r   r   s   &r   rR   PLAINCredentials.getChallengeV   s    r   c                |    VP                  R 4      p\        V4      ^8w  d   \        R4      hVw  q0n        V n        R# )rG   z*Malformed Response - wrong number of partsN)splitlenr   usernamepassword)r   r&   partsuselesss   &&  r   rV   PLAINCredentials.setResponseY   s5    u%u:?'(TUU05-r   c                    R # )Fr   r   s   &r   rZ   PLAINCredentials.moreChallenges_   s    r   )rg   rf   Nr\   r0   s   @r   r^   r^   Q   s     @6 r   r^   )r	   rJ   r3   r^   rA   )__doc__r    r   zope.interfacer   twisted.credr   twisted.mail._exceptr   twisted.mail.interfacesr   r   twisted.python.compatr   r	   r3   rA   rN   rJ   r^   __all__r   r   r   <module>rt      s   
   & $ 6 M . "#	; 	; $	; "#  $$ "#2 2 $2  %{33 % !%   {33  !"r   