aboutsummaryrefslogtreecommitdiffstats
path: root/smime/gui
diff options
context:
space:
mode:
Diffstat (limited to 'smime/gui')
-rw-r--r--smime/gui/.cvsignore3
-rw-r--r--smime/gui/Makefile.am44
-rw-r--r--smime/gui/ca-trust-dialog.c133
-rw-r--r--smime/gui/ca-trust-dialog.h34
-rw-r--r--smime/gui/cert-trust-dialog.c153
-rw-r--r--smime/gui/cert-trust-dialog.h32
-rw-r--r--smime/gui/certificate-manager.c1016
-rw-r--r--smime/gui/certificate-manager.h30
-rw-r--r--smime/gui/certificate-viewer.c348
-rw-r--r--smime/gui/certificate-viewer.h31
-rw-r--r--smime/gui/component.c118
-rw-r--r--smime/gui/component.h28
-rw-r--r--smime/gui/e-cert-selector.c252
-rw-r--r--smime/gui/e-cert-selector.h67
-rw-r--r--smime/gui/smime-ui.glade2303
15 files changed, 0 insertions, 4592 deletions
diff --git a/smime/gui/.cvsignore b/smime/gui/.cvsignore
deleted file mode 100644
index 61a0c160f1..0000000000
--- a/smime/gui/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Makefile
-Makefile.in
-smime-ui.gladep
diff --git a/smime/gui/Makefile.am b/smime/gui/Makefile.am
deleted file mode 100644
index 5403360824..0000000000
--- a/smime/gui/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
-INCLUDES = \
- -DG_LOG_DOMAIN=\"evolution-smime\" \
- -I$(top_srcdir) \
- -I$(top_builddir) \
- -I$(top_srcdir)/smime/lib \
- -I$(top_builddir)/smime/lib \
- -I$(top_srcdir)/shell \
- -I$(top_builddir)/shell \
- -DEVOLUTION_DATADIR=\""$(datadir)"\" \
- -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
- -DEVOLUTION_ETSPECDIR=\""$(etspecdir)"\" \
- -DEVOLUTION_IMAGESDIR=\""$(imagesdir)"\" \
- -DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \
- -DEVOLUTION_UIDIR=\""$(evolutionuidir)"\" \
- -DPREFIX=\""$(prefix)"\" \
- $(EVOLUTION_ADDRESSBOOK_CFLAGS) \
- $(CERT_UI_CFLAGS)
-
-privlib_LTLIBRARIES = libevolution-smime.la
-
-libevolution_smime_la_SOURCES = \
- ca-trust-dialog.c \
- ca-trust-dialog.h \
- cert-trust-dialog.c \
- cert-trust-dialog.h \
- certificate-manager.c \
- certificate-manager.h \
- certificate-viewer.c \
- certificate-viewer.h \
- e-cert-selector.c \
- e-cert-selector.h \
- component.c \
- component.h
-
-
-libevolution_smime_la_LIBADD = \
- $(top_builddir)/smime/lib/libessmime.la \
- $(CERT_UI_LIBS)
-
-
-glade_DATA = smime-ui.glade
-
-EXTRA_DIST = \
- $(glade_DATA)
diff --git a/smime/gui/ca-trust-dialog.c b/smime/gui/ca-trust-dialog.c
deleted file mode 100644
index f5c2aba259..0000000000
--- a/smime/gui/ca-trust-dialog.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- *
- * Copyright (C) 2004 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "ca-trust-dialog.h"
-#include "certificate-viewer.h"
-
-#include <gtk/gtk.h>
-
-#include <libgnome/gnome-i18n.h>
-#include <glade/glade.h>
-
-#define GLADE_FILE_NAME "smime-ui.glade"
-
-typedef struct {
- GladeXML *gui;
- GtkWidget *dialog;
- GtkWidget *ssl_checkbutton;
- GtkWidget *email_checkbutton;
- GtkWidget *objsign_checkbutton;
-
- ECert *cert;
-} CATrustDialogData;
-
-static void
-free_data (gpointer data)
-{
- CATrustDialogData *ctd = data;
-
- g_object_unref (ctd->cert);
- g_object_unref (ctd->gui);
- g_free (ctd);
-}
-
-static void
-catd_response(GtkWidget *w, guint id, CATrustDialogData *data)
-{
- switch (id) {
- case GTK_RESPONSE_ACCEPT: {
- GtkWidget *dialog = certificate_viewer_show (data->cert);
-
- g_signal_stop_emission_by_name(w, "response");
- gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (data->dialog));
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
- break; }
- }
-}
-
-GtkWidget*
-ca_trust_dialog_show (ECert *cert, gboolean importing)
-{
- CATrustDialogData *ctd_data;
- GtkWidget *w;
- char *txt;
-
- ctd_data = g_new0 (CATrustDialogData, 1);
- ctd_data->gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, NULL, NULL);
-
- ctd_data->dialog = glade_xml_get_widget (ctd_data->gui, "ca-trust-dialog");
-
- gtk_widget_ensure_style (ctd_data->dialog);
- gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (ctd_data->dialog)->vbox), 0);
- gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (ctd_data->dialog)->action_area), 12);
-
- ctd_data->cert = g_object_ref (cert);
-
- ctd_data->ssl_checkbutton = glade_xml_get_widget (ctd_data->gui, "ssl_trust_checkbutton");
- ctd_data->email_checkbutton = glade_xml_get_widget (ctd_data->gui, "email_trust_checkbutton");
- ctd_data->objsign_checkbutton = glade_xml_get_widget (ctd_data->gui, "objsign_trust_checkbutton");
-
- w = glade_xml_get_widget(ctd_data->gui, "ca-trust-label");
- txt = g_strdup_printf(_("Certificate '%s' is a CA certificate.\n\nEdit trust settings:"), e_cert_get_cn(cert));
- gtk_label_set_text((GtkLabel *)w, txt);
- g_free(txt);
-
- g_signal_connect (ctd_data->dialog, "response", G_CALLBACK (catd_response), ctd_data);
-
- g_object_set_data_full (G_OBJECT (ctd_data->dialog), "CATrustDialogData", ctd_data, free_data);
-
- return ctd_data->dialog;
-}
-
-void
-ca_trust_dialog_set_trust (GtkWidget *widget, gboolean ssl, gboolean email, gboolean objsign)
-{
- CATrustDialogData *ctd_data;
-
- ctd_data = g_object_get_data (G_OBJECT (widget), "CATrustDialogData");
- if (!ctd_data)
- return;
-
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ctd_data->ssl_checkbutton), ssl);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ctd_data->email_checkbutton), email);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ctd_data->objsign_checkbutton), objsign);
-}
-
-void
-ca_trust_dialog_get_trust (GtkWidget *widget, gboolean *ssl, gboolean *email, gboolean *objsign)
-{
- CATrustDialogData *ctd_data;
-
- ctd_data = g_object_get_data (G_OBJECT (widget), "CATrustDialogData");
- if (!ctd_data)
- return;
-
- *ssl = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ctd_data->ssl_checkbutton));
- *email = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ctd_data->email_checkbutton));
- *objsign = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ctd_data->objsign_checkbutton));
-}
diff --git a/smime/gui/ca-trust-dialog.h b/smime/gui/ca-trust-dialog.h
deleted file mode 100644
index 8345da2901..0000000000
--- a/smime/gui/ca-trust-dialog.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- *
- * Copyright (C) 2004 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef _CA_TRUST_DIALOG_H_
-#define _CA_TRUST_DIALOG_H
-
-#include <gtk/gtkwidget.h>
-#include "e-cert.h"
-
-GtkWidget* ca_trust_dialog_show (ECert *cert, gboolean importing);
-
-void ca_trust_dialog_set_trust (GtkWidget *widget, gboolean ssl, gboolean email, gboolean objsign);
-void ca_trust_dialog_get_trust (GtkWidget *widget, gboolean *ssl, gboolean *email, gboolean *objsign);
-
-#endif /* _CA_TRUST_DIALOG_H_ */
diff --git a/smime/gui/cert-trust-dialog.c b/smime/gui/cert-trust-dialog.c
deleted file mode 100644
index b36d99ff53..0000000000
--- a/smime/gui/cert-trust-dialog.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- * Michael Zucchi <notzed@ximian.com>
- *
- * Copyright (C) 2004 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "e-cert.h"
-#include "e-cert-trust.h"
-#include "e-cert-db.h"
-#include "cert-trust-dialog.h"
-#include "ca-trust-dialog.h"
-
-#include <gtk/gtkwidget.h>
-#include <gtk/gtkradiobutton.h>
-#include <gtk/gtkdialog.h>
-#include <gtk/gtklabel.h>
-
-#include <libgnome/gnome-i18n.h>
-#include <glade/glade.h>
-
-#define GLADE_FILE_NAME "smime-ui.glade"
-
-typedef struct {
- GladeXML *gui;
- GtkWidget *dialog;
- GtkWidget *trust_button;
- GtkWidget *notrust_button;
- GtkWidget *label;
-
- ECert *cert, *cacert;
-} CertTrustDialogData;
-
-static void
-free_data (void *data)
-{
- CertTrustDialogData *ctd = data;
-
- g_object_unref (ctd->cert);
- g_object_unref (ctd->cacert);
- g_object_unref (ctd->gui);
- g_free (ctd);
-}
-
-static void
-ctd_response(GtkWidget *w, guint id, CertTrustDialogData *data)
-{
- CERTCertTrust trust;
- CERTCertificate *icert;
-
- switch (id) {
- case GTK_RESPONSE_OK:
- icert = e_cert_get_internal_cert(data->cert);
- e_cert_trust_init(&trust);
- e_cert_trust_set_valid_peer(&trust);
- e_cert_trust_add_peer_trust (&trust, FALSE,
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (data->trust_button)),
- FALSE);
- CERT_ChangeCertTrust (CERT_GetDefaultCertDB(), icert, &trust);
- break;
- case GTK_RESPONSE_ACCEPT: {
- /* just *what on earth* was chris thinking here!?!?! copied from certificate-manager.c */
- GtkWidget *dialog = ca_trust_dialog_show (data->cacert, FALSE);
- CERTCertificate *icert = e_cert_get_internal_cert (data->cacert);
-
- g_signal_stop_emission_by_name(w, "response");
-
- ca_trust_dialog_set_trust (dialog,
- e_cert_trust_has_trusted_ca (icert->trust, TRUE, FALSE, FALSE),
- e_cert_trust_has_trusted_ca (icert->trust, FALSE, TRUE, FALSE),
- e_cert_trust_has_trusted_ca (icert->trust, FALSE, FALSE, TRUE));
-
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
- gboolean trust_ssl, trust_email, trust_objsign;
-
- ca_trust_dialog_get_trust (dialog,
- &trust_ssl, &trust_email, &trust_objsign);
-
- e_cert_trust_init (&trust);
- e_cert_trust_set_valid_ca (&trust);
- e_cert_trust_add_ca_trust (&trust,
- trust_ssl,
- trust_email,
- trust_objsign);
-
- CERT_ChangeCertTrust(CERT_GetDefaultCertDB(), icert, &trust);
- }
-
- gtk_widget_destroy (dialog);
- break; }
- }
-}
-
-GtkWidget*
-cert_trust_dialog_show (ECert *cert)
-{
- CertTrustDialogData *ctd_data;
- CERTCertificate *icert;
-
- ctd_data = g_new0 (CertTrustDialogData, 1);
- ctd_data->gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, NULL, NULL);
-
- ctd_data->dialog = glade_xml_get_widget (ctd_data->gui, "cert-trust-dialog");
- ctd_data->cert = g_object_ref (cert);
- ctd_data->cacert = e_cert_get_ca_cert(cert);
- ctd_data->trust_button = glade_xml_get_widget(ctd_data->gui, "cert-trust");
- ctd_data->notrust_button = glade_xml_get_widget(ctd_data->gui, "cert-notrust");
-
- ctd_data->label = glade_xml_get_widget(ctd_data->gui, "trust-label");
-
- g_signal_connect(ctd_data->dialog, "response", G_CALLBACK(ctd_response), ctd_data);
-
- g_object_set_data_full (G_OBJECT (ctd_data->dialog), "CertTrustDialogData", ctd_data, free_data);
-
- icert = e_cert_get_internal_cert(cert);
- if (e_cert_trust_has_trusted_peer(icert->trust, FALSE, TRUE, FALSE))
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (ctd_data->trust_button), TRUE);
- else
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (ctd_data->notrust_button), TRUE);
-
-
- icert = e_cert_get_internal_cert(ctd_data->cacert);
- if (e_cert_trust_has_trusted_ca(icert->trust, FALSE, TRUE, FALSE))
- gtk_label_set_text((GtkLabel *)ctd_data->label,
- _("Because you trust the certificate authority that issued this certificate, "
- "then you trust the authenticity of this certificate unless otherwise indicated here"));
- else
- gtk_label_set_text((GtkLabel *)ctd_data->label,
- _("Because you do not trust the certificate authority that issued this certificate, "
- "then you do not trust the authenticity of this certificate unless otherwise indicated here"));
-
- return ctd_data->dialog;
-}
diff --git a/smime/gui/cert-trust-dialog.h b/smime/gui/cert-trust-dialog.h
deleted file mode 100644
index fe71c6a1b5..0000000000
--- a/smime/gui/cert-trust-dialog.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- * Michael Zucchi <notzed@ximian.com>
- *
- * Copyright (C) 2004 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef _CERT_TRUST_DIALOG_H_
-#define _CERT_TRUST_DIALOG_H
-
-struct _GtkWidget;
-struct _ECert;
-
-struct _GtkWidget* cert_trust_dialog_show (struct _ECert *cert);
-
-#endif /* _CERT_TRUST_DIALOG_H_ */
diff --git a/smime/gui/certificate-manager.c b/smime/gui/certificate-manager.c
deleted file mode 100644
index c10d22d1cc..0000000000
--- a/smime/gui/certificate-manager.c
+++ /dev/null
@@ -1,1016 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- *
- * Copyright (C) 2003 Ximian, Inc. (www.ximian.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#define GLADE_FILE_NAME "smime-ui.glade"
-
-#include <gtk/gtk.h>
-
-#include <libgnome/gnome-i18n.h>
-
-#include <glade/glade.h>
-#include "evolution-config-control.h"
-#include "ca-trust-dialog.h"
-#include "cert-trust-dialog.h"
-#include "certificate-manager.h"
-#include "certificate-viewer.h"
-
-#include "e-cert.h"
-#include "e-cert-trust.h"
-#include "e-cert-db.h"
-
-#include "nss.h"
-#include <cms.h>
-#include <cert.h>
-#include <certdb.h>
-#include <pkcs11.h>
-#include <pk11func.h>
-
-typedef struct {
- GladeXML *gui;
-
- GtkWidget *yourcerts_treeview;
- GtkTreeStore *yourcerts_treemodel;
- GtkTreeModel *yourcerts_streemodel;
- GHashTable *yourcerts_root_hash;
- GtkWidget *view_your_button;
- GtkWidget *backup_your_button;
- GtkWidget *backup_all_your_button;
- GtkWidget *import_your_button;
- GtkWidget *delete_your_button;
-
- GtkWidget *contactcerts_treeview;
- GtkTreeModel *contactcerts_streemodel;
- GHashTable *contactcerts_root_hash;
- GtkWidget *view_contact_button;
- GtkWidget *edit_contact_button;
- GtkWidget *import_contact_button;
- GtkWidget *delete_contact_button;
-
- GtkWidget *authoritycerts_treeview;
- GtkTreeModel *authoritycerts_streemodel;
- GHashTable *authoritycerts_root_hash;
- GtkWidget *view_ca_button;
- GtkWidget *edit_ca_button;
- GtkWidget *import_ca_button;
- GtkWidget *delete_ca_button;
-
-} CertificateManagerData;
-
-typedef void (*AddCertCb)(CertificateManagerData *cfm, ECert *cert);
-
-static void unload_certs (CertificateManagerData *cfm, ECertType type);
-static void load_certs (CertificateManagerData *cfm, ECertType type, AddCertCb add_cert);
-
-static void add_user_cert (CertificateManagerData *cfm, ECert *cert);
-static void add_contact_cert (CertificateManagerData *cfm, ECert *cert);
-static void add_ca_cert (CertificateManagerData *cfm, ECert *cert);
-
-static void
-handle_selection_changed (GtkTreeSelection *selection,
- int cert_column,
- GtkWidget *view_button,
- GtkWidget *edit_button,
- GtkWidget *delete_button)
-{
- GtkTreeIter iter;
- gboolean cert_selected = FALSE;
- GtkTreeModel *model;
-
- if (gtk_tree_selection_get_selected (selection,
- &model,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (model,
- &iter,
- cert_column, &cert,
- -1);
-
- if (cert) {
- cert_selected = TRUE;
- g_object_unref (cert);
- }
- }
-
- if (delete_button)
- gtk_widget_set_sensitive (delete_button, cert_selected);
- if (edit_button)
- gtk_widget_set_sensitive (edit_button, cert_selected);
- if (view_button)
- gtk_widget_set_sensitive (view_button, cert_selected);
-}
-
-static void
-import_your (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkWidget *filesel;
- const char *filename;
-
-#ifdef USE_GTKFILECHOOSER
- filesel = gtk_file_chooser_dialog_new (_("Select a cert to import..."),
- NULL,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_OK,
- NULL);
- gtk_dialog_set_default_response (GTK_DIALOG (filesel), GTK_RESPONSE_OK);
-#else
- filesel = gtk_file_selection_new (_("Select a cert to import..."));
-#endif
-
- if (GTK_RESPONSE_OK == gtk_dialog_run (GTK_DIALOG (filesel))) {
-#ifdef USE_GTKFILECHOOSER
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filesel));
-#else
- filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
-#endif
-
- if (e_cert_db_import_pkcs12_file (e_cert_db_peek (),
- filename, NULL /* XXX */)) {
- /* there's no telling how many certificates were added during the import,
- so we blow away the contact cert display and regenerate it. */
- unload_certs (cfm, E_CERT_USER);
- load_certs (cfm, E_CERT_USER, add_user_cert);
- gtk_tree_view_expand_all (GTK_TREE_VIEW (cfm->yourcerts_treeview));
- }
- }
-
- gtk_widget_destroy (filesel);
-}
-
-static void
-delete_your (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->yourcerts_treeview)),
- NULL,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (GTK_TREE_MODEL (cfm->yourcerts_streemodel),
- &iter,
- 4, &cert,
- -1);
-
- if (cert
- && e_cert_db_delete_cert (e_cert_db_peek (), cert)) {
- GtkTreeIter child_iter;
- printf ("DELETE\n");
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (cfm->yourcerts_streemodel),
- &child_iter,
- &iter);
- gtk_tree_store_remove (GTK_TREE_STORE (gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (cfm->yourcerts_streemodel))),
- &child_iter);
-
- /* we need two unrefs here, one to unref the
- gtk_tree_model_get above, and one to unref
- the initial ref when we created the cert
- and added it to the tree */
- g_object_unref (cert);
- g_object_unref (cert);
- }
- }
-
-}
-
-static void
-view_your (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->yourcerts_treeview)),
- NULL,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (GTK_TREE_MODEL (cfm->yourcerts_streemodel),
- &iter,
- 4, &cert,
- -1);
-
- if (cert) {
- GtkWidget *dialog = certificate_viewer_show (cert);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_widget_destroy), NULL);
- gtk_widget_show (dialog);
- }
- }
-}
-
-static void
-backup_your (GtkWidget *widget, CertificateManagerData *cfm)
-{
- /* FIXME: implement */
-}
-
-static void
-backup_all_your (GtkWidget *widget, CertificateManagerData *cfm)
-{
- /* FIXME: implement */
-}
-
-static void
-yourcerts_selection_changed (GtkTreeSelection *selection, CertificateManagerData *cfm)
-{
- handle_selection_changed (selection,
- 4,
- cfm->view_your_button,
- NULL,
- cfm->delete_your_button);
-}
-
-static GtkTreeModel*
-create_yourcerts_treemodel (void)
-{
- return GTK_TREE_MODEL (gtk_tree_store_new (5,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_OBJECT));
-}
-
-static void
-initialize_yourcerts_ui (CertificateManagerData *cfm)
-{
- GtkCellRenderer *cell = gtk_cell_renderer_text_new ();
- GtkTreeSelection *selection;
- GtkTreeViewColumn *column;
-
- column = gtk_tree_view_column_new_with_attributes (_("Certificate Name"),
- cell,
- "text", 0,
- NULL);
- gtk_tree_view_column_set_resizable(column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (cfm->yourcerts_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, 0);
-
- column = gtk_tree_view_column_new_with_attributes (_("Purposes"),
- cell,
- "text", 1,
- NULL);
- gtk_tree_view_column_set_resizable(column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (cfm->yourcerts_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, 1);
-
- column = gtk_tree_view_column_new_with_attributes (_("Serial Number"),
- cell,
- "text", 2,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (cfm->yourcerts_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, 2);
-
- column = gtk_tree_view_column_new_with_attributes (_("Expires"),
- cell,
- "text", 3,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (cfm->yourcerts_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, 3);
-
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (cfm->yourcerts_streemodel),
- 0,
- GTK_SORT_ASCENDING);
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (cfm->yourcerts_treeview));
- g_signal_connect (selection, "changed", G_CALLBACK (yourcerts_selection_changed), cfm);
-
- if (cfm->import_your_button)
- g_signal_connect (cfm->import_your_button, "clicked", G_CALLBACK (import_your), cfm);
-
- if (cfm->delete_your_button)
- g_signal_connect (cfm->delete_your_button, "clicked", G_CALLBACK (delete_your), cfm);
-
- if (cfm->view_your_button)
- g_signal_connect (cfm->view_your_button, "clicked", G_CALLBACK (view_your), cfm);
-
- if (cfm->backup_your_button)
- g_signal_connect (cfm->backup_your_button, "clicked", G_CALLBACK (backup_your), cfm);
-
- if (cfm->backup_all_your_button)
- g_signal_connect (cfm->backup_all_your_button, "clicked", G_CALLBACK (backup_all_your), cfm);
-}
-
-static void
-view_contact (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->contactcerts_treeview)),
- NULL,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (GTK_TREE_MODEL (cfm->contactcerts_streemodel),
- &iter,
- 3, &cert,
- -1);
-
- if (cert) {
- GtkWidget *dialog = certificate_viewer_show (cert);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_widget_destroy), NULL);
- gtk_widget_show (dialog);
- }
- }
-}
-
-static void
-edit_contact (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->contactcerts_treeview)),
- NULL,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (GTK_TREE_MODEL (cfm->contactcerts_streemodel),
- &iter,
- 3, &cert,
- -1);
-
- if (cert) {
- GtkWidget *dialog = cert_trust_dialog_show (cert);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_widget_destroy), NULL);
- gtk_widget_show (dialog);
- }
- }
-}
-
-static void
-import_contact (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkWidget *filesel;
- const char *filename;
-
-#ifdef USE_GTKFILECHOOSER
- filesel = gtk_file_chooser_dialog_new (_("Select a cert to import..."),
- NULL,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_OK,
- NULL);
- gtk_dialog_set_default_response (GTK_DIALOG (filesel), GTK_RESPONSE_OK);
-#else
- filesel = gtk_file_selection_new (_("Select a cert to import..."));
-#endif
-
- if (GTK_RESPONSE_OK == gtk_dialog_run (GTK_DIALOG (filesel))) {
-#ifdef USE_GTKFILECHOOSER
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filesel));
-#else
- filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
-#endif
-
- if (e_cert_db_import_certs_from_file (e_cert_db_peek (),
- filename,
- E_CERT_CONTACT,
- NULL)) {
-
- /* there's no telling how many certificates were added during the import,
- so we blow away the contact cert display and regenerate it. */
- unload_certs (cfm, E_CERT_CONTACT);
- load_certs (cfm, E_CERT_CONTACT, add_contact_cert);
- gtk_tree_view_expand_all (GTK_TREE_VIEW (cfm->contactcerts_treeview));
- }
- }
-
- gtk_widget_destroy (filesel);
-}
-
-static void
-delete_contact (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->contactcerts_treeview)),
- NULL,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (GTK_TREE_MODEL (cfm->contactcerts_streemodel),
- &iter,
- 3, &cert,
- -1);
-
- if (cert
- && e_cert_db_delete_cert (e_cert_db_peek (), cert)) {
- GtkTreeIter child_iter;
- printf ("DELETE\n");
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (cfm->contactcerts_streemodel),
- &child_iter,
- &iter);
- gtk_tree_store_remove (GTK_TREE_STORE (gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (cfm->contactcerts_streemodel))),
- &child_iter);
-
- /* we need two unrefs here, one to unref the
- gtk_tree_model_get above, and one to unref
- the initial ref when we created the cert
- and added it to the tree */
- g_object_unref (cert);
- g_object_unref (cert);
- }
- }
-
-}
-
-static void
-contactcerts_selection_changed (GtkTreeSelection *selection, CertificateManagerData *cfm)
-{
- handle_selection_changed (selection,
- 3,
- cfm->view_contact_button,
- cfm->edit_contact_button,
- cfm->delete_contact_button);
-}
-
-static GtkTreeModel*
-create_contactcerts_treemodel (void)
-{
- return GTK_TREE_MODEL (gtk_tree_store_new (4,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_OBJECT));
-}
-
-static void
-initialize_contactcerts_ui (CertificateManagerData *cfm)
-{
- GtkCellRenderer *cell = gtk_cell_renderer_text_new ();
- GtkTreeSelection *selection;
- GtkTreeViewColumn *column;
-
- column = gtk_tree_view_column_new_with_attributes (_("Certificate Name"),
- cell,
- "text", 0,
- NULL);
- gtk_tree_view_column_set_resizable(column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (cfm->contactcerts_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, 0);
-
- column = gtk_tree_view_column_new_with_attributes (_("E-Mail Address"),
- cell,
- "text", 1,
- NULL);
- gtk_tree_view_column_set_resizable(column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (cfm->contactcerts_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, 1);
-
- column = gtk_tree_view_column_new_with_attributes (_("Purposes"),
- cell,
- "text", 2,
- NULL);
- gtk_tree_view_column_set_resizable(column, TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (cfm->contactcerts_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, 2);
-
- cfm->contactcerts_root_hash = g_hash_table_new (g_str_hash, g_str_equal);
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (cfm->contactcerts_treeview));
- g_signal_connect (selection, "changed", G_CALLBACK (contactcerts_selection_changed), cfm);
-
- if (cfm->view_contact_button)
- g_signal_connect (cfm->view_contact_button, "clicked", G_CALLBACK (view_contact), cfm);
-
- if (cfm->edit_contact_button)
- g_signal_connect (cfm->edit_contact_button, "clicked", G_CALLBACK (edit_contact), cfm);
-
- if (cfm->import_contact_button)
- g_signal_connect (cfm->import_contact_button, "clicked", G_CALLBACK (import_contact), cfm);
-
- if (cfm->delete_contact_button)
- g_signal_connect (cfm->delete_contact_button, "clicked", G_CALLBACK (delete_contact), cfm);
-
-}
-
-static void
-view_ca (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->authoritycerts_treeview)),
- NULL,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (GTK_TREE_MODEL (cfm->authoritycerts_streemodel),
- &iter,
- 1, &cert,
- -1);
-
- if (cert) {
- GtkWidget *dialog = certificate_viewer_show (cert);
- g_signal_connect (dialog, "response",
- G_CALLBACK (gtk_widget_destroy), NULL);
- gtk_widget_show (dialog);
- }
- }
-}
-
-static void
-edit_ca (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->authoritycerts_treeview)),
- NULL,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (GTK_TREE_MODEL (cfm->authoritycerts_streemodel),
- &iter,
- 1, &cert,
- -1);
-
- if (cert) {
- GtkWidget *dialog = ca_trust_dialog_show (cert, FALSE);
- CERTCertificate *icert = e_cert_get_internal_cert (cert);
-
- ca_trust_dialog_set_trust (dialog,
- e_cert_trust_has_trusted_ca (icert->trust, TRUE, FALSE, FALSE),
- e_cert_trust_has_trusted_ca (icert->trust, FALSE, TRUE, FALSE),
- e_cert_trust_has_trusted_ca (icert->trust, FALSE, FALSE, TRUE));
-
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
- gboolean trust_ssl, trust_email, trust_objsign;
- CERTCertTrust trust;
-
- ca_trust_dialog_get_trust (dialog,
- &trust_ssl, &trust_email, &trust_objsign);
-
- e_cert_trust_init (&trust);
- e_cert_trust_set_valid_ca (&trust);
- e_cert_trust_add_ca_trust (&trust,
- trust_ssl,
- trust_email,
- trust_objsign);
-
- CERT_ChangeCertTrust (CERT_GetDefaultCertDB(), icert, &trust);
- }
-
- gtk_widget_destroy (dialog);
- }
- }
-}
-
-static void
-import_ca (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkWidget *filesel;
- const char *filename;
-
-#ifdef USE_GTKFILECHOOSER
- filesel = gtk_file_chooser_dialog_new (_("Select a cert to import..."),
- NULL,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_OK,
- NULL);
- gtk_dialog_set_default_response (GTK_DIALOG (filesel), GTK_RESPONSE_OK);
-#else
- filesel = gtk_file_selection_new (_("Select a cert to import..."));
-#endif
-
- if (GTK_RESPONSE_OK == gtk_dialog_run (GTK_DIALOG (filesel))) {
-#ifdef USE_GTKFILECHOOSER
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filesel));
-#else
- filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
-#endif
-
- if (e_cert_db_import_certs_from_file (e_cert_db_peek (),
- filename,
- E_CERT_CA,
- NULL)) {
-
- /* there's no telling how many certificates were added during the import,
- so we blow away the CA cert display and regenerate it. */
- unload_certs (cfm, E_CERT_CA);
- load_certs (cfm, E_CERT_CA, add_ca_cert);
- }
- }
-
- gtk_widget_destroy (filesel);
-}
-
-static void
-delete_ca (GtkWidget *widget, CertificateManagerData *cfm)
-{
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->authoritycerts_treeview)),
- NULL,
- &iter)) {
- ECert *cert;
-
- gtk_tree_model_get (GTK_TREE_MODEL (cfm->authoritycerts_streemodel),
- &iter,
- 1, &cert,
- -1);
-
- if (cert
- && e_cert_db_delete_cert (e_cert_db_peek (), cert)) {
- GtkTreeIter child_iter;
- printf ("DELETE\n");
- gtk_tree_model_sort_convert_iter_to_child_iter (GTK_TREE_MODEL_SORT (cfm->authoritycerts_streemodel),
- &child_iter,
- &iter);
- gtk_tree_store_remove (GTK_TREE_STORE (gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (cfm->authoritycerts_streemodel))),
- &child_iter);
-
- /* we need two unrefs here, one to unref the
- gtk_tree_model_get above, and one to unref
- the initial ref when we created the cert
- and added it to the tree */
- g_object_unref (cert);
- g_object_unref (cert);
- }
- }
-
-}
-
-static void
-authoritycerts_selection_changed (GtkTreeSelection *selection, CertificateManagerData *cfm)
-{
- handle_selection_changed (selection,
- 1,
- cfm->view_ca_button,
- cfm->edit_ca_button,
- cfm->delete_ca_button);
-}
-
-static GtkTreeModel*
-create_authoritycerts_treemodel (void)
-{
- return GTK_TREE_MODEL (gtk_tree_store_new (2,
- G_TYPE_STRING,
- G_TYPE_OBJECT));
-
-}
-
-static void
-initialize_authoritycerts_ui (CertificateManagerData *cfm)
-{
- GtkCellRenderer *cell = gtk_cell_renderer_text_new ();
- GtkTreeSelection *selection;
- GtkTreeViewColumn *column;
-
- column = gtk_tree_view_column_new_with_attributes (_("Certificate Name"),
- cell,
- "text", 0,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (cfm->authoritycerts_treeview),
- column);
- gtk_tree_view_column_set_sort_column_id (column, 0);
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (cfm->authoritycerts_treeview));
- g_signal_connect (selection, "changed", G_CALLBACK (authoritycerts_selection_changed), cfm);
-
- if (cfm->view_ca_button)
- g_signal_connect (cfm->view_ca_button, "clicked", G_CALLBACK (view_ca), cfm);
-
- if (cfm->edit_ca_button)
- g_signal_connect (cfm->edit_ca_button, "clicked", G_CALLBACK (edit_ca), cfm);
-
- if (cfm->import_ca_button)
- g_signal_connect (cfm->import_ca_button, "clicked", G_CALLBACK (import_ca), cfm);
-
- if (cfm->delete_ca_button)
- g_signal_connect (cfm->delete_ca_button, "clicked", G_CALLBACK (delete_ca), cfm);
-}
-
-static void
-add_user_cert (CertificateManagerData *cfm, ECert *cert)
-{
- GtkTreeIter iter;
- GtkTreeIter *parent_iter = NULL;
- const char *organization = e_cert_get_org (cert);
- GtkTreeModel *model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (cfm->yourcerts_streemodel));
-
- if (organization) {
- parent_iter = g_hash_table_lookup (cfm->yourcerts_root_hash, organization);
- if (!parent_iter) {
- /* create a new toplevel node */
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL);
-
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, organization, -1);
-
- /* now copy it off into parent_iter and insert it into
- the hashtable */
- parent_iter = gtk_tree_iter_copy (&iter);
- g_hash_table_insert (cfm->yourcerts_root_hash, g_strdup (organization), parent_iter);
- }
- }
-
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter, parent_iter);
-
- if (e_cert_get_cn (cert))
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, e_cert_get_cn (cert),
- 1, e_cert_get_usage(cert),
- 2, e_cert_get_serial_number(cert),
- 3, e_cert_get_expires_on(cert),
- 4, cert,
- -1);
- else
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, e_cert_get_nickname (cert),
- 1, e_cert_get_usage(cert),
- 2, e_cert_get_serial_number(cert),
- 3, e_cert_get_expires_on(cert),
- 4, cert,
- -1);
-}
-
-static void
-add_contact_cert (CertificateManagerData *cfm, ECert *cert)
-{
- GtkTreeIter iter;
- GtkTreeIter *parent_iter = NULL;
- const char *organization = e_cert_get_org (cert);
- GtkTreeModel *model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (cfm->contactcerts_streemodel));
-
- if (organization) {
- parent_iter = g_hash_table_lookup (cfm->contactcerts_root_hash, organization);
- if (!parent_iter) {
- /* create a new toplevel node */
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL);
-
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, organization, -1);
-
- /* now copy it off into parent_iter and insert it into
- the hashtable */
- parent_iter = gtk_tree_iter_copy (&iter);
- g_hash_table_insert (cfm->contactcerts_root_hash, g_strdup (organization), parent_iter);
- }
- }
-
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter, parent_iter);
-
- if (e_cert_get_cn (cert))
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, e_cert_get_cn (cert),
- 1, e_cert_get_email (cert),
- 2, e_cert_get_usage(cert),
- 3, cert,
- -1);
- else
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, e_cert_get_nickname (cert),
- 1, e_cert_get_email (cert),
- 2, e_cert_get_usage(cert),
- 3, cert,
- -1);
-}
-
-static void
-add_ca_cert (CertificateManagerData *cfm, ECert *cert)
-{
- GtkTreeIter iter;
- GtkTreeIter *parent_iter = NULL;
- const char *organization = e_cert_get_org (cert);
- GtkTreeModel *model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (cfm->authoritycerts_streemodel));
-
- if (organization) {
- parent_iter = g_hash_table_lookup (cfm->authoritycerts_root_hash, organization);
- if (!parent_iter) {
- /* create a new toplevel node */
- gtk_tree_store_append (GTK_TREE_STORE (model),
- &iter, NULL);
-
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, organization, -1);
-
- /* now copy it off into parent_iter and insert it into
- the hashtable */
- parent_iter = gtk_tree_iter_copy (&iter);
- g_hash_table_insert (cfm->authoritycerts_root_hash, g_strdup (organization), parent_iter);
- }
- }
-
-
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter, parent_iter);
-
- if (e_cert_get_cn (cert))
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, e_cert_get_cn (cert),
- 1, cert,
- -1);
- else
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
- 0, e_cert_get_nickname (cert),
- 1, cert,
- -1);
-}
-
-static void
-destroy_key (gpointer data)
-{
- g_free (data);
-}
-
-static void
-destroy_value (gpointer data)
-{
- gtk_tree_iter_free (data);
-}
-
-static void
-unload_certs (CertificateManagerData *cfm,
- ECertType type)
-{
- GtkTreeModel *treemodel;
-
- switch (type) {
- case E_CERT_USER:
- treemodel = create_yourcerts_treemodel ();
-
- cfm->yourcerts_streemodel = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (treemodel));
-
- g_object_unref (treemodel);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (cfm->yourcerts_treeview),
- cfm->yourcerts_streemodel);
-
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (cfm->yourcerts_streemodel),
- 0,
- GTK_SORT_ASCENDING);
-
- if (cfm->yourcerts_root_hash)
- g_hash_table_destroy (cfm->yourcerts_root_hash);
-
- cfm->yourcerts_root_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
- destroy_key, destroy_value);
- break;
- case E_CERT_CONTACT:
- treemodel = create_contactcerts_treemodel ();
-
- cfm->contactcerts_streemodel = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (treemodel));
-
- g_object_unref (treemodel);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (cfm->contactcerts_treeview),
- cfm->contactcerts_streemodel);
-
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (cfm->contactcerts_streemodel),
- 0,
- GTK_SORT_ASCENDING);
-
- if (cfm->contactcerts_root_hash)
- g_hash_table_destroy (cfm->contactcerts_root_hash);
-
- cfm->contactcerts_root_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
- destroy_key, destroy_value);
- break;
- case E_CERT_SITE:
- break;
- case E_CERT_CA:
- treemodel = create_authoritycerts_treemodel ();
-
- cfm->authoritycerts_streemodel = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (treemodel));
-
- g_object_unref (treemodel);
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (cfm->authoritycerts_treeview),
- cfm->authoritycerts_streemodel);
-
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (cfm->authoritycerts_streemodel),
- 0,
- GTK_SORT_ASCENDING);
-
- if (cfm->authoritycerts_root_hash)
- g_hash_table_destroy (cfm->authoritycerts_root_hash);
-
- cfm->authoritycerts_root_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
- destroy_key, destroy_value);
-
-
- break;
- case E_CERT_UNKNOWN:
- /* nothing to do here */
- break;
- }
-}
-
-static void
-load_certs (CertificateManagerData *cfm,
- ECertType type,
- AddCertCb add_cert)
-{
- CERTCertList *certList;
- CERTCertListNode *node;
-
- certList = PK11_ListCerts (PK11CertListUnique, NULL);
-
- for (node = CERT_LIST_HEAD(certList);
- !CERT_LIST_END(node, certList);
- node = CERT_LIST_NEXT(node)) {
- ECert *cert = e_cert_new ((CERTCertificate*)node->cert);
- if (e_cert_get_cert_type(cert) == type) {
- add_cert (cfm, cert);
- }
- }
-}
-
-static void
-populate_ui (CertificateManagerData *cfm)
-{
- unload_certs (cfm, E_CERT_USER);
- load_certs (cfm, E_CERT_USER, add_user_cert);
-
- unload_certs (cfm, E_CERT_CONTACT);
- load_certs (cfm, E_CERT_CONTACT, add_contact_cert);
-
- unload_certs (cfm, E_CERT_CA);
- load_certs (cfm, E_CERT_CA, add_ca_cert);
-
- /* expand all three trees */
- gtk_tree_view_expand_all (GTK_TREE_VIEW (cfm->yourcerts_treeview));
- gtk_tree_view_expand_all (GTK_TREE_VIEW (cfm->contactcerts_treeview));
-}
-
-EvolutionConfigControl*
-certificate_manager_config_control_new (void)
-{
- CertificateManagerData *cfm_data;
- GtkWidget *control_widget;
-
- /* We need to peek the db here to make sure it (and NSS) are fully initialized. */
- e_cert_db_peek ();
-
- cfm_data = g_new0 (CertificateManagerData, 1);
- cfm_data->gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, NULL, NULL);
-
- cfm_data->yourcerts_treeview = glade_xml_get_widget (cfm_data->gui, "yourcerts-treeview");
- cfm_data->contactcerts_treeview = glade_xml_get_widget (cfm_data->gui, "contactcerts-treeview");
- cfm_data->authoritycerts_treeview = glade_xml_get_widget (cfm_data->gui, "authoritycerts-treeview");
-
- cfm_data->view_your_button = glade_xml_get_widget (cfm_data->gui, "your-view-button");
- cfm_data->backup_your_button = glade_xml_get_widget (cfm_data->gui, "your-backup-button");
- cfm_data->backup_all_your_button = glade_xml_get_widget (cfm_data->gui, "your-backup-all-button");
- cfm_data->import_your_button = glade_xml_get_widget (cfm_data->gui, "your-import-button");
- cfm_data->delete_your_button = glade_xml_get_widget (cfm_data->gui, "your-delete-button");
-
- cfm_data->view_contact_button = glade_xml_get_widget (cfm_data->gui, "contact-view-button");
- cfm_data->edit_contact_button = glade_xml_get_widget (cfm_data->gui, "contact-edit-button");
- cfm_data->import_contact_button = glade_xml_get_widget (cfm_data->gui, "contact-import-button");
- cfm_data->delete_contact_button = glade_xml_get_widget (cfm_data->gui, "contact-delete-button");
-
- cfm_data->view_ca_button = glade_xml_get_widget (cfm_data->gui, "authority-view-button");
- cfm_data->edit_ca_button = glade_xml_get_widget (cfm_data->gui, "authority-edit-button");
- cfm_data->import_ca_button = glade_xml_get_widget (cfm_data->gui, "authority-import-button");
- cfm_data->delete_ca_button = glade_xml_get_widget (cfm_data->gui, "authority-delete-button");
-
- initialize_yourcerts_ui(cfm_data);
- initialize_contactcerts_ui(cfm_data);
- initialize_authoritycerts_ui(cfm_data);
-
- populate_ui (cfm_data);
-
- control_widget = glade_xml_get_widget (cfm_data->gui, "cert-manager-notebook");
- gtk_widget_ref (control_widget);
-
- gtk_container_remove (GTK_CONTAINER (control_widget->parent), control_widget);
-
- /* FIXME: remove when implemented */
- gtk_widget_set_sensitive(cfm_data->backup_your_button, FALSE);
- gtk_widget_set_sensitive(cfm_data->backup_all_your_button, FALSE);
-
- return evolution_config_control_new (control_widget);
-}
diff --git a/smime/gui/certificate-manager.h b/smime/gui/certificate-manager.h
deleted file mode 100644
index ee2002b159..0000000000
--- a/smime/gui/certificate-manager.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- *
- * Copyright (C) 2003 Ximian, Inc. (www.ximian.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef _CERTIFICATE_MANAGER_H_
-#define _CERTIFICATE_MANAGER_H
-
-#include "evolution-config-control.h"
-
-EvolutionConfigControl* certificate_manager_config_control_new (void);
-
-#endif /* _CERTIFICATE_MANAGER_H_ */
diff --git a/smime/gui/certificate-viewer.c b/smime/gui/certificate-viewer.c
deleted file mode 100644
index 4495ca8f2b..0000000000
--- a/smime/gui/certificate-viewer.c
+++ /dev/null
@@ -1,348 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- *
- * Copyright (C) 2003 Ximian, Inc. (www.ximian.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "certificate-viewer.h"
-
-#include "e-asn1-object.h"
-
-#include <gtk/gtk.h>
-
-#include <libgnome/gnome-i18n.h>
-#include <glade/glade.h>
-
-#define GLADE_FILE_NAME "smime-ui.glade"
-
-typedef struct {
- GladeXML *gui;
- GtkWidget *dialog;
- GtkTreeStore *hierarchy_store, *fields_store;
- GtkWidget *hierarchy_tree, *fields_tree;
- GtkWidget *field_text;
- GtkTextTag *text_tag;
-
- GList *cert_chain;
-} CertificateViewerData;
-
-static void
-free_data (gpointer data, GObject *where_the_object_was)
-{
- CertificateViewerData *cvm = data;
-
- g_list_foreach (cvm->cert_chain, (GFunc)g_object_unref, NULL);
- g_list_free (cvm->cert_chain);
-
- g_object_unref (cvm->gui);
- g_free (cvm);
-}
-
-#define NOT_PART_OF_CERT_MARKUP "<i>&lt;Not part of certificate&gt;</i>"
-
-static void
-fill_in_general (CertificateViewerData *cvm_data, ECert *cert)
-{
- CERTCertificate *mcert = e_cert_get_internal_cert (cert);
- GtkWidget *label;
- const char *text;
- char *markup;
-
- /* issued to */
- label = glade_xml_get_widget (cvm_data->gui, "issued-to-cn");
- if (e_cert_get_cn (cert)) {
- gtk_label_set_text (GTK_LABEL (label), e_cert_get_cn (cert));
- }
- else {
- gtk_label_set_markup (GTK_LABEL (label), NOT_PART_OF_CERT_MARKUP);
- }
-
- label = glade_xml_get_widget (cvm_data->gui, "issued-to-o");
- if (e_cert_get_org (cert)) {
- gtk_label_set_text (GTK_LABEL (label), e_cert_get_org (cert));
- }
- else {
- gtk_label_set_markup (GTK_LABEL (label), NOT_PART_OF_CERT_MARKUP);
- }
-
- label = glade_xml_get_widget (cvm_data->gui, "issued-to-ou");
- if (e_cert_get_org_unit (cert)) {
- gtk_label_set_text (GTK_LABEL (label), e_cert_get_org_unit (cert));
- }
- else {
- gtk_label_set_markup (GTK_LABEL (label), NOT_PART_OF_CERT_MARKUP);
- }
-
- text = e_cert_get_serial_number (cert);
- label = glade_xml_get_widget (cvm_data->gui, "issued-to-serial");
- gtk_label_set_text (GTK_LABEL (label), text);
-
- /* issued by */
- label = glade_xml_get_widget (cvm_data->gui, "issued-by-cn");
- if (e_cert_get_issuer_cn (cert)) {
- gtk_label_set_text (GTK_LABEL (label), e_cert_get_issuer_cn (cert));
- }
- else {
- gtk_label_set_markup (GTK_LABEL (label), NOT_PART_OF_CERT_MARKUP);
- }
-
- label = glade_xml_get_widget (cvm_data->gui, "issued-by-o");
- if (e_cert_get_issuer_org (cert)) {
- gtk_label_set_text (GTK_LABEL (label), e_cert_get_issuer_org (cert));
- }
- else {
- gtk_label_set_markup (GTK_LABEL (label), NOT_PART_OF_CERT_MARKUP);
- }
-
- label = glade_xml_get_widget (cvm_data->gui, "issued-by-ou");
- if (e_cert_get_issuer_org_unit (cert)) {
- gtk_label_set_text (GTK_LABEL (label), e_cert_get_issuer_org_unit (cert));
- }
- else {
- gtk_label_set_markup (GTK_LABEL (label), NOT_PART_OF_CERT_MARKUP);
- }
-
- /* validity */
- label = glade_xml_get_widget (cvm_data->gui, "validity-issued-on");
- if (e_cert_get_issued_on (cert)) {
- gtk_label_set_text (GTK_LABEL (label), e_cert_get_issued_on (cert));
- }
- else {
- gtk_label_set_markup (GTK_LABEL (label), NOT_PART_OF_CERT_MARKUP);
- }
-
- label = glade_xml_get_widget (cvm_data->gui, "validity-expires-on");
- if (e_cert_get_expires_on (cert)) {
- gtk_label_set_text (GTK_LABEL (label), e_cert_get_expires_on (cert));
- }
- else {
- gtk_label_set_markup (GTK_LABEL (label), NOT_PART_OF_CERT_MARKUP);
- }
-
- /* fingerprints */
- markup = g_strdup_printf ("<tt>%s</tt>", e_cert_get_sha1_fingerprint (cert));
- label = glade_xml_get_widget (cvm_data->gui, "fingerprints-sha1");
- gtk_label_set_markup (GTK_LABEL (label), markup);
- g_free (markup);
-
- markup = g_strdup_printf ("<tt>%s</tt>", e_cert_get_md5_fingerprint (cert));
- label = glade_xml_get_widget (cvm_data->gui, "fingerprints-md5");
- gtk_label_set_markup (GTK_LABEL (label), markup);
- g_free (markup);
-}
-
-static void
-populate_fields_tree (CertificateViewerData *cvm_data, EASN1Object *asn1, GtkTreeIter *root)
-{
- GtkTreeIter new_iter;
-
- /* first insert a node for the current asn1 */
- gtk_tree_store_insert (cvm_data->fields_store, &new_iter, root, -1);
- gtk_tree_store_set (cvm_data->fields_store, &new_iter,
- 0, e_asn1_object_get_display_name (asn1),
- 1, asn1,
- -1);
-
- if (e_asn1_object_is_valid_container (asn1)) {
- GList *children = e_asn1_object_get_children (asn1);
- if (children) {
- GList *l;
- for (l = children; l; l = l->next) {
- EASN1Object *subasn1 = l->data;
- populate_fields_tree (cvm_data, subasn1, &new_iter);
- }
- }
- g_list_foreach (children, (GFunc)g_object_unref, NULL);
- g_list_free (children);
- }
-}
-
-static void
-hierarchy_selection_changed (GtkTreeSelection *selection, CertificateViewerData *cvm_data)
-{
- GtkTreeIter iter;
- GtkTreeModel *model;
-
- if (gtk_tree_selection_get_selected (selection,
- &model,
- &iter)) {
- EASN1Object *asn1_object;
- ECert *cert;
-
- gtk_tree_model_get (model,
- &iter,
- 1, &cert,
- -1);
-
- if (!cert)
- return;
-
- /* display the cert's ASN1 structure */
- asn1_object = e_cert_get_asn1_struct (cert);
-
- /* wipe out the old model */
- cvm_data->fields_store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);
- gtk_tree_view_set_model (GTK_TREE_VIEW (cvm_data->fields_tree),
- GTK_TREE_MODEL (cvm_data->fields_store));
-
- /* populate the fields from the newly selected cert */
- populate_fields_tree (cvm_data, asn1_object, NULL);
- gtk_tree_view_expand_all (GTK_TREE_VIEW (cvm_data->fields_tree));
- g_object_unref (asn1_object);
-
- /* and blow away the field value */
- gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (cvm_data->field_text)),
- "", 0);
- }
-}
-
-static void
-fields_selection_changed (GtkTreeSelection *selection, CertificateViewerData *cvm_data)
-{
- GtkTreeIter iter;
- GtkTreeModel *model;
-
- if (gtk_tree_selection_get_selected (selection,
- &model,
- &iter)) {
- EASN1Object *asn1_object;
- const char *value;
-
- gtk_tree_model_get (model,
- &iter,
- 1, &asn1_object,
- -1);
-
- value = e_asn1_object_get_display_value (asn1_object);
-
- gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (cvm_data->field_text)),
- "", 0);
-
- if (value) {
- GtkTextIter text_iter;
-
- gtk_text_buffer_get_start_iter (gtk_text_view_get_buffer (GTK_TEXT_VIEW (cvm_data->field_text)),
- &text_iter);
-
- gtk_text_buffer_insert_with_tags (gtk_text_view_get_buffer (GTK_TEXT_VIEW (cvm_data->field_text)),
- &text_iter,
- value, strlen (value),
- cvm_data->text_tag, NULL);
- }
- }
-}
-
-static void
-fill_in_details (CertificateViewerData *cvm_data, ECert *cert)
-{
- GList *l;
- GtkTreeIter *root = NULL;
- GtkTreeSelection *selection;
-
- /* hook up all the hierarchy tree foo */
- cvm_data->hierarchy_store = gtk_tree_store_new (2, G_TYPE_STRING, G_TYPE_OBJECT);
- cvm_data->hierarchy_tree = glade_xml_get_widget (cvm_data->gui, "cert-hierarchy-treeview");
- gtk_tree_view_set_model (GTK_TREE_VIEW (cvm_data->hierarchy_tree),
- GTK_TREE_MODEL (cvm_data->hierarchy_store));
-
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (cvm_data->hierarchy_tree),
- -1, "Cert", gtk_cell_renderer_text_new(),
- "text", 0, NULL);
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (cvm_data->hierarchy_tree));
- g_signal_connect (selection, "changed", G_CALLBACK (hierarchy_selection_changed), cvm_data);
-
- /* hook up all the fields tree foo */
- cvm_data->fields_tree = glade_xml_get_widget (cvm_data->gui, "cert-fields-treeview");
-
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (cvm_data->fields_tree),
- -1, "Field", gtk_cell_renderer_text_new(),
- "text", 0, NULL);
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (cvm_data->fields_tree));
- g_signal_connect (selection, "changed", G_CALLBACK (fields_selection_changed), cvm_data);
-
- /* hook up all the field display foo */
- cvm_data->field_text = glade_xml_get_widget (cvm_data->gui, "cert-field-value-textview");
-
- /* set the font of the field value viewer to be some fixed
- width font to the hex display doesn't look like ass. */
- cvm_data->text_tag = gtk_text_buffer_create_tag (gtk_text_view_get_buffer (GTK_TEXT_VIEW (cvm_data->field_text)),
- "mono",
- "font", "Mono",
- NULL);
-
- /* initially populate the hierarchy from the cert's chain */
- cvm_data->cert_chain = e_cert_get_chain (cert);
- cvm_data->cert_chain = g_list_reverse (cvm_data->cert_chain);
- for (l = cvm_data->cert_chain; l; l = l->next) {
- ECert *c = l->data;
- const char *str;
- GtkTreeIter new_iter;
-
- str = e_cert_get_cn (c);
- if (!str)
- str = e_cert_get_subject_name (c);
-
- gtk_tree_store_insert (cvm_data->hierarchy_store, &new_iter, root, -1);
- gtk_tree_store_set (cvm_data->hierarchy_store, &new_iter,
- 0, str,
- 1, c,
- -1);
-
- root = &new_iter;
- }
-
- gtk_tree_view_expand_all (GTK_TREE_VIEW (cvm_data->hierarchy_tree));
-}
-
-GtkWidget*
-certificate_viewer_show (ECert *cert)
-{
- CertificateViewerData *cvm_data;
- char *title;
-
- cvm_data = g_new0 (CertificateViewerData, 1);
- cvm_data->gui = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, NULL, NULL);
-
- cvm_data->dialog = glade_xml_get_widget (cvm_data->gui, "certificate-viewer-dialog");
-
- gtk_widget_realize (cvm_data->dialog);
- gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (cvm_data->dialog)->action_area), 12);
-
- title = g_strdup_printf (_("Certificate Viewer: %s"), e_cert_get_window_title (cert));
-
- gtk_window_set_title (GTK_WINDOW (cvm_data->dialog),
- title);
-
- g_free (title);
-
- fill_in_general (cvm_data, cert);
- fill_in_details (cvm_data, cert);
-
- g_object_weak_ref (G_OBJECT (cvm_data->dialog), free_data, cvm_data);
-
- /* gtk_widget_show (cvm_data->dialog);*/
- return cvm_data->dialog;
-}
diff --git a/smime/gui/certificate-viewer.h b/smime/gui/certificate-viewer.h
deleted file mode 100644
index ab60043a39..0000000000
--- a/smime/gui/certificate-viewer.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- *
- * Copyright (C) 2003 Ximian, Inc. (www.ximian.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef _CERTIFICATE_VIEWER_H_
-#define _CERTIFICATE_VIEWER_H
-
-#include <gtk/gtkwidget.h>
-#include "e-cert.h"
-
-GtkWidget* certificate_viewer_show (ECert *cert);
-
-#endif /* _CERTIFICATE_VIEWER_H_ */
diff --git a/smime/gui/component.c b/smime/gui/component.c
deleted file mode 100644
index 152d38fe3e..0000000000
--- a/smime/gui/component.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- *
- * Copyright (C) 2004 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <gtk/gtk.h>
-
-#include <libgnome/gnome-i18n.h>
-#include <libedataserverui/e-passwords.h>
-
-#include "ca-trust-dialog.h"
-#include "e-cert-db.h"
-#include "pk11func.h"
-
-static gboolean
-smime_pk11_passwd (ECertDB *db, PK11SlotInfo* slot, gboolean retry, char **passwd, gpointer arg)
-{
- char *prompt;
- char *slot_name = g_strdup (PK11_GetSlotName (slot));
-
- g_strchomp (slot_name);
-
- prompt = g_strdup_printf (_("Enter the password for `%s'"), slot_name);
- g_free (slot_name);
-
- *passwd = e_passwords_ask_password (_("Enter password"), NULL, NULL,
- prompt,
- E_PASSWORDS_REMEMBER_NEVER|E_PASSWORDS_SECRET, NULL,
- NULL);
-
- g_free (prompt);
-
- /* this should return FALSE if they canceled. */
- return TRUE;
-}
-
-static gboolean
-smime_pk11_change_passwd (ECertDB *db, char **old_passwd, char **passwd, gpointer arg)
-{
- char *prompt;
-
- /* XXX need better strings here, just copy mozilla's? */
-
- if (!old_passwd) {
- /* we're setting the password initially */
- prompt = _("Enter new password for certificate database");
-
- *passwd = e_passwords_ask_password (_("Enter new password"), NULL, NULL,
- prompt,
- E_PASSWORDS_REMEMBER_NEVER|E_PASSWORDS_SECRET, NULL,
- NULL);
- }
- else {
- /* we're changing the password */
- /* XXX implement this... */
- }
-
- /* this should return FALSE if they canceled. */
- return TRUE;
-}
-
-static gboolean
-smime_confirm_ca_cert_import (ECertDB *db, ECert *cert, gboolean *trust_ssl, gboolean *trust_email, gboolean *trust_objsign, gpointer arg)
-{
- GtkWidget *dialog = ca_trust_dialog_show (cert, TRUE);
- int response;
-
- response = gtk_dialog_run (GTK_DIALOG (dialog));
-
- ca_trust_dialog_get_trust (dialog, trust_ssl, trust_email, trust_objsign);
-
- gtk_widget_destroy (dialog);
-
- return response != GTK_RESPONSE_CANCEL;
-}
-
-void
-smime_component_init (void)
-{
- static gboolean init_done = FALSE;
- if (init_done)
- return;
-
- init_done = TRUE;
- g_signal_connect (e_cert_db_peek (),
- "pk11_passwd",
- G_CALLBACK (smime_pk11_passwd), NULL);
-
- g_signal_connect (e_cert_db_peek (),
- "pk11_change_passwd",
- G_CALLBACK (smime_pk11_change_passwd), NULL);
-
- g_signal_connect (e_cert_db_peek (),
- "confirm_ca_cert_import",
- G_CALLBACK (smime_confirm_ca_cert_import), NULL);
-}
diff --git a/smime/gui/component.h b/smime/gui/component.h
deleted file mode 100644
index dbcd97bd2a..0000000000
--- a/smime/gui/component.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Chris Toshok <toshok@ximian.com>
- *
- * Copyright (C) 2004 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef _SMIME_COMPONENT_H_
-#define _SMIME_COMPONENT_H_
-
-void smime_component_init (void);
-
-#endif /* _SMIME_COMPONENT_H_ */
diff --git a/smime/gui/e-cert-selector.c b/smime/gui/e-cert-selector.c
deleted file mode 100644
index ac4c6e8785..0000000000
--- a/smime/gui/e-cert-selector.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* Copyright 2003, Novell Inc.
- *
- * Author(s): Michael Zucchi <notzed@ximian.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <libgnome/gnome-i18n.h>
-
-#include <gtk/gtktextview.h>
-#include <gtk/gtkoptionmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkbox.h>
-#include <gtk/gtkstock.h>
-
-#include "nss.h"
-#include "pk11func.h"
-#include "certdb.h"
-#include "cert.h"
-
-#include <glade/glade.h>
-
-#include "e-cert-selector.h"
-
-struct _ECertSelectorPrivate {
- CERTCertList *certlist;
-
- GtkWidget *menu, *description;
-};
-
-enum {
- ECS_SELECTED,
- ECS_LAST_SIGNAL
-};
-
-static guint ecs_signals[ECS_LAST_SIGNAL];
-
-G_DEFINE_TYPE (ECertSelector, e_cert_selector, GTK_TYPE_DIALOG)
-
-/* (this is what mozilla shows)
-Issued to:
- Subject: E=notzed@ximian.com, CN=notzed@ximian.com, O=My Company Ltd, L=Adelaide, ST=SA, C=AU
- Serial Number: 03
- Valid from 23/10/03 06:35:29 to 22/10/04 06:35:29
- Purposes: Sign,Encrypt
-Issued by:
- Subject: E=notzed@ximian.com, O=company, L=there, ST=Here, C=AU
-*/
-
-static CERTCertListNode *
-ecs_find_current(ECertSelector *ecs)
-{
- struct _ECertSelectorPrivate *p = ecs->priv;
- CERTCertListNode *node;
- int n;
-
- if (p->certlist == NULL || CERT_LIST_EMPTY(p->certlist))
- return NULL;
-
- n = gtk_option_menu_get_history((GtkOptionMenu *)p->menu);
- node = CERT_LIST_HEAD(p->certlist);
- while (n>0 && !CERT_LIST_END(node, p->certlist)) {
- n--;
- node = CERT_LIST_NEXT(node);
- }
-
- g_assert(!CERT_LIST_END(node, p->certlist));
-
- return node;
-}
-
-static void
-e_cert_selector_response(GtkDialog *dialog, gint button)
-{
- CERTCertListNode *node;
-
- switch (button) {
- case GTK_RESPONSE_OK:
- node = ecs_find_current((ECertSelector *)dialog);
- break;
- default:
- node = NULL;
- break;
- }
-
- g_signal_emit(dialog, ecs_signals[ECS_SELECTED], 0, node?node->cert->nickname:NULL);
-}
-
-static void
-ecs_cert_changed(GtkWidget *w, ECertSelector *ecs)
-{
- struct _ECertSelectorPrivate *p = ecs->priv;
- CERTCertListNode *node;
- GtkTextBuffer *buffer;
- GString *text;
-
- text = g_string_new("");
- node = ecs_find_current(ecs);
- if (node) {
- /* FIXME: add serial no, validity date, uses */
- g_string_append_printf(text, _("Issued to:\n Subject: %s\n"), node->cert->subjectName);
- g_string_append_printf(text, _("Issued by:\n Subject: %s\n"), node->cert->issuerName);
- }
-
- buffer = gtk_text_view_get_buffer((GtkTextView *)p->description);
- gtk_text_buffer_set_text(buffer, text->str, text->len);
- g_string_free(text, TRUE);
-}
-
-/**
- * e_cert_selector_new:
- * @type:
- * @currentid:
- *
- * Create a new ECertSelector dialog. @type specifies which type of cert to
- * be selected, E_CERT_SELECTOR_SIGNER for signing certs, and
- * E_CERT_SELECTOR_RECIPIENT for encrypting certs.
- *
- * @currentid is the nickname of the cert currently selected for this user.
- *
- * You only need to connect to a single signal "selected" which will
- * be called with either a NULL nickname if cancelled, or the newly
- * selected nickname otherwise.
- *
- * Return value: A dialogue to be shown.
- **/
-GtkWidget *
-e_cert_selector_new(int type, const char *currentid)
-{
- ECertSelector *ecs;
- struct _ECertSelectorPrivate *p;
- SECCertUsage usage;
- CERTCertList *certlist;
- CERTCertListNode *node;
- GladeXML *gui;
- GtkWidget *w, *menu;
- int n=0, active=0;
-
- ecs = g_object_new(e_cert_selector_get_type(), NULL);
- p = ecs->priv;
-
- gui = glade_xml_new(EVOLUTION_GLADEDIR "/smime-ui.glade", "cert_selector_vbox", NULL);
-
- p->menu = glade_xml_get_widget(gui, "cert_menu");
- p->description = glade_xml_get_widget(gui, "cert_description");
-
- w = glade_xml_get_widget(gui, "cert_selector_vbox");
- gtk_box_pack_start((GtkBox *)((GtkDialog *)ecs)->vbox, w, TRUE, TRUE, 3);
- gtk_window_set_title(GTK_WINDOW(ecs), _("Select certificate"));
-
- switch (type) {
- case E_CERT_SELECTOR_SIGNER:
- default:
- usage = certUsageEmailSigner;
- break;
- case E_CERT_SELECTOR_RECIPIENT:
- usage = certUsageEmailRecipient;
- break;
- }
-
- menu = gtk_menu_new();
-
- certlist = CERT_FindUserCertsByUsage(CERT_GetDefaultCertDB(), usage, FALSE, TRUE, NULL);
- ecs->priv->certlist = certlist;
- if (certlist != NULL) {
- node = CERT_LIST_HEAD(certlist);
- while (!CERT_LIST_END(node, certlist)) {
- if (node->cert->nickname || node->cert->emailAddr) {
- w = gtk_menu_item_new_with_label(node->cert->nickname?node->cert->nickname:node->cert->emailAddr);
- gtk_menu_shell_append((GtkMenuShell *)menu, w);
- gtk_widget_show(w);
-
- if (currentid != NULL
- && ((node->cert->nickname != NULL && strcmp(node->cert->nickname, currentid) == 0)
- || (node->cert->emailAddr != NULL && strcmp(node->cert->emailAddr, currentid) == 0)))
- active = n;
-
- n++;
- }
-
- node = CERT_LIST_NEXT(node);
- }
- }
-
- gtk_option_menu_set_menu((GtkOptionMenu *)p->menu, menu);
- gtk_option_menu_set_history((GtkOptionMenu *)p->menu, active);
-
- g_signal_connect(p->menu, "changed", G_CALLBACK(ecs_cert_changed), ecs);
-
- g_object_unref(gui);
-
- ecs_cert_changed(p->menu, ecs);
-
- return GTK_WIDGET(ecs);
-}
-
-static void
-e_cert_selector_init(ECertSelector *ecs)
-{
- gtk_dialog_add_buttons((GtkDialog *)ecs,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
-
- ecs->priv = g_malloc0(sizeof(*ecs->priv));
-}
-
-static void
-e_cert_selector_finalise(GObject *o)
-{
- ECertSelector *ecs = (ECertSelector *)o;
-
- if (ecs->priv->certlist)
- CERT_DestroyCertList(ecs->priv->certlist);
-
- g_free(ecs->priv);
-
- ((GObjectClass *)e_cert_selector_parent_class)->finalize(o);
-}
-
-static void
-e_cert_selector_class_init(ECertSelectorClass *klass)
-{
- ((GObjectClass *)klass)->finalize = e_cert_selector_finalise;
- ((GtkDialogClass *)klass)->response = e_cert_selector_response;
-
- ecs_signals[ECS_SELECTED] =
- g_signal_new("selected",
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(ECertSelectorClass, selected),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1, G_TYPE_POINTER);
-}
diff --git a/smime/gui/e-cert-selector.h b/smime/gui/e-cert-selector.h
deleted file mode 100644
index 8919a3e916..0000000000
--- a/smime/gui/e-cert-selector.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-cert-selector.h
- *
- * Copyright (C) 2003 Novell Inc.
- *
- * Authors: Michael Zucchi
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- */
-
-#ifndef E_CERT_SELECTOR_H
-#define E_CERT_SELECTOR_H
-
-#include <gtk/gtkdialog.h>
-
-#ifdef cplusplus
-extern "C" {
-#pragma }
-#endif /* cplusplus */
-
-#define E_TYPE_CERT_SELECTOR (e_cert_selector_get_type ())
-#define E_CERT_SELECTOR(obj) (GTK_CHECK_CAST ((obj), E_TYPE_CERT_SELECTOR, ECertSelector))
-#define E_CERT_SELECTOR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_CERT_SELECTOR, ECertSelectorClass))
-#define E_IS_CERT_SELECTOR(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_CERT_SELECTOR))
-#define E_IS_CERT_SELECTOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_CERT_SELECTOR))
-
-typedef struct _ECertSelector ECertSelector;
-typedef struct _ECertSelectorClass ECertSelectorClass;
-
-struct _ECertSelector {
- GtkDialog parent;
-
- struct _ECertSelectorPrivate *priv;
-};
-
-struct _ECertSelectorClass {
- GtkDialogClass parent_class;
-
- void (*selected)(ECertSelector *, const char *certid);
-};
-
-enum _e_cert_selector_type {
- E_CERT_SELECTOR_SIGNER,
- E_CERT_SELECTOR_RECIPIENT,
-};
-
-GtkType e_cert_selector_get_type (void);
-GtkWidget *e_cert_selector_new (int type, const char *currentid);
-
-#ifdef cplusplus
-}
-#endif /* cplusplus */
-
-#endif /* E_CERT_SELECTOR_H */
diff --git a/smime/gui/smime-ui.glade b/smime/gui/smime-ui.glade
deleted file mode 100644
index 52eb4df26f..0000000000
--- a/smime/gui/smime-ui.glade
+++ /dev/null
@@ -1,2303 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkDialog" id="certificate-viewer-dialog">
- <property name="title" translatable="yes">dialog1</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="closebutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-7</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkNotebook" id="notebook1">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkFrame" id="frame1">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkVBox" id="vbox2">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="ssl-client-cert-verified-label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">SSL Client Certificate</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="ssl-server-cert-verified-label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">SSL Server Certificate</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="email-signer-cert-verified-label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Email Signer Certificate</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="email-recipient-cert-verified-label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Email Recipient Certificate</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;This certificate has been verified for the following uses:&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHSeparator" id="hseparator1">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkTable" id="table3">
- <property name="border_width">3</property>
- <property name="visible">True</property>
- <property name="n_rows">15</property>
- <property name="n_columns">2</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">0</property>
- <property name="column_spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Issued To&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">1</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label26">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Common Name (CN)</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label27">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Organization (O)</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label28">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Organizational Unit (OU)</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label29">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Serial Number</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label31">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Common Name (CN)</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label32">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Organization (O)</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label33">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Organizational Unit (OU)</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label36">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Issued On</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">10</property>
- <property name="bottom_attach">11</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label37">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Expires On</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">11</property>
- <property name="bottom_attach">12</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label30">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Issued By&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">1</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">2</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label35">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Fingerprints&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">2</property>
- <property name="top_attach">12</property>
- <property name="bottom_attach">13</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label38">
- <property name="visible">True</property>
- <property name="label" translatable="yes">SHA1 Fingerprint</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">13</property>
- <property name="bottom_attach">14</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label39">
- <property name="visible">True</property>
- <property name="label" translatable="yes">MD5 Fingerprint</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">6</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">14</property>
- <property name="bottom_attach">15</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="issued-to-o">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="issued-to-ou">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="issued-to-serial">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="issued-by-cn">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="issued-by-o">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="issued-by-ou">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="validity-issued-on">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">10</property>
- <property name="bottom_attach">11</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="validity-expires-on">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">11</property>
- <property name="bottom_attach">12</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="fingerprints-sha1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">13</property>
- <property name="bottom_attach">14</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="fingerprints-md5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">14</property>
- <property name="bottom_attach">15</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="issued-to-cn">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">&lt;Not Part of Certificate&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label34">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Validity&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">3</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">2</property>
- <property name="top_attach">9</property>
- <property name="bottom_attach">10</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">General</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox3">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkFrame" id="frame4">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="cert-hierarchy-treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label51">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Certificate Hierarchy&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame5">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow2">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="cert-fields-treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label52">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Certificate Fields&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame6">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow3">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTextView" id="cert-field-value-textview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="overwrite">False</property>
- <property name="accepts_tab">True</property>
- <property name="justification">GTK_JUSTIFY_LEFT</property>
- <property name="wrap_mode">GTK_WRAP_NONE</property>
- <property name="cursor_visible">False</property>
- <property name="pixels_above_lines">0</property>
- <property name="pixels_below_lines">0</property>
- <property name="pixels_inside_wrap">0</property>
- <property name="left_margin">0</property>
- <property name="right_margin">0</property>
- <property name="indent">0</property>
- <property name="text" translatable="yes"></property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label53">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Field Value&lt;/b&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Details</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkWindow" id="cert-manager-config-control">
- <property name="title" translatable="yes">window1</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-
- <child>
- <widget class="GtkNotebook" id="cert-manager-notebook">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
-
- <child>
- <widget class="GtkVBox" id="vbox4">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label57">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You have certificates from these organizations that identify you:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox6">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="yourcerts-treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkButton" id="your-view-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">View</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="your-backup-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="stock">gtk-save</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label59">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Backup</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="your-backup-all-button">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-save</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label58">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Backup All</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="your-import-button">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Import</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="your-delete-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-delete</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label54">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Your Certificates</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox5">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label60">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You have certificates on file that identify these people:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox7">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="contactcerts-treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox2">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkButton" id="contact-view-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">View</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="contact-edit-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment3">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image3">
- <property name="visible">True</property>
- <property name="stock">gtk-properties</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label61">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Edit</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="contact-import-button">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Import</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="contact-delete-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-delete</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label55">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Contact Certificates</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox6">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label62">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You have certificates on file that identify these certificate authorities:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox8">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow6">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="authoritycerts-treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox3">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkButton" id="authority-view-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">View</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="authority-edit-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image4">
- <property name="visible">True</property>
- <property name="stock">gtk-properties</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label63">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Edit</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="authority-import-button">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Import</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="authority-delete-button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-delete</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label56">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Authorities</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="ca-trust-dialog">
- <property name="title" translatable="yes">Certificate Authority Trust</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area2">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="view_certificate_button">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_View Certificate</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-3</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cancelbutton">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox9">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="ca-trust-label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="ssl_trust_checkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Trust this CA to identify web sites.</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="email_trust_checkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Trust this CA to identify email users.</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="objsign_trust_checkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Trust this CA to identify software developers.</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label66">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Before trusting this CA for any purpose, you should examine its certificate and its policy and procedures (if available).</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkWindow" id="cert_selector">
- <property name="title" translatable="yes">Dummy window only</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-
- <child>
- <widget class="GtkVBox" id="cert_selector_vbox">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox5">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label67">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Certificate</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkOptionMenu" id="cert_menu">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="history">-1</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame7">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow7">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTextView" id="cert_description">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="overwrite">False</property>
- <property name="accepts_tab">True</property>
- <property name="justification">GTK_JUSTIFY_LEFT</property>
- <property name="wrap_mode">GTK_WRAP_NONE</property>
- <property name="cursor_visible">True</property>
- <property name="pixels_above_lines">0</property>
- <property name="pixels_below_lines">0</property>
- <property name="pixels_inside_wrap">0</property>
- <property name="left_margin">0</property>
- <property name="right_margin">0</property>
- <property name="indent">0</property>
- <property name="text" translatable="yes"></property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label68">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Certificate details</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="cert-trust-dialog">
- <property name="title" translatable="yes">Email Certificate Trust Settings</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area3">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="editca">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Edit CA Trust</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-3</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="editok">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox8">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="trust-label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="cert-trust">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Trust the authenticity of this certificate</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="cert-notrust">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Do not trust the authenticity of this certificate</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">cert-trust</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>