# ``twisted`.`mail`.`_cred`.`PLAINCredentials``

class documentation

`class PLAINCredentials(credentials.UsernamePassword): (source)`

Implements interfaces: `twisted.mail.interfaces.IChallengeResponse`

View In Hierarchy

Undocumented

Method | `__init__` | Undocumented
Method | `getChallenge` | Return a client challenge.
Method | `moreChallenges` | No summary
Method | `setResponse` | Extract a username and possibly a password from a response and assign them to `username` and `password` instance variables.
Instance Variable | `password` | Undocumented
Instance Variable | `username` | Undocumented

Inherited from `UsernamePassword`:

Method | `checkPassword` | Validate these credentials against the correct password.

def __init__(self): (source)
overrides `twisted.cred.credentials.UsernamePassword.__init__`

Undocumented

def getChallenge(self): (source)
from `twisted.mail.interfaces.IChallengeResponse`
Return a client challenge.

Returns
`bytes` | A challenge.

def moreChallenges(self): (source)
from `twisted.mail.interfaces.IChallengeResponse`
Are there more challenges than just the first? If so, callers should challenge clients with the result of `getChallenge`, and check their response with `setResponse` in a loop until this returns `False`

Returns
`bool` | Are there more challenges?

def setResponse(self, response): (source)
from `twisted.mail.interfaces.IChallengeResponse`
Extract a username and possibly a password from a response and assign them to `username` and `password` instance variables.

Parameters
response:`bytes` | A decoded response.
See Also
`credentials.IUsernamePassword` or `credentials.IUsernameHashedPassword`

password = (source)
from `twisted.cred.credentials.IUsernamePassword`
overrides `twisted.cred.credentials.UsernamePassword.password`

Undocumented

username = (source)
from `twisted.cred.credentials.IUsernamePassword`
overrides `twisted.cred.credentials.UsernamePassword.username`

Undocumented