Revert changes from r994 and make cram-md5 work again (#1484819)
| | |
| | | * @return boolean TRUE on success, FALSE on failure |
| | | * @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; |
| | | |
| | |
| | | $ICL_PORT = $port; |
| | | $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->user = $user; |
| | | $this->pass = $pass; |
| | |
| | | } |
| | | |
| | | // generate hash |
| | | $hash = iil_xor($pass,$opad); |
| | | $hash .= pack("H*", md5(iil_xor($pass, $ipad) . base64_decode($encChallenge))); |
| | | $hash = md5($hash); |
| | | $hash = md5(iil_xor($pass,$opad) . pack("H*", md5(iil_xor($pass, $ipad) . base64_decode($encChallenge)))); |
| | | |
| | | // generate reply |
| | | $reply = base64_encode('"' . $user . '" "' . $hash . '"'); |
| | | $reply = base64_encode($user . ' ' . $hash); |
| | | |
| | | // send result, get reply |
| | | iil_PutLine($conn->fp, $reply); |
| | |
| | | //do CRAM-MD5 authentication |
| | | iil_PutLine($conn->fp, "a000 AUTHENTICATE CRAM-MD5"); |
| | | $line = trim(iil_ReadLine($conn->fp, 1024)); |
| | | |
| | | |
| | | $conn->message .= "$line\n"; |
| | | |
| | | |
| | | if ($line[0] == '+') { |
| | | $conn->message .= 'Got challenge: ' . htmlspecialchars($line) . "\n"; |
| | | |
| | |
| | | $conn->message .= "Tried CRAM-MD5: $result \n"; |
| | | } else { |
| | | $conn->message .='No challenge ('.htmlspecialchars($line)."), try plain\n"; |
| | | $auth = 'plain'; |
| | | $auth = 'plain'; |
| | | } |
| | | } |
| | | |