Ϫf ^dZddlZddlZddlmZddlmZddlmZddl m Z m Z ddl m Z ee Gdd Zee Gd d Zee Gd d Zee Gddej"Zee Gddej"ZgdZy)z* Credential managers for L{twisted.mail}. N) implementer) credentials)IllegalClientResponse)IChallengeResponseIClientAuthentication) nativeStringceZdZdZdZdZy)CramMD5ClientAuthenticatorc||_yNuserselfrs 4/usr/lib/python3/dist-packages/twisted/mail/_cred.py__init__z#CramMD5ClientAuthenticator.__init__  cy)NsCRAM-MD5rs rgetNamez"CramMD5ClientAuthenticator.getNamesrctj||tjj }|j dz|j dzS)N) digestmod ascii)hmacHMAChashlibmd5 hexdigestrencode)rsecretchalresponses rchallengeResponsez,CramMD5ClientAuthenticator.challengeResponses>99VTW[[AKKMyy4(//'":::rN__name__ __module__ __qualname__rrr&rrrr r s;rr c$eZdZdZdZdZdZy)LOGINAuthenticatorc4||_|j|_yr )rchallengeUsernamer&rs rrzLOGINAuthenticator.__init__#s !%!7!7rcy)NsLOGINrrs rrzLOGINAuthenticator.getName'rc<|j|_|jSr )challengeSecretr&rrr#r$s rr.z$LOGINAuthenticator.challengeUsername*s!%!5!5yyrc|Sr rr3s rr2z"LOGINAuthenticator.challengeSecret/s rN)r(r)r*rrr.r2rrrr,r,!s8 rr,ceZdZdZdZdZy)PLAINAuthenticatorc||_yr r rs rrzPLAINAuthenticator.__init__6rrcy)NsPLAINrrs rrzPLAINAuthenticator.getName9r0rc,d|jzdz|zS)Nr r3s rr&z$PLAINAuthenticator.challengeResponse<styy 5(611rNr'rrrr6r64s2rr6c$eZdZdZdZdZdZy)LOGINCredentialscjddg|_ddg|_tjj |ddy)Ns Passwords User Namespasswordsusername) challenges responsesrUsernamePasswordrrs rrzLOGINCredentials.__init__Bs2(.9%{3$$--dD$?rc6|jjSr )r>poprs r getChallengezLOGINCredentials.getChallengeGs""$$rc`t|t|jj|yr )setattrrr?rB)rr%s r setResponsezLOGINCredentials.setResponseJs l4>>#5#5#78(Crc,t|jSr )boolr>rs rmoreChallengeszLOGINCredentials.moreChallengesMsDOO$$rNr(r)r*rrCrFrIrrrr<r<@s@ %D%rr<c$eZdZdZdZdZdZy)PLAINCredentialscFtjj|ddyr )rr@rrs rrzPLAINCredentials.__init__Ss$$--dD$?rcy)Nrrrs rrCzPLAINCredentials.getChallengeVsrcx|jd}t|dk7r td|\}|_|_y)Nr:z*Malformed Response - wrong number of parts)splitlenrusernamepassword)rr%partsuselesss rrFzPLAINCredentials.setResponseYs7u% u:?'(TU U05- rcy)NFrrs rrIzPLAINCredentials.moreChallenges_srNrJrrrrLrLQs@6 rrL)r r<r,rLr6)__doc__rrzope.interfacer twisted.credrtwisted.mail._exceptrtwisted.mail.interfacesrrtwisted.python.compatrr r,r6r@r<rL__all__rrrr_s  &$6M. "# ; ;$ ; "#$$ "#22$2   %{33 %! %   {33!" r