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:
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;