New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for SASL #195
Comments
This library hints at how it may be done. |
Or maybe this. |
the process goes as follows (
|
This can be helpful too, as it's a SASL implementation with this library. |
anisse
added a commit
to anisse/irc-python
that referenced
this issue
Sep 7, 2022
This implements a minimal state machine to do the SASL PLAIN authentication dance. It could have been done even simpler by sending all the commands and not checking for server capabilities, but I don't think it's being a good citizen. It changes the ServerConnection api by adding a sasl_login argument, and reusing the old password argument, since I couldn't think of a usecase where both were needed. The SimpleIRCClient and SingleServerIRCBot can also pass this new argument. A new "login_failed" generated event is added and is sent in some of the cases where the SASL login can fail. Note that there is no timeout on the state machine, so if the server does not send any of the expected commands, it will just stay active forever, potentially with the login failing. It was tested on libera.chat with the cobe bot and seems to work reasonably well. Fixes jaraco#195
anisse
added a commit
to anisse/irc-python
that referenced
this issue
Sep 7, 2022
This implements a minimal state machine to do the SASL PLAIN authentication dance. It could have been done even simpler by sending all the commands and not checking for server capabilities, but I don't think it's being a good citizen. It changes the ServerConnection api by adding a sasl_login argument, and reusing the old password argument, since I couldn't think of a usecase where both were needed. The SimpleIRCClient and SingleServerIRCBot can also pass this new argument. A new "login_failed" generated event is added and is sent in some of the cases where the SASL login can fail. Note that there is no timeout on the state machine, so if the server does not send any of the expected commands, it will just stay active forever, potentially with the login failing. It was tested on libera.chat with the cobe bot and seems to work reasonably well. Fixes jaraco#195
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Many popular IRC networks now require SASL auth in order to accept connections. This library should implement that.
The text was updated successfully, but these errors were encountered: