IRSSI is an IRC client and should not advertise nor be beholden to any
particular IRC network. This patch is inspired by both of the following
commits, and aims to remove references to any particular network in the
documentation, in an effort to avoid potential conflict amongst team and
community members:
- a4486c236a
- 1ba48840a1
Based on a (as of this writing) draft blog post [0], and the discussion
that has occurred regarding the blog post, it doesn't appear as if the
IRSSI development team is interested in being transparent about the
reasoning behind its aversion to removing the Freenode network,
specifically related to the comments about "potential legal
consequences". By removing references to any given network in the
documentation, this project moves forward without taking a political
stance, but in a way that avoids recommending any given network to
users.
[0]: https://github.com/irssi/irssi.github.io/pull/79
This patch adds two new options to /CONNECT and /SERVER to let the user
pin either an x509 certificate and/or the public key of a given server.
It is possible to fetch the certificate outside of Irssi itself to
verify the checksum. To fetch the certificate call:
$ openssl s_client -connect chat.freenode.net:6697 < /dev/null 2>/dev/null | \
openssl x509 > freenode.cert
This will download chat.freenode.net:6697's TLS certificate and put it into the
file freenode.cert.
-tls_pinned_cert
----------------
This option allows you to specify the SHA-256 hash of the x509
certificate. When succesfully connected to the server, irssi will verify
that the given server certificate matches the pin set by the user.
The SHA-256 hash of a given certificate can be verified outside of irssi
using the OpenSSL command line tool:
$ openssl x509 -in freenode.cert -fingerprint -sha256 -noout
-tls_pinned_pubkey
------------------
This option allows you to specify the SHA-256 hash of the subject public key
information section of the server certificate. This section contains both the
cryptographic parameters for the public key, but also information about the
algorithm used together with the public key parameters.
When succesfully connected to the server, irssi will verify that the
given public key matches the pin set by the user.
The SHA-256 hash of a public key can be verified outside of irssi using
the OpenSSL command line tool:
$ openssl x509 -in freenode.cert -pubkey -noout | \
openssl pkey -pubin -outform der | \
openssl dgst -sha256 -c | \
tr a-z A-Z
It is possible to specify both -tls_pinned_cert and -tls_pinned_pubkey
together.
This patch changes the internal name of SSL to TLS. We also add -tls_*
options to /CONNECT and /SERVER, but make sure that the -ssl_* versions
of the commands continue to work like before.
Passing this option will force Irssi to not execute the content of the
autosendcmd chatnet-setting upon connect.
Fixes: #738
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5209 dbcabf3a-b0e7-0310-adc4-f8d773084564