'Perform an authenticated login.
@type user: L{bytes}
@param user: The username with which to log in.
@type password: L{bytes}
@param password: The password with which to log in.
@type magic: L{bytes}
@param magic: The challenge provided by the server.'

def apopAuthenticate(self, user, password, magic):

    digest = md5((magic + password)).hexdigest()
    self.apop(user, digest)
