irssi/src/fe-common/core
Alexander Færøy 5146ce9631
Add x509 certificate and public key pinning support.
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.
2016-10-22 22:01:50 +02:00
..
chat-completion.c Add a completion_match_case setting. 2016-06-13 22:13:43 +02:00
chat-completion.h completion_msg() is now public 2002-11-21 18:24:51 +00:00
command-history.c reorder history add and fixes 2016-01-08 15:42:59 +01:00
command-history.h option to clear the history 2016-01-08 15:19:13 +01:00
completion.c Fix the tab completion for paths starting with ./ 2016-07-12 16:35:43 +02:00
completion.h Add 'word_completion_backward' command to scroll backwards in the completion 2008-05-17 13:12:21 +00:00
fe-channels.c Merge pull request #498 from vague666/add_modify_functions 2016-06-21 22:46:52 +02:00
fe-channels.h /NAMES -count: print only the Total xxx nicks line 2001-07-14 18:19:22 +00:00
fe-common-core.c Display TLS connection information when connected to a TLS enabled server. 2016-10-22 21:58:50 +02:00
fe-common-core.h Add strarray_find_dest(). Useful for checking whether a server_tag/target or target is found in a vector of strings. 2009-02-07 23:03:24 +00:00
fe-core-commands.c Throw an error when a chatnet has no available url 2016-03-19 14:04:53 +01:00
fe-core-commands.h Finally - /^msg nick never autocreates an empty window anymore. Added new 2002-06-05 20:11:10 +00:00
fe-exec.c Factor out some redundant code and remove hashtable_get_keys 2016-06-05 17:24:27 +02:00
fe-exec.h Remember server for /EXEC targets. 2004-07-11 16:54:11 +00:00
fe-expandos.c Oops. Update address correctly now. 2007-05-08 18:41:10 +00:00
fe-help.c Change all strcmp() to g_strcmp0() to handle nulls gracefully 2015-04-07 22:41:05 -03:00
fe-ignore-messages.c Replace deprecated g_str[n]casecmp with g_ascii_str[n]cmp. 2014-06-10 12:06:19 -04:00
fe-ignore.c Minor cosmetic fix in /unignore error message. 2016-07-12 17:38:05 +02:00
fe-log.c Replace mkpath with g_mkdir_with_parents 2016-06-05 16:24:55 +02:00
fe-messages.c fix nick->host == NULL crash 2016-08-22 12:27:10 +02:00
fe-messages.h make printnicks global 2002-12-04 20:52:33 +00:00
fe-modules.c module check irssi version 2015-12-10 00:52:33 +01:00
fe-queries.c Change all strcmp() to g_strcmp0() to handle nulls gracefully 2015-04-07 22:41:05 -03:00
fe-queries.h /set autocreate_query -> /set autocreate_query_level 2000-09-06 21:30:56 +00:00
fe-recode.c Change all strcmp() to g_strcmp0() to handle nulls gracefully 2015-04-07 22:41:05 -03:00
fe-recode.h forgot to add 2004-08-20 00:27:05 +00:00
fe-server.c Add x509 certificate and public key pinning support. 2016-10-22 22:01:50 +02:00
fe-settings.c Add a space after the comma when listing the options. 2016-06-13 20:27:37 +02:00
fe-tls.c Display TLS connection information when connected to a TLS enabled server. 2016-10-22 21:58:50 +02:00
fe-tls.h Display TLS connection information when connected to a TLS enabled server. 2016-10-22 21:58:50 +02:00
fe-windows.c option to clear the history 2016-01-08 15:19:13 +01:00
fe-windows.h option to clear the history 2016-01-08 15:19:13 +01:00
formats.c Patches for heap corruption and missing bounds check 2016-09-20 19:56:06 +02:00
formats.h keep track of address in text_dest for hilight purposes 2015-12-28 01:08:35 +01:00
hilight-text.c Replace strarray_length with g_strv_length 2016-06-05 16:24:55 +02:00
hilight-text.h Ref #421 (Add an option to make /hilight case sensitive) 2016-04-29 01:01:34 +02:00
keyboard.c Limit recursion depth of key/combo expansion in key_states_scan() 2015-09-21 22:59:24 -03:00
keyboard.h paste detection fixes 2003-11-17 12:17:57 +00:00
Makefile.am Display TLS connection information when connected to a TLS enabled server. 2016-10-22 21:58:50 +02:00
module-formats.c Display TLS connection information when connected to a TLS enabled server. 2016-10-22 21:58:50 +02:00
module-formats.h Display TLS connection information when connected to a TLS enabled server. 2016-10-22 21:58:50 +02:00
module.h Move utf8.{h,c} from fe-common/core to core. 2016-05-13 01:26:33 +02:00
printtext.c reimplement format and length logic for the entry prompt 2014-11-10 10:53:14 +01:00
printtext.h reimplement format and length logic for the entry prompt 2014-11-10 10:53:14 +01:00
themes.c Fix some ANSI C issues. 2016-05-03 15:28:20 +00:00
themes.h Finish 256 colour support for Irssi 2014-06-30 02:41:34 +02:00
window-activity.c Add strarray_find_dest(). Useful for checking whether a server_tag/target or target is found in a vector of strings. 2009-02-07 23:03:24 +00:00
window-activity.h window_activity() and window_item_activity() are now public. Added them to 2002-02-15 09:05:45 +00:00
window-commands.c reorder history add and fixes 2016-01-08 15:42:59 +01:00
window-items.c Remove unused variables to silence compiler warnings 2014-06-26 00:47:49 +01:00
window-items.h Removed window parameter from window_item_remove() and 2001-01-06 21:58:28 +00:00
windows-layout.c Serialize the 'name' attribute of the CHANNEL_REC. 2016-01-25 20:48:13 +01:00
windows-layout.h /SAVEWINDOWS -> /LAYOUT SAVE. Added /LAYOUT RESET. Initialize GLib log 2001-02-21 19:19:24 +00:00