from twisted.cred import credentials
class ISSHPrivateKey(credentials.ICredentials):
"""I encapsulate an SSH public key to be checked against a users private
key.
@ivar username: Duh?
@ivar blob: The public key blob as sent by the client.
@ivar sigData: The data the signature was made from.
@ivar signature: The signed data. This is checked to verify that the user
owns the private key.
"""
class SSHPrivateKey:
__implements__ = ISSHPrivateKey
def __init__(self, username, blob, sigData, signature):
self.username = username
self.blob = blob
self.sigData = sigData
self.signature = signature
class IPluggableAuthenticationModules(credentials.ICredentials):
"""I encapsulate the authentication of a user via PAM (Pluggable
Authentication Modules. I use PyPAM (available from
http://www.tummy.com/Software/PyPam/index.html).
@ivar username: The username for the user being logged in.
@ivar pamConversion: A function that is called with a list of tuples
(message, messageType). See the PAM documentation
for the meaning of messageType. The function
returns a Deferred which will fire with a list
of (response, 0), one for each message. The 0 is
currently unused, but is required by the PAM library.
"""
class PluggableAuthenticationModules:
__implements__ = IPluggableAuthenticationModules
def __init__(self, username, pamConversion):
self.username = username
self.pamConversion = pamConversion
IUsernamePassword = credentials.IUsernamePassword
UsernamePassword = credentials.UsernamePassword
syntax highlighted by Code2HTML, v. 0.9.1