[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#29108: 25.3; ERC SASL support
From: |
J.P. |
Subject: |
bug#29108: 25.3; ERC SASL support |
Date: |
Wed, 28 Jul 2021 15:42:48 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Ulrich Mueller <ulm@gentoo.org> writes:
> ERC is a little behind the times by not supporting SASL, so please
> pretty please can we have this?
Hi Ulrich,
I have a patch for this that I'll be introducing in the next few days as
part of a larger change set bringing much needed life support to ERC
generally. It lays the foundation for moving us to IRCv3.
If you would like a preview, you can check this out [1].
> Not sure if it helps, but archive.org has a partial copy of the original
> git repository:
> https://web.archive.org/web/20180611034438if_/https://github.com/jane-lx/erc-sasl
I'm well acquainted with this patch. IMO, it's a hack, but nothing wrong
with that [2].
If you'd like to take what I have for a spin, please follow the steps
posted here [3], except change the bug number in all URLs from 48598 to
99999. The stuff there is a bit stale (many improvements since), but
I'll be updating it all shortly.
More to follow in the next 72 or so. Please stay tuned.
Thanks,
J.P.
[1] https://gitlab.com/jpneverwas/erc-v3/-/blob/master/erc-v3-sasl.el
[2] Some info posted to #erc about this a few months back:
*** #erc was created on 2021-05-19 07:01:11
<neverwas> Okay people, so I redid my rather horrendous joke of an
SASL extension using the upstream sasl.el library and was
able to implement all of the recommended mechanisms
currently in use or soon to be. Turns out alphachat is
running the latest atheme, so I signed up and
successfully validated against its service (and captured
logs) for both SCRAM-SHA-256 and
ECDSA-NIST256P-CHALLENGE.
a [14:07]
<neverwas> The main ugly point right now is I'm currently shelling
out to openssl for the latter (ecdsa). I see two possible
ways around this. The first is adding
gnutls_privkey_sign_hash() and anything it requires to
src/gnutls.c. The other is shelling out to a comparable
gnutls-based command-line tool. After a cursory search, I
was unable to find one that does the job. Anyone here
familiar with that suite?
<neverwas> So once we add the basic v3 building blocks for CAP and
its subcommands to ERC proper (and a couple tiny sasl.el
patches I'll open soon), adding full featured SASL
support should go pretty smoothly. Unlike how rcirc and
Circe (and the older non-GNU ERC patches) do things, this
approach properly delegates to a black-box service for
the subprotocol, which is the way rfc4422 designed it.
[14:08]
<neverwas> This makes it super easy to add other mechanisms in the
future. All the gory details are hidden away behind the
sasl.el-provided state machine, so you just feed it
whatever arrives from the server, and it coughs out the
next thing to send. Take a look if you want:
https://gitlab.com/jpneverwas/erc-v3/-/blob/master/erc-v3-sasl.el
(replace "blob" with "raw" for no JS)
[3] https://lists.gnu.org/archive/html/emacs-erc/2021-06/msg00019.html