Source

						public function read() {
		if ($this->data->path == '/http_auth/') {
			if (is_array($this->data->auth)) {
				$request = $this->data->to('array');
				$data = $this->data->auth;
				$data['nc'] = '00000001';
				$data['cnonce'] = md5(time());
				$username = $this->data->username;
				$password = $this->data->password;
				$part1 = md5("{$username}:{$data['realm']}:{$password}");
				$part2 = "{$data['nonce']}:{$data['nc']}:{$data['cnonce']}:{$data['qop']}";
				$part3 = md5($this->data->method . ':' . $this->data->path);
				$hash = md5("{$part1}:{$part2}:{$part3}");
				preg_match('/response="(.*?)"/', $this->data->headers('Authorization'), $matches);
				list($match, $response) = $matches;

				if ($hash === $response) {
					return 'success';
				}
			}
			$header = 'Digest realm="app",qop="auth",nonce="4bca0fbca7bd0",'
				. 'opaque="d3fb67a7aa4d887ec4bf83040a820a46";';
			$this->data->headers('WWW-Authenticate', $header);
			$status = "GET HTTP/1.1 401 Authorization Required";
			$response = array($status, join("\r\n", $this->data->headers()), "", "not authorized");
			return join("\r\n", $response);
		}
		return $this->data;
	}