talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 17451f0fdbf28d4b868d97b1bf85dec2c1c77e90
parent 9b1579617a7ae976c5a0085752fa167dc7d6715d
Author: Paul <paul@claws-mail.org>
Date:   Tue, 16 Oct 2018 10:10:03 +0100

fix bug (rfe) 4102, 'Show SHA-256 fingerprint in certificate verification popup'

Diffstat:
Msrc/gtk/sslcertwindow.c | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/gtk/sslcertwindow.c b/src/gtk/sslcertwindow.c @@ -61,7 +61,7 @@ static GtkWidget *cert_presenter(SSLCertificate *cert) char *issuer_commonname, *issuer_location, *issuer_organization; char *subject_commonname, *subject_location, *subject_organization; char *sig_status, *exp_date; - char *md5_fingerprint, *sha1_fingerprint, *fingerprint; + char *md5_fingerprint, *sha1_fingerprint, *sha256_fingerprint, *fingerprint; size_t n; char buf[100]; unsigned char md[128]; @@ -147,6 +147,10 @@ static GtkWidget *cert_presenter(SSLCertificate *cert) n = 128; gnutls_x509_crt_get_fingerprint(cert->x509_cert, GNUTLS_DIG_SHA1, md, &n); sha1_fingerprint = readable_fingerprint(md, (int)n); + n = 128; + gnutls_x509_crt_get_fingerprint(cert->x509_cert, GNUTLS_DIG_SHA256, md, &n); + sha256_fingerprint = readable_fingerprint(md, (int)n); + /* signature */ sig_status = ssl_certificate_check_signer(cert, cert->status); @@ -216,8 +220,8 @@ static GtkWidget *cert_presenter(SSLCertificate *cert) label = gtk_label_new(_("Fingerprint: \n")); gtk_label_set_xalign(GTK_LABEL(label), 1.0); gtk_table_attach(status_table, label, 0, 1, 0, 1, GTK_EXPAND|GTK_FILL, 0, 0, 0); - fingerprint = g_strdup_printf("MD5: %s\nSHA1: %s", - md5_fingerprint, sha1_fingerprint); + fingerprint = g_strdup_printf("MD5: %s\nSHA1: %s\nSHA256: %s", + md5_fingerprint, sha1_fingerprint, sha256_fingerprint); label = gtk_label_new(fingerprint); g_free(fingerprint); gtk_label_set_selectable(GTK_LABEL(label), TRUE); @@ -257,6 +261,7 @@ static GtkWidget *cert_presenter(SSLCertificate *cert) g_free(subject_organization); g_free(md5_fingerprint); g_free(sha1_fingerprint); + g_free(sha256_fingerprint); g_free(sig_status); g_free(exp_date); return vbox;