Revert changes from r994 and make cram-md5 work again (#1484819)

release-0.6
thomascube 17 years ago
parent ccd944ea21
commit 1fb78c57cc

@ -102,7 +102,7 @@ class rcube_imap
* @return boolean TRUE on success, FALSE on failure * @return boolean TRUE on success, FALSE on failure
* @access public * @access public
*/ */
function connect($host, $user, $pass, $port=143, $use_ssl=null, $auth_type='check') function connect($host, $user, $pass, $port=143, $use_ssl=null, $auth_type=null)
{ {
global $ICL_SSL, $ICL_PORT, $IMAP_USE_INTERNAL_DATE; global $ICL_SSL, $ICL_PORT, $IMAP_USE_INTERNAL_DATE;
@ -119,7 +119,7 @@ class rcube_imap
$ICL_PORT = $port; $ICL_PORT = $port;
$IMAP_USE_INTERNAL_DATE = false; $IMAP_USE_INTERNAL_DATE = false;
$this->conn = iil_Connect($host, $user, $pass, array('imap' => $auth_type)); $this->conn = iil_Connect($host, $user, $pass, array('imap' => $auth_type ? $auth_type : 'check'));
$this->host = $host; $this->host = $host;
$this->user = $user; $this->user = $user;
$this->pass = $pass; $this->pass = $pass;

@ -297,12 +297,10 @@ function iil_C_Authenticate(&$conn, $user, $pass, $encChallenge) {
} }
// generate hash // generate hash
$hash = iil_xor($pass,$opad); $hash = md5(iil_xor($pass,$opad) . pack("H*", md5(iil_xor($pass, $ipad) . base64_decode($encChallenge))));
$hash .= pack("H*", md5(iil_xor($pass, $ipad) . base64_decode($encChallenge)));
$hash = md5($hash);
// generate reply // generate reply
$reply = base64_encode('"' . $user . '" "' . $hash . '"'); $reply = base64_encode($user . ' ' . $hash);
// send result, get reply // send result, get reply
iil_PutLine($conn->fp, $reply); iil_PutLine($conn->fp, $reply);
@ -544,9 +542,9 @@ function iil_Connect($host, $user, $password) {
//do CRAM-MD5 authentication //do CRAM-MD5 authentication
iil_PutLine($conn->fp, "a000 AUTHENTICATE CRAM-MD5"); iil_PutLine($conn->fp, "a000 AUTHENTICATE CRAM-MD5");
$line = trim(iil_ReadLine($conn->fp, 1024)); $line = trim(iil_ReadLine($conn->fp, 1024));
$conn->message .= "$line\n"; $conn->message .= "$line\n";
if ($line[0] == '+') { if ($line[0] == '+') {
$conn->message .= 'Got challenge: ' . htmlspecialchars($line) . "\n"; $conn->message .= 'Got challenge: ' . htmlspecialchars($line) . "\n";
@ -556,7 +554,7 @@ function iil_Connect($host, $user, $password) {
$conn->message .= "Tried CRAM-MD5: $result \n"; $conn->message .= "Tried CRAM-MD5: $result \n";
} else { } else {
$conn->message .='No challenge ('.htmlspecialchars($line)."), try plain\n"; $conn->message .='No challenge ('.htmlspecialchars($line)."), try plain\n";
$auth = 'plain'; $auth = 'plain';
} }
} }

Loading…
Cancel
Save