Tags: patch After a few recent changes in my IRC/ERC setup, I felt ERC's lack of support for connecting to IRC networks using TLS client certificates as an alternative to traditional password-based authentication. So I spent some time a few nights ago and wired things up in ERC to allow passing a client certificate to `open-network-stream'. Fellow ERC user 'neverwas' was kind enough to take my patch for a test drive and provide feedback. I have done some work on addressing their feedback, but for now I'm attaching my very first draft here which I'd sent to neverwas, and will attach the next version of my patch (along with a proper commit message, NEWS entry, etc) shortly after neverwas's reply with their feedback. For anyone wanting to take this for a spin, the changes here should be fully backward-compatible, and should not break anything in existing ERC configurations. To specify a client certificate, call `erc-tls' with the new keywords :client-key and :client-crt with the file name of the certificate key and certificate file itself respectively: (erc-tls :server "chat.freenode.net" :port 6697 :client-key "~/my-freenode-cert.key" :client-crt "~/my-freenode-cert.crt") In GNU Emacs 28.0.50 (build 43, x86_64-pc-linux-gnu, X toolkit, cairo version 1.15.10, Xaw3d scroll bars) of 2021-04-14 built on trisquel Repository revision: 4ddad8f1db1f888f3365ac1330989dfbee605dd5 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.11906000 System Description: Trisquel GNU/Linux Etiona (9.0) Configured using: 'configure --without-gconf --without-gsettings --without-gpm --with-x-toolkit=lucid --with-xaw3d --with-mailutils'