use it to authenticate the controller The :class:`~stem.connection.IncorrectCookieSize` and :class:`~stem.connection.UnreadableCookieFile` exceptions take precedence over the other exception types. The :class:`~stem.connection.AuthChallengeUnsupported`, :class:`~stem.connection.UnrecognizedAuthChallengeMethod`, :class:`~stem.connection.InvalidClientNonce` and :class:`~stem.connection.CookieAuthRejected` exceptions are next in the order of precedence. Depending on the reason, one of these is raised if the first (AUTHCHALLENGE) step fails. In the second (AUTHENTICATE) step, :class:`~stem.connection.IncorrectCookieValue` or :class:`~stem.connection.CookieAuthRejected` maybe raised. If authentication fails tor will disconnect and we'll make a best effort attempt to re-establish the connection. This may not succeed, so check :func:`~stem.socket.ControlSocket.is_alive` before using the socket further. For general usage use the :func:`~stem.connection.authenticate` function instead. :param controller: tor controller or socket to be authenticated :param str cookie_path: path of the authentication cookie to send to tor :param bool suppress_ctl_errors: reports raised :class:`~stem.ControllerError` as authentication rejection if **True**, otherwise they're re-raised :raises: * :class:`stem.connection.IncorrectCookieSize` if the cookie file's size is wrong * :class:`stem.connection.UnreadableCookieFile` if the cookie file doesn't exist or we're unable to read it * :class:`stem.connection.CookieAuthRejected` if cookie authentication is attempted but the socket doesn't accept it * :class:`stem.connection.IncorrectCookieValue` if the cookie file's value is rejected * :class:`stem.connection.UnrecognizedAuthChallengeMethod` if the Tor client fails to recognize the AuthChallenge method * :class:`stem.connection.AuthChallengeUnsupported` if AUTHCHALLENGE is unimplemented, or if unable to parse AUTHCHALLENGE response * :class:`stem.connection.AuthSecurityFailure` if AUTHCHALLENGE's response looks like a security attack * :class:`stem.connection.InvalidClientNonce` if stem's AUTHCHALLENGE client nonce is rejected for being invalid Tr