public function auth() { // Ensure AUTH has not already been initiated.
parent::
auth();
$this->
_send('AUTH CRAM-MD5'
);
$challenge =
$this->
_expect(334
);
$challenge =
base64_decode($challenge);
$digest =
$this->
_hmacMd5($this->_password,
$challenge);
$this->
_send(base64_encode($this->_username . ' ' .
$digest));
$this->
_expect(235
);
$this->_auth = true;
} /**
* Prepare CRAM-MD5 response to server's ticket
*
* @param string $key Challenge key (usually password)
* @param string $data Challenge data
* @param string $block Length of blocks
* @return string
*/