'Authobject to use with CRAM-MD5 authentication.'

def _CRAM_MD5_AUTH(self, challenge):

    import hmac
    pwd = (self.password.encode('utf-8') if isinstance(self.password, str) else self.password)
    return ((self.user + '    ') + hmac.HMAC(pwd, challenge, 'md5').hexdigest())
