- Updated PEAR::Auth_SASL to 1.0.2
| | |
| | | 2008/04/17 (alec) |
| | | ---------- |
| | | - Fix IMAP response in message body when message has no body (#1484964) |
| | | - Updated PEAR::Auth_SASL to 1.0.2 |
| | | |
| | | 2008/04/16 (estadtherr) |
| | | ---------- |
| | |
| | | } |
| | | |
| | | require_once($filename); |
| | | return new $classname(); |
| | | $obj = new $classname(); |
| | | return $obj; |
| | | } |
| | | } |
| | | |
| | |
| | | $digest_uri = sprintf('%s/%s', $service, $hostname); |
| | | $response_value = $this->_getResponseValue($authcid, $pass, $challenge['realm'], $challenge['nonce'], $cnonce, $digest_uri, $authzid); |
| | | |
| | | return sprintf('username="%s",realm="%s"' . $authzid_string . ',nonce="%s",cnonce="%s",nc="00000001",qop=auth,digest-uri="%s",response=%s,%d', $authcid, $challenge['realm'], $challenge['nonce'], $cnonce, $digest_uri, $response_value, $challenge['maxbuf']); |
| | | if ($challenge['realm']) { |
| | | return sprintf('username="%s",realm="%s"' . $authzid_string . |
| | | ',nonce="%s",cnonce="%s",nc=00000001,qop=auth,digest-uri="%s",response=%s,maxbuf=%d', $authcid, $challenge['realm'], $challenge['nonce'], $cnonce, $digest_uri, $response_value, $challenge['maxbuf']); |
| | | } else { |
| | | return sprintf('username="%s"' . $authzid_string . ',nonce="%s",cnonce="%s",nc=00000001,qop=auth,digest-uri="%s",response=%s,maxbuf=%d', $authcid, $challenge['nonce'], $cnonce, $digest_uri, $response_value, $challenge['maxbuf']); |
| | | } |
| | | } else { |
| | | return PEAR::raiseError('Invalid digest challenge'); |
| | | } |
| | |
| | | */ |
| | | // Realm |
| | | if (empty($tokens['realm'])) { |
| | | $uname = posix_uname(); |
| | | $tokens['realm'] = $uname['nodename']; |
| | | $tokens['realm'] = ""; |
| | | } |
| | | |
| | | |
| | | // Maxbuf |
| | | if (empty($tokens['maxbuf'])) { |
| | | $tokens['maxbuf'] = 65536; |
| | | } |
| | | |
| | | |
| | | // Required: nonce, algorithm |
| | | if (empty($tokens['nonce']) OR empty($tokens['algorithm'])) { |
| | | return array(); |
| | | } |
| | | |
| | | |
| | | return $tokens; |
| | | } |
| | | |
| | |
| | | */ |
| | | function _getCnonce() |
| | | { |
| | | if (file_exists('/dev/urandom')) { |
| | | return base64_encode(fread(fopen('/dev/urandom', 'r'), 32)); |
| | | if (file_exists('/dev/urandom') && $fd = @fopen('/dev/urandom', 'r')) { |
| | | return base64_encode(fread($fd, 32)); |
| | | |
| | | } elseif (file_exists('/dev/random')) { |
| | | return base64_encode(fread(fopen('/dev/random', 'r'), 32)); |
| | | } elseif (file_exists('/dev/random') && $fd = @fopen('/dev/random', 'r')) { |
| | | return base64_encode(fread($fd, 32)); |
| | | |
| | | } else { |
| | | $str = ''; |