summaryrefslogtreecommitdiff
path: root/libempathy/empathy-utils.h
diff options
context:
space:
mode:
authorDebarshi Ray <debarshir@gnome.org>2017-03-15 20:24:08 +0100
committerDebarshi Ray <debarshir@gnome.org>2017-03-20 20:36:31 +0100
commitfb6d60e5fcf7d4e6c77160fc2430072c71a1323a (patch)
tree897a5ded2aed428548f9c823b54e1a831fc53e46 /libempathy/empathy-utils.h
parent4568299d28360e9a8a71a6fc28934750c0dadb3c (diff)
downloadempathy-fb6d60e5fcf7d4e6c77160fc2430072c71a1323a.tar.gz
tls-verifier: Use GIO to verify the chain of TLS certificates
Gcr has its own hand rolled code to complete the certificate chain and validate it, which predates the equivalent functionality in GIO. These days, GIO's GnuTLS backend is a better option because it defers to GnuTLS to do the right thing. It benefits automatically from any improvements made to GnuTLS itself. However, GIO doesn't support certificate pinning. Gcr continues to provide that feature. Note: (a) We don't set "certificate-hostname" when we encounter TP_TLS_CERTIFICATE_REJECT_REASON_HOSTNAME_MISMATCH. The resulting loss of verbosity in EmpathyTLSDialog is balanced by no longer relying on a specific encryption library. (b) glib-networking doesn't differentiate between GNUTLS_CERT_SIGNER_NOT_FOUND and GNUTLS_CERT_SIGNER_NOT_CA. Hence, we club them together as TP_TLS_CERTIFICATE_REJECT_REASON_UNTRUSTED and we no longer return TP_TLS_CERTIFICATE_REJECT_REASON_SELF_SIGNED. (c) Unlike Gcr, GnuTLS doesn't seem to provide a way to load a PKCS#11 module that's built into the code, as opposed to being a shared object. This makes it hard for us to load our mock PKCS#11 module. Therefore, we have disabled the test case that relies on using PKCS#11 storage to complete the certificate chain. Bump required GLib version to 2.48. We really do need 2.48 because we rely on the improvements to GIO's GnuTLS backend. https://bugzilla.gnome.org/show_bug.cgi?id=780160
Diffstat (limited to 'libempathy/empathy-utils.h')
0 files changed, 0 insertions, 0 deletions