Checking in moonshot-identity-dialog.c, since it gets compiled incorrectly on Centos 6 origin/centos6
authorDan Breslau <dbreslau@painless-security.com>
Wed, 2 Aug 2017 02:59:35 +0000 (03:59 +0100)
committerDan Breslau <dbreslau@painless-security.com>
Wed, 2 Aug 2017 02:59:35 +0000 (03:59 +0100)
.gitignore
src/moonshot-identity-dialog.c [new file with mode: 0644]

index fbc5605..04e6eb1 100755 (executable)
@@ -34,7 +34,6 @@ src/moonshot-custom-vbox.c
 src/moonshot-id.c
 src/moonshot-idcard-widget.c
 src/moonshot-idcard-store.c
-src/moonshot-identity-dialog.c
 src/moonshot-identity-request.c
 src/moonshot-identity-management-view.c
 src/moonshot-identity-manager-app.c
diff --git a/src/moonshot-identity-dialog.c b/src/moonshot-identity-dialog.c
new file mode 100644 (file)
index 0000000..a332a99
--- /dev/null
@@ -0,0 +1,1816 @@
+/* moonshot-identity-dialog.c generated by valac 0.10.4, the Vala compiler
+ * generated from moonshot-identity-dialog.vala, do not modify */
+
+/*
+ * Copyright (c) 2016, JANET(UK)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of JANET(UK) nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <atk/atk.h>
+#include <gio/gio.h>
+
+
+#define TYPE_IDENTITY_DIALOG (identity_dialog_get_type ())
+#define IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_DIALOG, IdentityDialog))
+#define IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_DIALOG, IdentityDialogClass))
+#define IS_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_DIALOG))
+#define IS_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_DIALOG))
+#define IDENTITY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_DIALOG, IdentityDialogClass))
+
+typedef struct _IdentityDialog IdentityDialog;
+typedef struct _IdentityDialogClass IdentityDialogClass;
+typedef struct _IdentityDialogPrivate IdentityDialogPrivate;
+
+#define TYPE_ID_CARD (id_card_get_type ())
+#define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
+#define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
+#define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
+#define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
+#define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
+
+typedef struct _IdCard IdCard;
+typedef struct _IdCardClass IdCardClass;
+
+#define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
+#define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
+#define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+#define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
+#define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
+#define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
+
+typedef struct _MoonshotLogger MoonshotLogger;
+typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
+#define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
+#define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+#define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
+#define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
+#define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
+
+typedef struct _IdentityManagerView IdentityManagerView;
+typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
+#define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
+#define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+#define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
+#define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
+#define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
+
+typedef struct _TrustAnchor TrustAnchor;
+typedef struct _TrustAnchorClass TrustAnchorClass;
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+
+#define TRUST_ANCHOR_TYPE_TRUST_ANCHOR_TYPE (trust_anchor_trust_anchor_type_get_type ())
+typedef struct _Block3Data Block3Data;
+typedef struct _Block5Data Block5Data;
+typedef struct _Block4Data Block4Data;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+struct _IdentityDialog {
+       GtkDialog parent_instance;
+       IdentityDialogPrivate * priv;
+       gboolean complete;
+       gboolean clear_trust_anchor;
+};
+
+struct _IdentityDialogClass {
+       GtkDialogClass parent_class;
+};
+
+struct _IdentityDialogPrivate {
+       GtkEntry* displayname_entry;
+       GtkLabel* displayname_label;
+       GtkEntry* realm_entry;
+       GtkLabel* realm_label;
+       GtkEntry* username_entry;
+       GtkLabel* username_label;
+       GtkEntry* password_entry;
+       GtkLabel* password_label;
+       GtkCheckButton* remember_checkbutton;
+       GtkLabel* message_label;
+       IdCard* card;
+       GeeArrayList* services;
+       GtkLabel* selected_item;
+};
+
+typedef enum  {
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_EMPTY,
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_CA_CERT,
+       TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT
+} TrustAnchorTrustAnchorType;
+
+struct _Block3Data {
+       int _ref_count_;
+       IdentityDialog * self;
+       gint ncolumns;
+       char* ta_label_prefix;
+       char* none;
+       GtkLabel* ta_label;
+       GtkAttachOptions fill_and_expand;
+       GtkTable* ta_table;
+       IdCard* id;
+};
+
+struct _Block5Data {
+       int _ref_count_;
+       Block4Data * _data4_;
+       GtkLabel* label;
+};
+
+struct _Block4Data {
+       int _ref_count_;
+       IdentityDialog * self;
+       GtkButton* remove_button;
+       GtkTable* services_table;
+};
+
+
+extern char* export_directory;
+char* export_directory = NULL;
+static GdkColor identity_dialog_white;
+static GdkColor identity_dialog_white = {0};
+static GdkColor identity_dialog_selected_color;
+static GdkColor identity_dialog_selected_color = {0};
+static MoonshotLogger* identity_dialog_logger;
+static MoonshotLogger* identity_dialog_logger = NULL;
+static gpointer identity_dialog_parent_class = NULL;
+
+#define CANCEL GTK_STOCK_CANCEL
+GType identity_dialog_get_type (void) G_GNUC_CONST;
+GType id_card_get_type (void) G_GNUC_CONST;
+#define IDENTITY_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IDENTITY_DIALOG, IdentityDialogPrivate))
+enum  {
+       IDENTITY_DIALOG_DUMMY_PROPERTY,
+       IDENTITY_DIALOG_DISPLAY_NAME,
+       IDENTITY_DIALOG_ISSUER,
+       IDENTITY_DIALOG_USERNAME,
+       IDENTITY_DIALOG_PASSWORD,
+       IDENTITY_DIALOG_STORE_PASSWORD
+};
+void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result);
+GType moonshot_logger_get_type (void) G_GNUC_CONST;
+MoonshotLogger* get_logger (const char* name);
+#define IDENTITY_DIALOG_displayname_labeltext _ ("Display Name")
+#define IDENTITY_DIALOG_realm_labeltext _ ("Realm")
+#define IDENTITY_DIALOG_username_labeltext _ ("Username")
+#define IDENTITY_DIALOG_password_labeltext _ ("Password")
+void identity_dialog_clear_password (IdentityDialog* self);
+void clear_password_entry (GtkEntry* entry);
+GeeArrayList* identity_dialog_get_services (IdentityDialog* self);
+GType identity_manager_view_get_type (void) G_GNUC_CONST;
+IdentityDialog* identity_dialog_new (IdentityManagerView* parent);
+IdentityDialog* identity_dialog_construct (GType object_type, IdentityManagerView* parent);
+IdentityDialog* identity_dialog_new_with_idcard (IdCard* a_card, const char* title, IdentityManagerView* parent);
+IdentityDialog* identity_dialog_construct_with_idcard (GType object_type, IdCard* a_card, const char* title, IdentityManagerView* parent);
+IdCard* id_card_new (void);
+IdCard* id_card_construct (GType object_type);
+const char* id_card_get_display_name (IdCard* self);
+const char* id_card_get_issuer (IdCard* self);
+const char* id_card_get_username (IdCard* self);
+gboolean id_card_get_store_password (IdCard* self);
+const char* id_card_get_password (IdCard* self);
+void set_atk_relation (GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship);
+static void identity_dialog_add_as_vbox (GtkBox* content_area, GtkLabel* label, GtkEntry* entry);
+static void identity_dialog_on_response (IdentityDialog* self, GtkDialog* source, gint response_id);
+static void _identity_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
+GeeArrayList* id_card_get_services (IdCard* self);
+static GtkWidget* identity_dialog_make_trust_anchor_box (IdentityDialog* self, IdCard* id);
+static GtkVBox* identity_dialog_make_services_vbox (IdentityDialog* self);
+gboolean id_card_is_no_identity (IdCard* self);
+static void _lambda9_ (IdentityDialog* self);
+void moonshot_logger_trace (MoonshotLogger* self, const char* message, GError* e);
+static void __lambda9__gtk_object_destroy (GtkObject* _sender, gpointer self);
+void set_bg_color (GtkWidget* w);
+GType trust_anchor_get_type (void) G_GNUC_CONST;
+TrustAnchor* id_card_get_trust_anchor (IdCard* self);
+gboolean trust_anchor_is_empty (TrustAnchor* self);
+static void _lambda5_ (GtkButton* w, Block3Data* _data3_);
+gboolean warning_dialog_confirm (GtkWindow* parent, const char* message, const char* dialog_name);
+static void __lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self);
+const char* trust_anchor_get_datetime_added (TrustAnchor* self);
+GType trust_anchor_trust_anchor_type_get_type (void) G_GNUC_CONST;
+TrustAnchorTrustAnchorType trust_anchor_get_anchor_type (TrustAnchor* self);
+GtkWidget* make_ta_fingerprint_widget (const char* server_cert, const char* label_text);
+const char* trust_anchor_get_server_cert (TrustAnchor* self);
+static void _lambda6_ (GtkButton* w, Block3Data* _data3_);
+static void identity_dialog_export_certificate (IdentityDialog* self, IdCard* id);
+static void __lambda6__gtk_button_clicked (GtkButton* _sender, gpointer self);
+const char* trust_anchor_get_subject (TrustAnchor* self);
+const char* trust_anchor_get_subject_alt (TrustAnchor* self);
+char* trust_anchor_get_expiration_date (TrustAnchor* self, char** err_out);
+static Block3Data* block3_data_ref (Block3Data* _data3_);
+static void block3_data_unref (Block3Data* _data3_);
+static char* identity_dialog_update_preamble (const char* preamble);
+static char* identity_dialog_update_message (const char* old_message, const char* new_item);
+static void identity_dialog_check_field (const char* field, GtkLabel* label, const char* fieldname, char** preamble, char** message);
+static gboolean identity_dialog_check_fields (IdentityDialog* self);
+gboolean identity_dialog_get_store_password (IdentityDialog* self);
+const char* identity_dialog_get_password (IdentityDialog* self);
+const char* identity_dialog_get_display_name (IdentityDialog* self);
+const char* identity_dialog_get_username (IdentityDialog* self);
+const char* identity_dialog_get_issuer (IdentityDialog* self);
+static gboolean _lambda7_ (Block5Data* _data5_);
+static gboolean __lambda7__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static Block5Data* block5_data_ref (Block5Data* _data5_);
+static void block5_data_unref (Block5Data* _data5_);
+static void _lambda8_ (GtkButton* remove_button, Block4Data* _data4_);
+static void __lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static Block4Data* block4_data_ref (Block4Data* _data4_);
+static void block4_data_unref (Block4Data* _data4_);
+const char* trust_anchor_get_ca_cert (TrustAnchor* self);
+static void identity_dialog_finalize (GObject* obj);
+static void identity_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static int _vala_strcmp0 (const char * str1, const char * str2);
+
+
+
+/**
+     * Don't leave passwords in memory longer than necessary.
+     * This may not actually erase the password data bytes, but it seems to be the best we can do.
+     */
+#line 103 "moonshot-identity-dialog.vala"
+void identity_dialog_clear_password (IdentityDialog* self) {
+#line 103 "moonshot-identity-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 104 "moonshot-identity-dialog.vala"
+       clear_password_entry (self->priv->password_entry);
+#line 280 "moonshot-identity-dialog.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+#line 107 "moonshot-identity-dialog.vala"
+GeeArrayList* identity_dialog_get_services (IdentityDialog* self) {
+#line 291 "moonshot-identity-dialog.c"
+       GeeArrayList* result = NULL;
+#line 107 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 295 "moonshot-identity-dialog.c"
+       result = _g_object_ref0 (self->priv->services);
+#line 109 "moonshot-identity-dialog.vala"
+       return result;
+#line 299 "moonshot-identity-dialog.c"
+}
+
+
+#line 112 "moonshot-identity-dialog.vala"
+IdentityDialog* identity_dialog_construct (GType object_type, IdentityManagerView* parent) {
+#line 305 "moonshot-identity-dialog.c"
+       IdentityDialog * self = NULL;
+#line 112 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (parent != NULL, NULL);
+#line 114 "moonshot-identity-dialog.vala"
+       self = (IdentityDialog*) identity_dialog_construct_with_idcard (object_type, NULL, _ ("Add ID Card"), parent);
+#line 311 "moonshot-identity-dialog.c"
+       return self;
+}
+
+
+#line 112 "moonshot-identity-dialog.vala"
+IdentityDialog* identity_dialog_new (IdentityManagerView* parent) {
+#line 112 "moonshot-identity-dialog.vala"
+       return identity_dialog_construct (TYPE_IDENTITY_DIALOG, parent);
+#line 320 "moonshot-identity-dialog.c"
+}
+
+
+#line 1212 "glib-2.0.vapi"
+static const char* string_to_string (const char* self) {
+#line 326 "moonshot-identity-dialog.c"
+       const char* result = NULL;
+#line 1212 "glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 330 "moonshot-identity-dialog.c"
+       result = self;
+#line 1213 "glib-2.0.vapi"
+       return result;
+#line 334 "moonshot-identity-dialog.c"
+}
+
+
+#line 393 "moonshot-identity-dialog.vala"
+static void _identity_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
+#line 340 "moonshot-identity-dialog.c"
+       identity_dialog_on_response (self, _sender, response_id);
+}
+
+
+#line 209 "moonshot-identity-dialog.vala"
+static void _lambda9_ (IdentityDialog* self) {
+#line 210 "moonshot-identity-dialog.vala"
+       moonshot_logger_trace (identity_dialog_logger, "Destroying IdentityDialog; clearing its password.", NULL);
+#line 211 "moonshot-identity-dialog.vala"
+       identity_dialog_clear_password (self);
+#line 351 "moonshot-identity-dialog.c"
+}
+
+
+#line 209 "moonshot-identity-dialog.vala"
+static void __lambda9__gtk_object_destroy (GtkObject* _sender, gpointer self) {
+#line 357 "moonshot-identity-dialog.c"
+       _lambda9_ (self);
+}
+
+
+#line 117 "moonshot-identity-dialog.vala"
+IdentityDialog* identity_dialog_construct_with_idcard (GType object_type, IdCard* a_card, const char* title, IdentityManagerView* parent) {
+#line 364 "moonshot-identity-dialog.c"
+       IdentityDialog * self;
+       gboolean is_new_card;
+       IdCard* _tmp0_;
+       IdCard* _tmp2_;
+       GtkBox* content_area;
+       char* _tmp3_;
+       GtkLabel* _tmp4_;
+       GtkEntry* _tmp5_;
+       char* _tmp6_;
+       GtkLabel* _tmp7_;
+       GtkEntry* _tmp8_;
+       char* _tmp9_;
+       GtkLabel* _tmp10_;
+       GtkEntry* _tmp11_;
+       char* _tmp12_;
+       GtkLabel* _tmp13_;
+       GtkCheckButton* _tmp14_;
+       GtkEntry* _tmp15_;
+       GtkLabel* _tmp16_;
+       GtkHBox* remember_hbox;
+       GtkHBox* _tmp17_;
+       GeeArrayList* _tmp18_;
+#line 117 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (title != NULL, NULL);
+#line 117 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (parent != NULL, NULL);
+#line 391 "moonshot-identity-dialog.c"
+       self = g_object_newv (object_type, 0, NULL);
+#line 119 "moonshot-identity-dialog.vala"
+       is_new_card = FALSE;
+#line 120 "moonshot-identity-dialog.vala"
+       if (a_card == NULL) {
+#line 122 "moonshot-identity-dialog.vala"
+               is_new_card = TRUE;
+#line 399 "moonshot-identity-dialog.c"
+       }
+#line 125 "moonshot-identity-dialog.vala"
+       _tmp0_ = _g_object_ref0 (a_card);
+#line 125 "moonshot-identity-dialog.vala"
+       if (_tmp0_ == NULL) {
+#line 405 "moonshot-identity-dialog.c"
+               IdCard* _tmp1_;
+#line 125 "moonshot-identity-dialog.vala"
+               _tmp0_ = (_tmp1_ = id_card_new (), _g_object_unref0 (_tmp0_), _tmp1_);
+#line 409 "moonshot-identity-dialog.c"
+       }
+#line 125 "moonshot-identity-dialog.vala"
+       self->priv->card = (_tmp2_ = _g_object_ref0 (_tmp0_), _g_object_unref0 (self->priv->card), _tmp2_);
+#line 126 "moonshot-identity-dialog.vala"
+       gtk_window_set_title ((GtkWindow*) self, title);
+#line 127 "moonshot-identity-dialog.vala"
+       gtk_window_set_modal ((GtkWindow*) self, TRUE);
+#line 128 "moonshot-identity-dialog.vala"
+       gtk_window_set_transient_for ((GtkWindow*) self, (GtkWindow*) parent);
+#line 130 "moonshot-identity-dialog.vala"
+       gtk_dialog_add_buttons ((GtkDialog*) self, CANCEL, GTK_RESPONSE_CANCEL, _ ("OK"), GTK_RESPONSE_OK, NULL);
+#line 131 "moonshot-identity-dialog.vala"
+       content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area ((GtkDialog*) self)));
+#line 133 "moonshot-identity-dialog.vala"
+       self->priv->displayname_label = (_tmp4_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp3_ = g_strconcat (string_to_string (IDENTITY_DIALOG_displayname_labeltext), ":", NULL))), _g_object_unref0 (self->priv->displayname_label), _tmp4_);
+#line 425 "moonshot-identity-dialog.c"
+       _g_free0 (_tmp3_);
+#line 134 "moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) self->priv->displayname_label, (float) 0, (float) 0.5);
+#line 135 "moonshot-identity-dialog.vala"
+       self->priv->displayname_entry = (_tmp5_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->displayname_entry), _tmp5_);
+#line 136 "moonshot-identity-dialog.vala"
+       gtk_entry_set_text (self->priv->displayname_entry, id_card_get_display_name (self->priv->card));
+#line 137 "moonshot-identity-dialog.vala"
+       gtk_entry_set_width_chars (self->priv->displayname_entry, 40);
+#line 139 "moonshot-identity-dialog.vala"
+       self->priv->realm_label = (_tmp7_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp6_ = g_strconcat (string_to_string (IDENTITY_DIALOG_realm_labeltext), ":", NULL))), _g_object_unref0 (self->priv->realm_label), _tmp7_);
+#line 437 "moonshot-identity-dialog.c"
+       _g_free0 (_tmp6_);
+#line 140 "moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) self->priv->realm_label, (float) 0, (float) 0.5);
+#line 141 "moonshot-identity-dialog.vala"
+       self->priv->realm_entry = (_tmp8_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->realm_entry), _tmp8_);
+#line 142 "moonshot-identity-dialog.vala"
+       gtk_entry_set_text (self->priv->realm_entry, id_card_get_issuer (self->priv->card));
+#line 143 "moonshot-identity-dialog.vala"
+       gtk_entry_set_width_chars (self->priv->realm_entry, 60);
+#line 145 "moonshot-identity-dialog.vala"
+       self->priv->username_label = (_tmp10_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp9_ = g_strconcat (string_to_string (IDENTITY_DIALOG_username_labeltext), ":", NULL))), _g_object_unref0 (self->priv->username_label), _tmp10_);
+#line 449 "moonshot-identity-dialog.c"
+       _g_free0 (_tmp9_);
+#line 146 "moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) self->priv->username_label, (float) 0, (float) 0.5);
+#line 147 "moonshot-identity-dialog.vala"
+       self->priv->username_entry = (_tmp11_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->username_entry), _tmp11_);
+#line 148 "moonshot-identity-dialog.vala"
+       gtk_entry_set_text (self->priv->username_entry, id_card_get_username (self->priv->card));
+#line 149 "moonshot-identity-dialog.vala"
+       gtk_entry_set_width_chars (self->priv->username_entry, 40);
+#line 151 "moonshot-identity-dialog.vala"
+       self->priv->password_label = (_tmp13_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp12_ = g_strconcat (string_to_string (IDENTITY_DIALOG_password_labeltext), ":", NULL))), _g_object_unref0 (self->priv->password_label), _tmp13_);
+#line 461 "moonshot-identity-dialog.c"
+       _g_free0 (_tmp12_);
+#line 152 "moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) self->priv->password_label, (float) 0, (float) 0.5);
+#line 154 "moonshot-identity-dialog.vala"
+       self->priv->remember_checkbutton = (_tmp14_ = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new_with_label (_ ("Remember password"))), _g_object_unref0 (self->priv->remember_checkbutton), _tmp14_);
+#line 155 "moonshot-identity-dialog.vala"
+       gtk_toggle_button_set_active ((GtkToggleButton*) self->priv->remember_checkbutton, id_card_get_store_password (self->priv->card));
+#line 157 "moonshot-identity-dialog.vala"
+       self->priv->password_entry = (_tmp15_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->password_entry), _tmp15_);
+#line 158 "moonshot-identity-dialog.vala"
+       gtk_entry_set_invisible_char (self->priv->password_entry, (gunichar) '*');
+#line 159 "moonshot-identity-dialog.vala"
+       gtk_entry_set_visibility (self->priv->password_entry, FALSE);
+#line 160 "moonshot-identity-dialog.vala"
+       gtk_entry_set_width_chars (self->priv->password_entry, 40);
+#line 161 "moonshot-identity-dialog.vala"
+       gtk_entry_set_text (self->priv->password_entry, id_card_get_password (self->priv->card));
+#line 163 "moonshot-identity-dialog.vala"
+       self->priv->message_label = (_tmp16_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), _g_object_unref0 (self->priv->message_label), _tmp16_);
+#line 164 "moonshot-identity-dialog.vala"
+       gtk_widget_set_visible ((GtkWidget*) self->priv->message_label, FALSE);
+#line 166 "moonshot-identity-dialog.vala"
+       set_atk_relation ((GtkWidget*) self->priv->displayname_label, (GtkWidget*) self->priv->displayname_entry, ATK_RELATION_LABEL_FOR);
+#line 167 "moonshot-identity-dialog.vala"
+       set_atk_relation ((GtkWidget*) self->priv->realm_label, (GtkWidget*) self->priv->realm_entry, ATK_RELATION_LABEL_FOR);
+#line 168 "moonshot-identity-dialog.vala"
+       set_atk_relation ((GtkWidget*) self->priv->username_label, (GtkWidget*) self->priv->username_entry, ATK_RELATION_LABEL_FOR);
+#line 169 "moonshot-identity-dialog.vala"
+       set_atk_relation ((GtkWidget*) self->priv->password_label, (GtkWidget*) self->priv->password_entry, ATK_RELATION_LABEL_FOR);
+#line 171 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start (content_area, (GtkWidget*) self->priv->message_label, FALSE, FALSE, (guint) 6);
+#line 172 "moonshot-identity-dialog.vala"
+       identity_dialog_add_as_vbox (content_area, self->priv->displayname_label, self->priv->displayname_entry);
+#line 173 "moonshot-identity-dialog.vala"
+       identity_dialog_add_as_vbox (content_area, self->priv->username_label, self->priv->username_entry);
+#line 174 "moonshot-identity-dialog.vala"
+       identity_dialog_add_as_vbox (content_area, self->priv->realm_label, self->priv->realm_entry);
+#line 175 "moonshot-identity-dialog.vala"
+       identity_dialog_add_as_vbox (content_area, self->priv->password_label, self->priv->password_entry);
+#line 177 "moonshot-identity-dialog.vala"
+       remember_hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 40));
+#line 178 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) remember_hbox, (GtkWidget*) (_tmp17_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0))), FALSE, FALSE, (guint) 0);
+#line 505 "moonshot-identity-dialog.c"
+       _g_object_unref0 (_tmp17_);
+#line 179 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) remember_hbox, (GtkWidget*) self->priv->remember_checkbutton, FALSE, FALSE, (guint) 0);
+#line 180 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start (content_area, (GtkWidget*) remember_hbox, FALSE, FALSE, (guint) 2);
+#line 182 "moonshot-identity-dialog.vala"
+       g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _identity_dialog_on_response_gtk_dialog_response, self, 0);
+#line 183 "moonshot-identity-dialog.vala"
+       gtk_container_set_border_width ((GtkContainer*) content_area, (guint) 6);
+#line 185 "moonshot-identity-dialog.vala"
+       self->priv->services = (_tmp18_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL), _g_object_unref0 (self->priv->services), _tmp18_);
+#line 186 "moonshot-identity-dialog.vala"
+       gee_abstract_collection_add_all ((GeeAbstractCollection*) self->priv->services, (GeeCollection*) id_card_get_services (self->priv->card));
+#line 188 "moonshot-identity-dialog.vala"
+       if (!is_new_card) {
+#line 521 "moonshot-identity-dialog.c"
+               GtkWidget* trust_anchor_box;
+               GtkVBox* services_vbox;
+               GtkAlignment* services_vbox_bottom_spacer;
+#line 190 "moonshot-identity-dialog.vala"
+               trust_anchor_box = identity_dialog_make_trust_anchor_box (self, self->priv->card);
+#line 191 "moonshot-identity-dialog.vala"
+               gtk_box_pack_start (content_area, trust_anchor_box, FALSE, FALSE, (guint) 15);
+#line 193 "moonshot-identity-dialog.vala"
+               services_vbox = identity_dialog_make_services_vbox (self);
+#line 194 "moonshot-identity-dialog.vala"
+               gtk_box_pack_start (content_area, (GtkWidget*) services_vbox, TRUE, TRUE, 0);
+#line 195 "moonshot-identity-dialog.vala"
+               services_vbox_bottom_spacer = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0));
+#line 196 "moonshot-identity-dialog.vala"
+               gtk_widget_set_size_request ((GtkWidget*) services_vbox_bottom_spacer, 0, 12);
+#line 197 "moonshot-identity-dialog.vala"
+               gtk_box_pack_start (content_area, (GtkWidget*) services_vbox_bottom_spacer, FALSE, FALSE, (guint) 0);
+#line 539 "moonshot-identity-dialog.c"
+               _g_object_unref0 (services_vbox_bottom_spacer);
+               _g_object_unref0 (services_vbox);
+               _g_object_unref0 (trust_anchor_box);
+       }
+#line 200 "moonshot-identity-dialog.vala"
+       if (id_card_is_no_identity (self->priv->card)) {
+#line 202 "moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) self->priv->displayname_entry, FALSE);
+#line 203 "moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) self->priv->realm_entry, FALSE);
+#line 204 "moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) self->priv->username_entry, FALSE);
+#line 205 "moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) self->priv->password_entry, FALSE);
+#line 206 "moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) self->priv->remember_checkbutton, FALSE);
+#line 556 "moonshot-identity-dialog.c"
+       }
+#line 209 "moonshot-identity-dialog.vala"
+       g_signal_connect_object ((GtkObject*) self, "destroy", (GCallback) __lambda9__gtk_object_destroy, self, 0);
+#line 215 "moonshot-identity-dialog.vala"
+       gtk_container_set_border_width ((GtkContainer*) self, (guint) 6);
+#line 216 "moonshot-identity-dialog.vala"
+       gtk_window_set_resizable ((GtkWindow*) self, FALSE);
+#line 217 "moonshot-identity-dialog.vala"
+       set_bg_color ((GtkWidget*) self);
+#line 218 "moonshot-identity-dialog.vala"
+       gtk_widget_show_all ((GtkWidget*) self);
+#line 568 "moonshot-identity-dialog.c"
+       _g_object_unref0 (remember_hbox);
+       _g_object_unref0 (content_area);
+       _g_object_unref0 (_tmp0_);
+       return self;
+}
+
+
+#line 117 "moonshot-identity-dialog.vala"
+IdentityDialog* identity_dialog_new_with_idcard (IdCard* a_card, const char* title, IdentityManagerView* parent) {
+#line 117 "moonshot-identity-dialog.vala"
+       return identity_dialog_construct_with_idcard (TYPE_IDENTITY_DIALOG, a_card, title, parent);
+#line 580 "moonshot-identity-dialog.c"
+}
+
+
+#line 248 "moonshot-identity-dialog.vala"
+static void _lambda5_ (GtkButton* w, Block3Data* _data3_) {
+#line 586 "moonshot-identity-dialog.c"
+       IdentityDialog * self;
+       char* _tmp0_;
+       char* _tmp1_;
+       char* _tmp2_;
+       char* _tmp3_;
+       gboolean _tmp4_;
+       gboolean _result_;
+       self = _data3_->self;
+#line 248 "moonshot-identity-dialog.vala"
+       g_return_if_fail (w != NULL);
+#line 249 "moonshot-identity-dialog.vala"
+       _result_ = (_tmp4_ = warning_dialog_confirm ((GtkWindow*) self, _tmp3_ = g_strconcat (_tmp2_ = g_markup_printf_escaped (_tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("<span font-weight='heavy'>", _ ("You are about to clear the trust anchor fingerprint for '%s'."), NULL), "</span>", NULL), id_card_get_display_name (_data3_->id)), _ ("\n\nAre you sure you want to do this?"), NULL), "clear_trust_anchor"), _g_free0 (_tmp3_), _g_free0 (_tmp2_), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp4_);
+#line 258 "moonshot-identity-dialog.vala"
+       if (_result_) {
+#line 601 "moonshot-identity-dialog.c"
+               GList* children;
+               char* _tmp5_;
+#line 260 "moonshot-identity-dialog.vala"
+               self->clear_trust_anchor = TRUE;
+#line 265 "moonshot-identity-dialog.vala"
+               children = gtk_container_get_children ((GtkContainer*) _data3_->ta_table);
+#line 608 "moonshot-identity-dialog.c"
+               {
+                       GList* child_collection;
+                       GList* child_it;
+#line 266 "moonshot-identity-dialog.vala"
+                       child_collection = children;
+#line 614 "moonshot-identity-dialog.c"
+                       for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
+                               GtkWidget* child;
+#line 266 "moonshot-identity-dialog.vala"
+                               child = (GtkWidget*) child_it->data;
+#line 619 "moonshot-identity-dialog.c"
+                               {
+#line 267 "moonshot-identity-dialog.vala"
+                                       gtk_container_remove ((GtkContainer*) _data3_->ta_table, child);
+#line 623 "moonshot-identity-dialog.c"
+                               }
+                       }
+               }
+#line 270 "moonshot-identity-dialog.vala"
+               gtk_table_resize (_data3_->ta_table, (guint) 1, (guint) _data3_->ncolumns);
+#line 271 "moonshot-identity-dialog.vala"
+               gtk_label_set_text (_data3_->ta_label, _tmp5_ = g_strconcat (_data3_->ta_label_prefix, _data3_->none, NULL));
+#line 631 "moonshot-identity-dialog.c"
+               _g_free0 (_tmp5_);
+#line 272 "moonshot-identity-dialog.vala"
+               gtk_table_attach (_data3_->ta_table, (GtkWidget*) _data3_->ta_label, (guint) 0, (guint) 1, (guint) 0, (guint) 1, _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 0, (guint) 0);
+#line 635 "moonshot-identity-dialog.c"
+               _g_list_free0 (children);
+       }
+}
+
+
+#line 248 "moonshot-identity-dialog.vala"
+static void __lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 643 "moonshot-identity-dialog.c"
+       _lambda5_ (_sender, self);
+}
+
+
+#line 296 "moonshot-identity-dialog.vala"
+static void _lambda6_ (GtkButton* w, Block3Data* _data3_) {
+#line 650 "moonshot-identity-dialog.c"
+       IdentityDialog * self;
+       self = _data3_->self;
+#line 296 "moonshot-identity-dialog.vala"
+       g_return_if_fail (w != NULL);
+#line 296 "moonshot-identity-dialog.vala"
+       identity_dialog_export_certificate (self, _data3_->id);
+#line 657 "moonshot-identity-dialog.c"
+}
+
+
+#line 296 "moonshot-identity-dialog.vala"
+static void __lambda6__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 663 "moonshot-identity-dialog.c"
+       _lambda6_ (_sender, self);
+}
+
+
+static Block3Data* block3_data_ref (Block3Data* _data3_) {
+       g_atomic_int_inc (&_data3_->_ref_count_);
+       return _data3_;
+}
+
+
+static void block3_data_unref (Block3Data* _data3_) {
+       if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
+               _g_object_unref0 (_data3_->self);
+               _g_object_unref0 (_data3_->ta_table);
+               _g_object_unref0 (_data3_->ta_label);
+               _g_free0 (_data3_->none);
+               _g_free0 (_data3_->ta_label_prefix);
+               _g_object_unref0 (_data3_->id);
+               g_slice_free (Block3Data, _data3_);
+       }
+}
+
+
+#line 221 "moonshot-identity-dialog.vala"
+static GtkWidget* identity_dialog_make_trust_anchor_box (IdentityDialog* self, IdCard* id) {
+#line 689 "moonshot-identity-dialog.c"
+       GtkWidget* result = NULL;
+       Block3Data* _data3_;
+       gint nrows;
+       GtkHBox* trust_anchor_box;
+       const char* _tmp0_;
+       char* _tmp1_;
+       GtkLabel* _tmp2_;
+       GtkAttachOptions fill;
+       gint row;
+       GtkButton* ta_clear_button;
+       char* _tmp3_;
+       GtkLabel* _tmp4_;
+       GtkLabel* added_label;
+#line 221 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 221 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (id != NULL, NULL);
+#line 707 "moonshot-identity-dialog.c"
+       _data3_ = g_slice_new0 (Block3Data);
+       _data3_->_ref_count_ = 1;
+       _data3_->self = g_object_ref (self);
+       _data3_->id = _g_object_ref0 (id);
+#line 224 "moonshot-identity-dialog.vala"
+       nrows = 7;
+#line 714 "moonshot-identity-dialog.c"
+       _data3_->ncolumns = 2;
+       _data3_->ta_label_prefix = g_strdup (_ ("Trust anchor: "));
+       _data3_->none = g_strdup (_ ("None"));
+#line 229 "moonshot-identity-dialog.vala"
+       trust_anchor_box = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
+#line 720 "moonshot-identity-dialog.c"
+       _tmp0_ = NULL;
+#line 232 "moonshot-identity-dialog.vala"
+       if (trust_anchor_is_empty (id_card_get_trust_anchor (_data3_->id))) {
+#line 232 "moonshot-identity-dialog.vala"
+               _tmp0_ = _data3_->none;
+#line 726 "moonshot-identity-dialog.c"
+       } else {
+#line 232 "moonshot-identity-dialog.vala"
+               _tmp0_ = _ ("Enterprise provisioned");
+#line 730 "moonshot-identity-dialog.c"
+       }
+       _data3_->ta_label = (_tmp2_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp1_ = g_strconcat (_data3_->ta_label_prefix, _tmp0_, NULL))), _g_free0 (_tmp1_), _tmp2_);
+#line 233 "moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) _data3_->ta_label, (float) 0, 0.5f);
+#line 235 "moonshot-identity-dialog.vala"
+       if (trust_anchor_is_empty (id_card_get_trust_anchor (_data3_->id))) {
+#line 236 "moonshot-identity-dialog.vala"
+               gtk_box_pack_start ((GtkBox*) trust_anchor_box, (GtkWidget*) _data3_->ta_label, FALSE, FALSE, (guint) 0);
+#line 739 "moonshot-identity-dialog.c"
+               result = (GtkWidget*) trust_anchor_box;
+               block3_data_unref (_data3_);
+#line 237 "moonshot-identity-dialog.vala"
+               return result;
+#line 744 "moonshot-identity-dialog.c"
+       }
+       _data3_->fill_and_expand = GTK_EXPAND | GTK_FILL;
+#line 242 "moonshot-identity-dialog.vala"
+       fill = GTK_FILL;
+#line 749 "moonshot-identity-dialog.c"
+       _data3_->ta_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) nrows, (guint) _data3_->ncolumns, FALSE));
+#line 245 "moonshot-identity-dialog.vala"
+       row = 0;
+#line 247 "moonshot-identity-dialog.vala"
+       ta_clear_button = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Clear Trust Anchor")));
+#line 248 "moonshot-identity-dialog.vala"
+       g_signal_connect_data (ta_clear_button, "clicked", (GCallback) __lambda5__gtk_button_clicked, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
+#line 279 "moonshot-identity-dialog.vala"
+       gtk_table_attach (_data3_->ta_table, (GtkWidget*) _data3_->ta_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 0, (guint) 0);
+#line 280 "moonshot-identity-dialog.vala"
+       gtk_table_attach (_data3_->ta_table, (GtkWidget*) ta_clear_button, (guint) 1, (guint) 2, (guint) row, (guint) (row + 1), fill, fill, (guint) 0, (guint) 0);
+#line 281 "moonshot-identity-dialog.vala"
+       row++;
+#line 283 "moonshot-identity-dialog.vala"
+       added_label = (_tmp4_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ (_tmp3_ = g_strconcat ("Added: ", trust_anchor_get_datetime_added (id_card_get_trust_anchor (_data3_->id)), NULL)))), _g_free0 (_tmp3_), _tmp4_);
+#line 284 "moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) added_label, (float) 0, 0.5f);
+#line 285 "moonshot-identity-dialog.vala"
+       gtk_table_attach (_data3_->ta_table, (GtkWidget*) added_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 20, (guint) 5);
+#line 286 "moonshot-identity-dialog.vala"
+       row++;
+#line 288 "moonshot-identity-dialog.vala"
+       if (trust_anchor_get_anchor_type (id_card_get_trust_anchor (_data3_->id)) == TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT) {
+#line 773 "moonshot-identity-dialog.c"
+               GtkWidget* fingerprint;
+#line 289 "moonshot-identity-dialog.vala"
+               fingerprint = make_ta_fingerprint_widget (trust_anchor_get_server_cert (id_card_get_trust_anchor (_data3_->id)), NULL);
+#line 290 "moonshot-identity-dialog.vala"
+               gtk_table_attach (_data3_->ta_table, fingerprint, (guint) 0, (guint) 2, (guint) row, (guint) (row + 2), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 5, (guint) 5);
+#line 779 "moonshot-identity-dialog.c"
+               _g_object_unref0 (fingerprint);
+       } else {
+               GtkLabel* ca_cert_label;
+               GtkButton* export_button;
+               char* _tmp9_;
+               char* _tmp10_;
+               GtkLabel* _tmp11_;
+               GtkLabel* expiration_label;
+               GtkLabel* constraint_label;
+#line 293 "moonshot-identity-dialog.vala"
+               ca_cert_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("CA Certificate:")));
+#line 294 "moonshot-identity-dialog.vala"
+               gtk_misc_set_alignment ((GtkMisc*) ca_cert_label, (float) 0, 0.5f);
+#line 295 "moonshot-identity-dialog.vala"
+               export_button = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Export Certificate")));
+#line 296 "moonshot-identity-dialog.vala"
+               g_signal_connect_data (export_button, "clicked", (GCallback) __lambda6__gtk_button_clicked, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
+#line 298 "moonshot-identity-dialog.vala"
+               gtk_table_attach (_data3_->ta_table, (GtkWidget*) ca_cert_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 20, (guint) 0);
+#line 299 "moonshot-identity-dialog.vala"
+               gtk_table_attach (_data3_->ta_table, (GtkWidget*) export_button, (guint) 1, (guint) 2, (guint) row, (guint) (row + 1), fill, fill, (guint) 0, (guint) 0);
+#line 300 "moonshot-identity-dialog.vala"
+               row++;
+#line 302 "moonshot-identity-dialog.vala"
+               if (_vala_strcmp0 (trust_anchor_get_subject (id_card_get_trust_anchor (_data3_->id)), "") != 0) {
+#line 805 "moonshot-identity-dialog.c"
+                       char* _tmp5_;
+                       GtkLabel* _tmp6_;
+                       GtkLabel* subject_label;
+#line 303 "moonshot-identity-dialog.vala"
+                       subject_label = (_tmp6_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp5_ = g_strconcat (_ ("Subject: "), trust_anchor_get_subject (id_card_get_trust_anchor (_data3_->id)), NULL))), _g_free0 (_tmp5_), _tmp6_);
+#line 304 "moonshot-identity-dialog.vala"
+                       gtk_misc_set_alignment ((GtkMisc*) subject_label, (float) 0, 0.5f);
+#line 305 "moonshot-identity-dialog.vala"
+                       gtk_table_attach (_data3_->ta_table, (GtkWidget*) subject_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 40, (guint) 5);
+#line 306 "moonshot-identity-dialog.vala"
+                       row++;
+#line 817 "moonshot-identity-dialog.c"
+                       _g_object_unref0 (subject_label);
+               }
+#line 309 "moonshot-identity-dialog.vala"
+               if (_vala_strcmp0 (trust_anchor_get_subject_alt (id_card_get_trust_anchor (_data3_->id)), "") != 0) {
+#line 822 "moonshot-identity-dialog.c"
+                       char* _tmp7_;
+                       GtkLabel* _tmp8_;
+                       GtkLabel* subject_alt_label;
+#line 310 "moonshot-identity-dialog.vala"
+                       subject_alt_label = (_tmp8_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp7_ = g_strconcat (_ ("Subject-Alt: "), trust_anchor_get_subject_alt (id_card_get_trust_anchor (_data3_->id)), NULL))), _g_free0 (_tmp7_), _tmp8_);
+#line 311 "moonshot-identity-dialog.vala"
+                       gtk_misc_set_alignment ((GtkMisc*) subject_alt_label, (float) 0, 0.5f);
+#line 312 "moonshot-identity-dialog.vala"
+                       gtk_table_attach (_data3_->ta_table, (GtkWidget*) subject_alt_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 40, (guint) 5);
+#line 313 "moonshot-identity-dialog.vala"
+                       row++;
+#line 834 "moonshot-identity-dialog.c"
+                       _g_object_unref0 (subject_alt_label);
+               }
+#line 316 "moonshot-identity-dialog.vala"
+               expiration_label = (_tmp11_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp10_ = g_strconcat (_ ("Expiration date: "), _tmp9_ = trust_anchor_get_expiration_date (id_card_get_trust_anchor (_data3_->id), NULL), NULL))), _g_free0 (_tmp10_), _g_free0 (_tmp9_), _tmp11_);
+#line 317 "moonshot-identity-dialog.vala"
+               gtk_misc_set_alignment ((GtkMisc*) expiration_label, (float) 0, 0.5f);
+#line 318 "moonshot-identity-dialog.vala"
+               gtk_table_attach (_data3_->ta_table, (GtkWidget*) expiration_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 40, (guint) 5);
+#line 319 "moonshot-identity-dialog.vala"
+               row++;
+#line 322 "moonshot-identity-dialog.vala"
+               constraint_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Constraint: ")));
+#line 323 "moonshot-identity-dialog.vala"
+               gtk_misc_set_alignment ((GtkMisc*) constraint_label, (float) 0, 0.5f);
+#line 324 "moonshot-identity-dialog.vala"
+               gtk_table_attach (_data3_->ta_table, (GtkWidget*) constraint_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 20, (guint) 0);
+#line 325 "moonshot-identity-dialog.vala"
+               row++;
+#line 853 "moonshot-identity-dialog.c"
+               _g_object_unref0 (constraint_label);
+               _g_object_unref0 (expiration_label);
+               _g_object_unref0 (export_button);
+               _g_object_unref0 (ca_cert_label);
+       }
+#line 328 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) trust_anchor_box, (GtkWidget*) _data3_->ta_table, FALSE, FALSE, (guint) 0);
+#line 861 "moonshot-identity-dialog.c"
+       result = (GtkWidget*) trust_anchor_box;
+       _g_object_unref0 (added_label);
+       _g_object_unref0 (ta_clear_button);
+       block3_data_unref (_data3_);
+#line 329 "moonshot-identity-dialog.vala"
+       return result;
+#line 868 "moonshot-identity-dialog.c"
+}
+
+
+#line 332 "moonshot-identity-dialog.vala"
+static void identity_dialog_add_as_vbox (GtkBox* content_area, GtkLabel* label, GtkEntry* entry) {
+#line 874 "moonshot-identity-dialog.c"
+       GtkVBox* vbox;
+       GtkHBox* hbox;
+#line 332 "moonshot-identity-dialog.vala"
+       g_return_if_fail (content_area != NULL);
+#line 332 "moonshot-identity-dialog.vala"
+       g_return_if_fail (label != NULL);
+#line 332 "moonshot-identity-dialog.vala"
+       g_return_if_fail (entry != NULL);
+#line 334 "moonshot-identity-dialog.vala"
+       vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 2));
+#line 336 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
+#line 337 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) entry, FALSE, FALSE, (guint) 0);
+#line 340 "moonshot-identity-dialog.vala"
+       hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
+#line 341 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox, FALSE, FALSE, (guint) 0);
+#line 342 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start (content_area, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
+#line 895 "moonshot-identity-dialog.c"
+       _g_object_unref0 (hbox);
+       _g_object_unref0 (vbox);
+}
+
+
+#line 345 "moonshot-identity-dialog.vala"
+static char* identity_dialog_update_preamble (const char* preamble) {
+#line 903 "moonshot-identity-dialog.c"
+       char* result = NULL;
+#line 345 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (preamble != NULL, NULL);
+#line 347 "moonshot-identity-dialog.vala"
+       if (_vala_strcmp0 (preamble, "") == 0) {
+#line 909 "moonshot-identity-dialog.c"
+               result = g_strdup (_ ("Missing required field: "));
+#line 348 "moonshot-identity-dialog.vala"
+               return result;
+#line 913 "moonshot-identity-dialog.c"
+       }
+       result = g_strdup (_ ("Missing required fields: "));
+#line 349 "moonshot-identity-dialog.vala"
+       return result;
+#line 918 "moonshot-identity-dialog.c"
+}
+
+
+#line 352 "moonshot-identity-dialog.vala"
+static char* identity_dialog_update_message (const char* old_message, const char* new_item) {
+#line 924 "moonshot-identity-dialog.c"
+       char* result = NULL;
+       char* message;
+#line 352 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (old_message != NULL, NULL);
+#line 352 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (new_item != NULL, NULL);
+#line 931 "moonshot-identity-dialog.c"
+       message = NULL;
+#line 355 "moonshot-identity-dialog.vala"
+       if (_vala_strcmp0 (old_message, "") == 0) {
+#line 935 "moonshot-identity-dialog.c"
+               char* _tmp0_;
+#line 356 "moonshot-identity-dialog.vala"
+               message = (_tmp0_ = g_strdup (new_item), _g_free0 (message), _tmp0_);
+#line 939 "moonshot-identity-dialog.c"
+       } else {
+               char* _tmp1_;
+               char* _tmp2_;
+#line 358 "moonshot-identity-dialog.vala"
+               message = (_tmp2_ = g_strconcat (_tmp1_ = g_strconcat (old_message, ", ", NULL), new_item, NULL), _g_free0 (message), _tmp2_);
+#line 945 "moonshot-identity-dialog.c"
+               _g_free0 (_tmp1_);
+       }
+       result = message;
+#line 359 "moonshot-identity-dialog.vala"
+       return result;
+#line 951 "moonshot-identity-dialog.c"
+}
+
+
+#line 362 "moonshot-identity-dialog.vala"
+static void identity_dialog_check_field (const char* field, GtkLabel* label, const char* fieldname, char** preamble, char** message) {
+#line 957 "moonshot-identity-dialog.c"
+       char* _tmp1_;
+       char* _tmp2_;
+       char* _tmp3_;
+#line 362 "moonshot-identity-dialog.vala"
+       g_return_if_fail (field != NULL);
+#line 362 "moonshot-identity-dialog.vala"
+       g_return_if_fail (label != NULL);
+#line 362 "moonshot-identity-dialog.vala"
+       g_return_if_fail (fieldname != NULL);
+#line 362 "moonshot-identity-dialog.vala"
+       g_return_if_fail (preamble != NULL);
+#line 362 "moonshot-identity-dialog.vala"
+       g_return_if_fail (message != NULL);
+#line 364 "moonshot-identity-dialog.vala"
+       if (_vala_strcmp0 (field, "") != 0) {
+#line 973 "moonshot-identity-dialog.c"
+               char* _tmp0_;
+#line 365 "moonshot-identity-dialog.vala"
+               gtk_label_set_markup (label, _tmp0_ = g_strconcat (string_to_string (fieldname), ":", NULL));
+#line 977 "moonshot-identity-dialog.c"
+               _g_free0 (_tmp0_);
+#line 366 "moonshot-identity-dialog.vala"
+               return;
+#line 981 "moonshot-identity-dialog.c"
+       }
+#line 368 "moonshot-identity-dialog.vala"
+       gtk_label_set_markup (label, _tmp1_ = g_strconcat ("<span foreground=\"red\">", string_to_string (fieldname), ":</span>", NULL));
+#line 985 "moonshot-identity-dialog.c"
+       _g_free0 (_tmp1_);
+#line 369 "moonshot-identity-dialog.vala"
+       *preamble = (_tmp2_ = identity_dialog_update_preamble (*preamble), _g_free0 (*preamble), _tmp2_);
+#line 370 "moonshot-identity-dialog.vala"
+       *message = (_tmp3_ = identity_dialog_update_message (*message, fieldname), _g_free0 (*message), _tmp3_);
+#line 991 "moonshot-identity-dialog.c"
+}
+
+
+#line 373 "moonshot-identity-dialog.vala"
+static gboolean identity_dialog_check_fields (IdentityDialog* self) {
+#line 997 "moonshot-identity-dialog.c"
+       gboolean result = FALSE;
+       char* preamble;
+       char* message;
+       const char* _tmp0_;
+       char* password_test;
+#line 373 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, FALSE);
+#line 375 "moonshot-identity-dialog.vala"
+       preamble = g_strdup ("");
+#line 376 "moonshot-identity-dialog.vala"
+       message = g_strdup ("");
+#line 1009 "moonshot-identity-dialog.c"
+       _tmp0_ = NULL;
+#line 377 "moonshot-identity-dialog.vala"
+       if (identity_dialog_get_store_password (self)) {
+#line 377 "moonshot-identity-dialog.vala"
+               _tmp0_ = identity_dialog_get_password (self);
+#line 1015 "moonshot-identity-dialog.c"
+       } else {
+#line 377 "moonshot-identity-dialog.vala"
+               _tmp0_ = "not required";
+#line 1019 "moonshot-identity-dialog.c"
+       }
+#line 377 "moonshot-identity-dialog.vala"
+       password_test = g_strdup (_tmp0_);
+#line 378 "moonshot-identity-dialog.vala"
+       if (!id_card_is_no_identity (self->priv->card)) {
+#line 380 "moonshot-identity-dialog.vala"
+               identity_dialog_check_field (identity_dialog_get_display_name (self), self->priv->displayname_label, IDENTITY_DIALOG_displayname_labeltext, &preamble, &message);
+#line 381 "moonshot-identity-dialog.vala"
+               identity_dialog_check_field (identity_dialog_get_username (self), self->priv->username_label, IDENTITY_DIALOG_username_labeltext, &preamble, &message);
+#line 382 "moonshot-identity-dialog.vala"
+               identity_dialog_check_field (identity_dialog_get_issuer (self), self->priv->realm_label, IDENTITY_DIALOG_realm_labeltext, &preamble, &message);
+#line 383 "moonshot-identity-dialog.vala"
+               identity_dialog_check_field (password_test, self->priv->password_label, IDENTITY_DIALOG_password_labeltext, &preamble, &message);
+#line 1033 "moonshot-identity-dialog.c"
+       }
+#line 385 "moonshot-identity-dialog.vala"
+       if (_vala_strcmp0 (message, "") != 0) {
+#line 1037 "moonshot-identity-dialog.c"
+               char* _tmp1_;
+#line 386 "moonshot-identity-dialog.vala"
+               gtk_widget_set_visible ((GtkWidget*) self->priv->message_label, TRUE);
+#line 387 "moonshot-identity-dialog.vala"
+               gtk_label_set_markup (self->priv->message_label, _tmp1_ = g_strconcat ("<span foreground=\"red\">", string_to_string (preamble), string_to_string (message), "</span>", NULL));
+#line 1043 "moonshot-identity-dialog.c"
+               _g_free0 (_tmp1_);
+               result = FALSE;
+               _g_free0 (password_test);
+               _g_free0 (message);
+               _g_free0 (preamble);
+#line 388 "moonshot-identity-dialog.vala"
+               return result;
+#line 1051 "moonshot-identity-dialog.c"
+       }
+       result = TRUE;
+       _g_free0 (password_test);
+       _g_free0 (message);
+       _g_free0 (preamble);
+#line 390 "moonshot-identity-dialog.vala"
+       return result;
+#line 1059 "moonshot-identity-dialog.c"
+}
+
+
+#line 393 "moonshot-identity-dialog.vala"
+static void identity_dialog_on_response (IdentityDialog* self, GtkDialog* source, gint response_id) {
+#line 393 "moonshot-identity-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 393 "moonshot-identity-dialog.vala"
+       g_return_if_fail (source != NULL);
+#line 395 "moonshot-identity-dialog.vala"
+       switch (response_id) {
+#line 1071 "moonshot-identity-dialog.c"
+               case GTK_RESPONSE_OK:
+               {
+#line 397 "moonshot-identity-dialog.vala"
+                       self->complete = identity_dialog_check_fields (self);
+#line 398 "moonshot-identity-dialog.vala"
+                       break;
+#line 1078 "moonshot-identity-dialog.c"
+               }
+               case GTK_RESPONSE_CANCEL:
+               {
+#line 400 "moonshot-identity-dialog.vala"
+                       self->complete = TRUE;
+#line 401 "moonshot-identity-dialog.vala"
+                       break;
+#line 1086 "moonshot-identity-dialog.c"
+               }
+       }
+}
+
+
+#line 461 "moonshot-identity-dialog.vala"
+static gboolean _lambda7_ (Block5Data* _data5_) {
+#line 1094 "moonshot-identity-dialog.c"
+       Block4Data* _data4_;
+       IdentityDialog * self;
+       gboolean result = FALSE;
+       GtkStateType state;
+       GEnumValue* _tmp0_;
+       char* _tmp1_;
+       char* _tmp2_;
+       char* _tmp3_;
+       char* _tmp4_;
+       _data4_ = _data5_->_data4_;
+       self = _data4_->self;
+#line 463 "moonshot-identity-dialog.vala"
+       state = gtk_widget_get_state ((GtkWidget*) _data5_->label);
+#line 464 "moonshot-identity-dialog.vala"
+       moonshot_logger_trace (identity_dialog_logger, _tmp4_ = g_strconcat (_tmp2_ = g_strconcat (_tmp1_ = g_strconcat ("button_press_callback: Label state=", (_tmp0_ = g_enum_get_value (g_type_class_ref (GTK_TYPE_STATE_TYPE), (int) state), (_tmp0_ != NULL) ? _tmp0_->value_name : NULL), NULL), " setting bg to ", NULL), _tmp3_ = gdk_color_to_string (&identity_dialog_white), NULL), NULL);
+#line 1110 "moonshot-identity-dialog.c"
+       _g_free0 (_tmp4_);
+       _g_free0 (_tmp3_);
+       _g_free0 (_tmp2_);
+       _g_free0 (_tmp1_);
+#line 466 "moonshot-identity-dialog.vala"
+       if (self->priv->selected_item == _data5_->label) {
+#line 1117 "moonshot-identity-dialog.c"
+               GtkLabel* _tmp5_;
+#line 469 "moonshot-identity-dialog.vala"
+               gtk_widget_modify_bg ((GtkWidget*) gtk_widget_get_parent ((GtkWidget*) self->priv->selected_item), state, &identity_dialog_white);
+#line 470 "moonshot-identity-dialog.vala"
+               self->priv->selected_item = (_tmp5_ = NULL, _g_object_unref0 (self->priv->selected_item), _tmp5_);
+#line 471 "moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _data4_->remove_button, FALSE);
+#line 1125 "moonshot-identity-dialog.c"
+       } else {
+               GtkLabel* _tmp7_;
+#line 475 "moonshot-identity-dialog.vala"
+               if (self->priv->selected_item != NULL) {
+#line 1130 "moonshot-identity-dialog.c"
+                       GtkLabel* _tmp6_;
+#line 478 "moonshot-identity-dialog.vala"
+                       gtk_widget_modify_bg ((GtkWidget*) gtk_widget_get_parent ((GtkWidget*) self->priv->selected_item), state, &identity_dialog_white);
+#line 479 "moonshot-identity-dialog.vala"
+                       self->priv->selected_item = (_tmp6_ = NULL, _g_object_unref0 (self->priv->selected_item), _tmp6_);
+#line 1136 "moonshot-identity-dialog.c"
+               }
+#line 483 "moonshot-identity-dialog.vala"
+               self->priv->selected_item = (_tmp7_ = _g_object_ref0 (_data5_->label), _g_object_unref0 (self->priv->selected_item), _tmp7_);
+#line 484 "moonshot-identity-dialog.vala"
+               gtk_widget_modify_bg ((GtkWidget*) gtk_widget_get_parent ((GtkWidget*) self->priv->selected_item), state, &identity_dialog_selected_color);
+#line 485 "moonshot-identity-dialog.vala"
+               gtk_widget_set_sensitive ((GtkWidget*) _data4_->remove_button, TRUE);
+#line 1144 "moonshot-identity-dialog.c"
+       }
+       result = FALSE;
+#line 487 "moonshot-identity-dialog.vala"
+       return result;
+#line 1149 "moonshot-identity-dialog.c"
+}
+
+
+#line 461 "moonshot-identity-dialog.vala"
+static gboolean __lambda7__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+#line 1155 "moonshot-identity-dialog.c"
+       gboolean result;
+       result = _lambda7_ (self);
+       return result;
+}
+
+
+static Block5Data* block5_data_ref (Block5Data* _data5_) {
+       g_atomic_int_inc (&_data5_->_ref_count_);
+       return _data5_;
+}
+
+
+static void block5_data_unref (Block5Data* _data5_) {
+       if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) {
+               block4_data_unref (_data5_->_data4_);
+               _g_object_unref0 (_data5_->label);
+               g_slice_free (Block5Data, _data5_);
+       }
+}
+
+
+#line 494 "moonshot-identity-dialog.vala"
+static void _lambda8_ (GtkButton* remove_button, Block4Data* _data4_) {
+#line 1179 "moonshot-identity-dialog.c"
+       IdentityDialog * self;
+       char* _tmp0_;
+       char* _tmp1_;
+       char* _tmp2_;
+       char* _tmp3_;
+       gboolean _tmp4_;
+       gboolean _result_;
+       self = _data4_->self;
+#line 494 "moonshot-identity-dialog.vala"
+       g_return_if_fail (remove_button != NULL);
+#line 496 "moonshot-identity-dialog.vala"
+       _result_ = (_tmp4_ = warning_dialog_confirm ((GtkWindow*) self, _tmp3_ = g_strconcat (_tmp2_ = g_markup_printf_escaped (_tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("<span font-weight='heavy'>", _ ("You are about to remove the service\n'%s'."), NULL), "</span>", NULL), gtk_label_get_label (self->priv->selected_item)), _ ("\n\nAre you sure you want to do this?"), NULL), "delete_service"), _g_free0 (_tmp3_), _g_free0 (_tmp2_), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp4_);
+#line 505 "moonshot-identity-dialog.vala"
+       if (_result_) {
+#line 507 "moonshot-identity-dialog.vala"
+               if (self->priv->card != NULL) {
+#line 1196 "moonshot-identity-dialog.c"
+                       GtkLabel* _tmp5_;
+#line 508 "moonshot-identity-dialog.vala"
+                       gee_abstract_collection_remove ((GeeAbstractCollection*) self->priv->services, gtk_label_get_label (self->priv->selected_item));
+#line 509 "moonshot-identity-dialog.vala"
+                       gtk_container_remove ((GtkContainer*) _data4_->services_table, (GtkWidget*) gtk_widget_get_parent ((GtkWidget*) self->priv->selected_item));
+#line 510 "moonshot-identity-dialog.vala"
+                       self->priv->selected_item = (_tmp5_ = NULL, _g_object_unref0 (self->priv->selected_item), _tmp5_);
+#line 511 "moonshot-identity-dialog.vala"
+                       gtk_widget_set_sensitive ((GtkWidget*) remove_button, FALSE);
+#line 1206 "moonshot-identity-dialog.c"
+               }
+       }
+}
+
+
+#line 494 "moonshot-identity-dialog.vala"
+static void __lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1214 "moonshot-identity-dialog.c"
+       _lambda8_ (_sender, self);
+}
+
+
+static Block4Data* block4_data_ref (Block4Data* _data4_) {
+       g_atomic_int_inc (&_data4_->_ref_count_);
+       return _data4_;
+}
+
+
+static void block4_data_unref (Block4Data* _data4_) {
+       if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
+               _g_object_unref0 (_data4_->self);
+               _g_object_unref0 (_data4_->services_table);
+               _g_object_unref0 (_data4_->remove_button);
+               g_slice_free (Block4Data, _data4_);
+       }
+}
+
+
+#line 405 "moonshot-identity-dialog.vala"
+static GtkVBox* identity_dialog_make_services_vbox (IdentityDialog* self) {
+#line 1237 "moonshot-identity-dialog.c"
+       GtkVBox* result = NULL;
+       Block4Data* _data4_;
+       GtkAlignment* services_vbox_alignment;
+       GtkScrolledWindow* services_vscroll;
+       GtkHBox* table_button_hbox;
+       GtkVBox* fixed_height;
+       GtkEventBox* table_bg;
+       GtkLabel* services_vbox_title;
+       GtkVBox* services_vbox;
+       gint i;
+#line 405 "moonshot-identity-dialog.vala"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1250 "moonshot-identity-dialog.c"
+       _data4_ = g_slice_new0 (Block4Data);
+       _data4_->_ref_count_ = 1;
+       _data4_->self = g_object_ref (self);
+#line 407 "moonshot-identity-dialog.vala"
+       moonshot_logger_trace (identity_dialog_logger, "make_services_vbox", NULL);
+#line 409 "moonshot-identity-dialog.vala"
+       services_vbox_alignment = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 1, (float) 0));
+#line 410 "moonshot-identity-dialog.vala"
+       services_vscroll = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
+#line 411 "moonshot-identity-dialog.vala"
+       gtk_scrolled_window_set_policy (services_vscroll, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+#line 412 "moonshot-identity-dialog.vala"
+       gtk_scrolled_window_set_shadow_type (services_vscroll, GTK_SHADOW_IN);
+#line 413 "moonshot-identity-dialog.vala"
+       gtk_widget_set_size_request ((GtkWidget*) services_vscroll, 0, 60);
+#line 414 "moonshot-identity-dialog.vala"
+       gtk_scrolled_window_add_with_viewport (services_vscroll, (GtkWidget*) services_vbox_alignment);
+#line 1268 "moonshot-identity-dialog.c"
+       _data4_->remove_button = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_REMOVE));
+#line 421 "moonshot-identity-dialog.vala"
+       gtk_widget_set_sensitive ((GtkWidget*) _data4_->remove_button, FALSE);
+#line 1272 "moonshot-identity-dialog.c"
+       _data4_->services_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) gee_collection_get_size ((GeeCollection*) id_card_get_services (self->priv->card)), (guint) 1, FALSE));
+#line 425 "moonshot-identity-dialog.vala"
+       gtk_table_set_row_spacings (_data4_->services_table, (guint) 1);
+#line 426 "moonshot-identity-dialog.vala"
+       gtk_table_set_col_spacings (_data4_->services_table, (guint) 0);
+#line 427 "moonshot-identity-dialog.vala"
+       set_bg_color ((GtkWidget*) _data4_->services_table);
+#line 429 "moonshot-identity-dialog.vala"
+       table_button_hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6));
+#line 430 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) table_button_hbox, (GtkWidget*) services_vscroll, TRUE, TRUE, (guint) 4);
+#line 433 "moonshot-identity-dialog.vala"
+       fixed_height = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
+#line 434 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) fixed_height, (GtkWidget*) _data4_->remove_button, FALSE, FALSE, (guint) 0);
+#line 435 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) table_button_hbox, (GtkWidget*) fixed_height, FALSE, FALSE, (guint) 0);
+#line 439 "moonshot-identity-dialog.vala"
+       table_bg = g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ());
+#line 440 "moonshot-identity-dialog.vala"
+       set_bg_color ((GtkWidget*) table_bg);
+#line 441 "moonshot-identity-dialog.vala"
+       gtk_container_add ((GtkContainer*) table_bg, (GtkWidget*) _data4_->services_table);
+#line 442 "moonshot-identity-dialog.vala"
+       gtk_container_add ((GtkContainer*) services_vbox_alignment, (GtkWidget*) table_bg);
+#line 444 "moonshot-identity-dialog.vala"
+       services_vbox_title = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Services:")));
+#line 445 "moonshot-identity-dialog.vala"
+       gtk_misc_set_alignment ((GtkMisc*) services_vbox_title, (float) 0, 0.5f);
+#line 447 "moonshot-identity-dialog.vala"
+       services_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
+#line 448 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) services_vbox_title, FALSE, FALSE, (guint) 0);
+#line 449 "moonshot-identity-dialog.vala"
+       gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) table_button_hbox, TRUE, TRUE, (guint) 0);
+#line 451 "moonshot-identity-dialog.vala"
+       i = 0;
+#line 1310 "moonshot-identity-dialog.c"
+       {
+               GeeIterator* _service_it;
+#line 452 "moonshot-identity-dialog.vala"
+               _service_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->services);
+#line 452 "moonshot-identity-dialog.vala"
+               while (TRUE) {
+#line 1317 "moonshot-identity-dialog.c"
+                       Block5Data* _data5_;
+                       char* service;
+                       GtkEventBox* event_box;
+                       _data5_ = g_slice_new0 (Block5Data);
+                       _data5_->_ref_count_ = 1;
+                       _data5_->_data4_ = block4_data_ref (_data4_);
+#line 452 "moonshot-identity-dialog.vala"
+                       if (!gee_iterator_next (_service_it)) {
+#line 1326 "moonshot-identity-dialog.c"
+                               block5_data_unref (_data5_);
+#line 452 "moonshot-identity-dialog.vala"
+                               break;
+#line 1330 "moonshot-identity-dialog.c"
+                       }
+#line 452 "moonshot-identity-dialog.vala"
+                       service = (char*) gee_iterator_get (_service_it);
+#line 1334 "moonshot-identity-dialog.c"
+                       _data5_->label = g_object_ref_sink ((GtkLabel*) gtk_label_new (service));
+#line 455 "moonshot-identity-dialog.vala"
+                       gtk_misc_set_alignment ((GtkMisc*) _data5_->label, (float) 0, (float) 0);
+#line 456 "moonshot-identity-dialog.vala"
+                       g_object_set ((GtkMisc*) _data5_->label, "xpad", 3, NULL);
+#line 458 "moonshot-identity-dialog.vala"
+                       event_box = g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ());
+#line 459 "moonshot-identity-dialog.vala"
+                       gtk_widget_modify_bg ((GtkWidget*) event_box, GTK_STATE_NORMAL, &identity_dialog_white);
+#line 460 "moonshot-identity-dialog.vala"
+                       gtk_container_add ((GtkContainer*) event_box, (GtkWidget*) _data5_->label);
+#line 461 "moonshot-identity-dialog.vala"
+                       g_signal_connect_data ((GtkWidget*) event_box, "button-press-event", (GCallback) __lambda7__gtk_widget_button_press_event, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
+#line 490 "moonshot-identity-dialog.vala"
+                       gtk_table_attach_defaults (_data4_->services_table, (GtkWidget*) event_box, (guint) 0, (guint) 1, (guint) i, (guint) (i + 1));
+#line 491 "moonshot-identity-dialog.vala"
+                       i++;
+#line 1352 "moonshot-identity-dialog.c"
+                       _g_object_unref0 (event_box);
+                       _g_free0 (service);
+                       block5_data_unref (_data5_);
+               }
+               _g_object_unref0 (_service_it);
+       }
+#line 494 "moonshot-identity-dialog.vala"
+       g_signal_connect_data (_data4_->remove_button, "clicked", (GCallback) __lambda8__gtk_button_clicked, block4_data_ref (_data4_), (GClosureNotify) block4_data_unref, 0);
+#line 1361 "moonshot-identity-dialog.c"
+       result = services_vbox;
+       _g_object_unref0 (services_vbox_title);
+       _g_object_unref0 (table_bg);
+       _g_object_unref0 (fixed_height);
+       _g_object_unref0 (table_button_hbox);
+       _g_object_unref0 (services_vscroll);
+       _g_object_unref0 (services_vbox_alignment);
+       block4_data_unref (_data4_);
+#line 517 "moonshot-identity-dialog.vala"
+       return result;
+#line 1372 "moonshot-identity-dialog.c"
+}
+
+
+#line 1181 "glib-2.0.vapi"
+static char* string_replace (const char* self, const char* old, const char* replacement) {
+#line 1378 "moonshot-identity-dialog.c"
+       char* result = NULL;
+       GError * _inner_error_ = NULL;
+#line 1181 "glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1181 "glib-2.0.vapi"
+       g_return_val_if_fail (old != NULL, NULL);
+#line 1181 "glib-2.0.vapi"
+       g_return_val_if_fail (replacement != NULL, NULL);
+#line 1387 "moonshot-identity-dialog.c"
+       {
+               char* _tmp0_;
+               GRegex* _tmp1_;
+               GRegex* regex;
+               char* _tmp2_;
+#line 1183 "glib-2.0.vapi"
+               regex = (_tmp1_ = g_regex_new (_tmp0_ = g_regex_escape_string (old, -1), 0, 0, &_inner_error_), _g_free0 (_tmp0_), _tmp1_);
+#line 1395 "moonshot-identity-dialog.c"
+               if (_inner_error_ != NULL) {
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+                               goto __catch9_g_regex_error;
+                       }
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return NULL;
+               }
+#line 1184 "glib-2.0.vapi"
+               _tmp2_ = g_regex_replace_literal (regex, self, (gssize) (-1), 0, replacement, 0, &_inner_error_);
+#line 1406 "moonshot-identity-dialog.c"
+               if (_inner_error_ != NULL) {
+                       _g_regex_unref0 (regex);
+                       if (_inner_error_->domain == G_REGEX_ERROR) {
+                               goto __catch9_g_regex_error;
+                       }
+                       _g_regex_unref0 (regex);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return NULL;
+               }
+               result = _tmp2_;
+               _g_regex_unref0 (regex);
+#line 1184 "glib-2.0.vapi"
+               return result;
+#line 1421 "moonshot-identity-dialog.c"
+       }
+       goto __finally9;
+       __catch9_g_regex_error:
+       {
+               GError * e;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               {
+#line 1186 "glib-2.0.vapi"
+                       g_assert_not_reached ();
+#line 1432 "moonshot-identity-dialog.c"
+                       _g_error_free0 (e);
+               }
+       }
+       __finally9:
+       if (_inner_error_ != NULL) {
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return NULL;
+       }
+}
+
+
+static glong string_get_length (const char* self) {
+       glong result;
+       g_return_val_if_fail (self != NULL, 0L);
+       result = g_utf8_strlen (self, (gssize) (-1));
+#line 1194 "glib-2.0.vapi"
+       return result;
+#line 1451 "moonshot-identity-dialog.c"
+}
+
+
+#line 1126 "glib-2.0.vapi"
+static char* string_slice (const char* self, glong start, glong end) {
+#line 1457 "moonshot-identity-dialog.c"
+       char* result = NULL;
+       glong string_length;
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       const char* start_string;
+#line 1126 "glib-2.0.vapi"
+       g_return_val_if_fail (self != NULL, NULL);
+#line 1127 "glib-2.0.vapi"
+       string_length = string_get_length (self);
+#line 1128 "glib-2.0.vapi"
+       if (start < 0) {
+#line 1129 "glib-2.0.vapi"
+               start = string_length + start;
+#line 1471 "moonshot-identity-dialog.c"
+       }
+#line 1131 "glib-2.0.vapi"
+       if (end < 0) {
+#line 1132 "glib-2.0.vapi"
+               end = string_length + end;
+#line 1477 "moonshot-identity-dialog.c"
+       }
+#line 1134 "glib-2.0.vapi"
+       if (start >= 0) {
+#line 1134 "glib-2.0.vapi"
+               _tmp0_ = start <= string_length;
+#line 1483 "moonshot-identity-dialog.c"
+       } else {
+#line 1134 "glib-2.0.vapi"
+               _tmp0_ = FALSE;
+#line 1487 "moonshot-identity-dialog.c"
+       }
+#line 1134 "glib-2.0.vapi"
+       g_return_val_if_fail (_tmp0_, NULL);
+#line 1135 "glib-2.0.vapi"
+       if (end >= 0) {
+#line 1135 "glib-2.0.vapi"
+               _tmp1_ = end <= string_length;
+#line 1495 "moonshot-identity-dialog.c"
+       } else {
+#line 1135 "glib-2.0.vapi"
+               _tmp1_ = FALSE;
+#line 1499 "moonshot-identity-dialog.c"
+       }
+#line 1135 "glib-2.0.vapi"
+       g_return_val_if_fail (_tmp1_, NULL);
+#line 1136 "glib-2.0.vapi"
+       g_return_val_if_fail (start <= end, NULL);
+#line 1137 "glib-2.0.vapi"
+       start_string = g_utf8_offset_to_pointer (self, start);
+#line 1507 "moonshot-identity-dialog.c"
+       result = g_strndup (start_string, ((gchar*) g_utf8_offset_to_pointer (start_string, end - start)) - ((gchar*) start_string));
+#line 1138 "glib-2.0.vapi"
+       return result;
+#line 1511 "moonshot-identity-dialog.c"
+}
+
+
+static guint8* string_get_data (const char* self, int* result_length1) {
+       guint8* result;
+       gint res_length1;
+       gint _res_size_;
+       guint8* _tmp0_;
+       guint8* res;
+       guint8* _tmp1_;
+       g_return_val_if_fail (self != NULL, NULL);
+       res = (_tmp0_ = (guint8*) self, res_length1 = -1, _res_size_ = res_length1, _tmp0_);
+#line 1200 "glib-2.0.vapi"
+       res_length1 = (gint) strlen (self);
+#line 1527 "moonshot-identity-dialog.c"
+       result = (_tmp1_ = res, *result_length1 = res_length1, _tmp1_);
+#line 1201 "glib-2.0.vapi"
+       return result;
+#line 1531 "moonshot-identity-dialog.c"
+}
+
+
+#line 520 "moonshot-identity-dialog.vala"
+static void identity_dialog_export_certificate (IdentityDialog* self, IdCard* id) {
+#line 1537 "moonshot-identity-dialog.c"
+       GtkFileChooserDialog* dialog;
+       char* _tmp0_;
+       char* _tmp1_;
+       char* default_filename;
+       GError * _inner_error_ = NULL;
+#line 520 "moonshot-identity-dialog.vala"
+       g_return_if_fail (self != NULL);
+#line 520 "moonshot-identity-dialog.vala"
+       g_return_if_fail (id != NULL);
+#line 522 "moonshot-identity-dialog.vala"
+       dialog = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new ("Save File", (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_SAVE, _ ("Cancel"), GTK_RESPONSE_CANCEL, _ ("Save"), GTK_RESPONSE_ACCEPT, NULL, NULL));
+#line 528 "moonshot-identity-dialog.vala"
+       gtk_file_chooser_set_do_overwrite_confirmation ((GtkFileChooser*) dialog, TRUE);
+#line 529 "moonshot-identity-dialog.vala"
+       if (export_directory != NULL) {
+#line 530 "moonshot-identity-dialog.vala"
+               gtk_file_chooser_set_current_folder ((GtkFileChooser*) dialog, export_directory);
+#line 1555 "moonshot-identity-dialog.c"
+       }
+#line 534 "moonshot-identity-dialog.vala"
+       default_filename = (_tmp1_ = string_replace (_tmp0_ = g_strconcat (id_card_get_display_name (id), ".pem", NULL), G_DIR_SEPARATOR_S, "_"), _g_free0 (_tmp0_), _tmp1_);
+#line 535 "moonshot-identity-dialog.vala"
+       gtk_file_chooser_set_current_name ((GtkFileChooser*) dialog, default_filename);
+#line 536 "moonshot-identity-dialog.vala"
+       if (gtk_dialog_run ((GtkDialog*) dialog) == GTK_RESPONSE_ACCEPT) {
+#line 1563 "moonshot-identity-dialog.c"
+               char* CERT_HEADER;
+               char* CERT_FOOTER;
+               char* cert;
+               char* newcert;
+               char* _tmp7_;
+               char* filename;
+               GFile* file;
+               GFileOutputStream* stream;
+               gint _tmp8_;
+               GFile* _tmp9_;
+               char* _tmp10_;
+#line 542 "moonshot-identity-dialog.vala"
+               CERT_HEADER = g_strdup ("-----BEGIN CERTIFICATE-----\n");
+#line 543 "moonshot-identity-dialog.vala"
+               CERT_FOOTER = g_strdup ("\n-----END CERTIFICATE-----\n");
+#line 546 "moonshot-identity-dialog.vala"
+               cert = string_replace (trust_anchor_get_ca_cert (id_card_get_trust_anchor (id)), "\n", "");
+#line 549 "moonshot-identity-dialog.vala"
+               newcert = g_strdup (CERT_HEADER);
+#line 550 "moonshot-identity-dialog.vala"
+               while (TRUE) {
+#line 1585 "moonshot-identity-dialog.c"
+                       char* _tmp2_;
+                       char* _tmp3_;
+                       char* _tmp4_;
+                       char* _tmp5_;
+#line 550 "moonshot-identity-dialog.vala"
+                       if (!(string_get_length (cert) > 63)) {
+#line 550 "moonshot-identity-dialog.vala"
+                               break;
+#line 1594 "moonshot-identity-dialog.c"
+                       }
+#line 551 "moonshot-identity-dialog.vala"
+                       newcert = (_tmp3_ = g_strconcat (newcert, _tmp2_ = string_slice (cert, (glong) 0, (glong) 64), NULL), _g_free0 (newcert), _tmp3_);
+#line 1598 "moonshot-identity-dialog.c"
+                       _g_free0 (_tmp2_);
+#line 552 "moonshot-identity-dialog.vala"
+                       newcert = (_tmp4_ = g_strconcat (newcert, "\n", NULL), _g_free0 (newcert), _tmp4_);
+#line 553 "moonshot-identity-dialog.vala"
+                       cert = (_tmp5_ = string_slice (cert, (glong) 64, string_get_length (cert)), _g_free0 (cert), _tmp5_);
+#line 1604 "moonshot-identity-dialog.c"
+               }
+#line 555 "moonshot-identity-dialog.vala"
+               if (string_get_length (cert) > 0) {
+#line 1608 "moonshot-identity-dialog.c"
+                       char* _tmp6_;
+#line 556 "moonshot-identity-dialog.vala"
+                       newcert = (_tmp6_ = g_strconcat (newcert, cert, NULL), _g_free0 (newcert), _tmp6_);
+#line 1612 "moonshot-identity-dialog.c"
+               }
+#line 558 "moonshot-identity-dialog.vala"
+               newcert = (_tmp7_ = g_strconcat (newcert, CERT_FOOTER, NULL), _g_free0 (newcert), _tmp7_);
+#line 560 "moonshot-identity-dialog.vala"
+               filename = gtk_file_chooser_get_filename ((GtkFileChooser*) dialog);
+#line 561 "moonshot-identity-dialog.vala"
+               file = g_file_new_for_path (filename);
+#line 562 "moonshot-identity-dialog.vala"
+               stream = g_file_replace (file, NULL, FALSE, G_FILE_CREATE_PRIVATE, NULL, &_inner_error_);
+#line 1622 "moonshot-identity-dialog.c"
+               if (_inner_error_ != NULL) {
+                       _g_object_unref0 (file);
+                       _g_free0 (filename);
+                       _g_free0 (newcert);
+                       _g_free0 (cert);
+                       _g_free0 (CERT_FOOTER);
+                       _g_free0 (CERT_HEADER);
+                       _g_free0 (default_filename);
+                       _g_object_unref0 (dialog);
+                       g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return;
+               }
+#line 567 "moonshot-identity-dialog.vala"
+               g_output_stream_write ((GOutputStream*) stream, string_get_data (newcert, &_tmp8_), (gsize) string_get_length (newcert), NULL, &_inner_error_);
+#line 1638 "moonshot-identity-dialog.c"
+               if (_inner_error_ != NULL) {
+                       _g_object_unref0 (stream);
+                       _g_object_unref0 (file);
+                       _g_free0 (filename);
+                       _g_free0 (newcert);
+                       _g_free0 (cert);
+                       _g_free0 (CERT_FOOTER);
+                       _g_free0 (CERT_HEADER);
+                       _g_free0 (default_filename);
+                       _g_object_unref0 (dialog);
+                       g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return;
+               }
+#line 570 "moonshot-identity-dialog.vala"
+               export_directory = (_tmp10_ = g_file_get_path (_tmp9_ = g_file_get_parent (file)), _g_free0 (export_directory), _tmp10_);
+#line 1655 "moonshot-identity-dialog.c"
+               _g_object_unref0 (_tmp9_);
+               _g_object_unref0 (stream);
+               _g_object_unref0 (file);
+               _g_free0 (filename);
+               _g_free0 (newcert);
+               _g_free0 (cert);
+               _g_free0 (CERT_FOOTER);
+               _g_free0 (CERT_HEADER);
+       }
+#line 572 "moonshot-identity-dialog.vala"
+       gtk_object_destroy ((GtkObject*) dialog);
+#line 1667 "moonshot-identity-dialog.c"
+       _g_free0 (default_filename);
+       _g_object_unref0 (dialog);
+}
+
+
+const char* identity_dialog_get_display_name (IdentityDialog* self) {
+       const char* result;
+       g_return_val_if_fail (self != NULL, NULL);
+       result = gtk_entry_get_text (self->priv->displayname_entry);
+#line 80 "moonshot-identity-dialog.vala"
+       return result;
+#line 1679 "moonshot-identity-dialog.c"
+}
+
+
+const char* identity_dialog_get_issuer (IdentityDialog* self) {
+       const char* result;
+       g_return_val_if_fail (self != NULL, NULL);
+       result = gtk_entry_get_text (self->priv->realm_entry);
+#line 84 "moonshot-identity-dialog.vala"
+       return result;
+#line 1689 "moonshot-identity-dialog.c"
+}
+
+
+const char* identity_dialog_get_username (IdentityDialog* self) {
+       const char* result;
+       g_return_val_if_fail (self != NULL, NULL);
+       result = gtk_entry_get_text (self->priv->username_entry);
+#line 88 "moonshot-identity-dialog.vala"
+       return result;
+#line 1699 "moonshot-identity-dialog.c"
+}
+
+
+const char* identity_dialog_get_password (IdentityDialog* self) {
+       const char* result;
+       g_return_val_if_fail (self != NULL, NULL);
+       result = gtk_entry_get_text (self->priv->password_entry);
+#line 92 "moonshot-identity-dialog.vala"
+       return result;
+#line 1709 "moonshot-identity-dialog.c"
+}
+
+
+gboolean identity_dialog_get_store_password (IdentityDialog* self) {
+       gboolean result;
+       g_return_val_if_fail (self != NULL, FALSE);
+       result = gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->remember_checkbutton);
+#line 96 "moonshot-identity-dialog.vala"
+       return result;
+#line 1719 "moonshot-identity-dialog.c"
+}
+
+
+static void identity_dialog_class_init (IdentityDialogClass * klass) {
+       GdkColor _tmp0_ = {0};
+       GdkColor _tmp1_ = {0};
+       identity_dialog_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (IdentityDialogPrivate));
+       G_OBJECT_CLASS (klass)->get_property = identity_dialog_get_property;
+       G_OBJECT_CLASS (klass)->finalize = identity_dialog_finalize;
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_DISPLAY_NAME, g_param_spec_string ("display-name", "display-name", "display-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_ISSUER, g_param_spec_string ("issuer", "issuer", "issuer", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_USERNAME, g_param_spec_string ("username", "username", "username", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_PASSWORD, g_param_spec_string ("password", "password", "password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+       g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_STORE_PASSWORD, g_param_spec_boolean ("store-password", "store-password", "store-password", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+       identity_dialog_white = (make_color ((guint16) 65535, (guint16) 65535, (guint16) 65535, &_tmp0_), _tmp0_);
+       identity_dialog_selected_color = (make_color ((guint16) (0xd9 << 8), (guint16) (0xf7 << 8), (guint16) 65535, &_tmp1_), _tmp1_);
+       identity_dialog_logger = get_logger ("IdentityDialog");
+}
+
+
+static void identity_dialog_instance_init (IdentityDialog * self) {
+       self->priv = IDENTITY_DIALOG_GET_PRIVATE (self);
+       self->priv->selected_item = NULL;
+       self->clear_trust_anchor = FALSE;
+}
+
+
+static void identity_dialog_finalize (GObject* obj) {
+       IdentityDialog * self;
+       self = IDENTITY_DIALOG (obj);
+       _g_object_unref0 (self->priv->displayname_entry);
+       _g_object_unref0 (self->priv->displayname_label);
+       _g_object_unref0 (self->priv->realm_entry);
+       _g_object_unref0 (self->priv->realm_label);
+       _g_object_unref0 (self->priv->username_entry);
+       _g_object_unref0 (self->priv->username_label);
+       _g_object_unref0 (self->priv->password_entry);
+       _g_object_unref0 (self->priv->password_label);
+       _g_object_unref0 (self->priv->remember_checkbutton);
+       _g_object_unref0 (self->priv->message_label);
+       _g_object_unref0 (self->priv->card);
+       _g_object_unref0 (self->priv->services);
+       _g_object_unref0 (self->priv->selected_item);
+       G_OBJECT_CLASS (identity_dialog_parent_class)->finalize (obj);
+}
+
+
+GType identity_dialog_get_type (void) {
+       static volatile gsize identity_dialog_type_id__volatile = 0;
+       if (g_once_init_enter (&identity_dialog_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (IdentityDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) identity_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IdentityDialog), 0, (GInstanceInitFunc) identity_dialog_instance_init, NULL };
+               GType identity_dialog_type_id;
+               identity_dialog_type_id = g_type_register_static (GTK_TYPE_DIALOG, "IdentityDialog", &g_define_type_info, 0);
+               g_once_init_leave (&identity_dialog_type_id__volatile, identity_dialog_type_id);
+       }
+       return identity_dialog_type_id__volatile;
+}
+
+
+static void identity_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+       IdentityDialog * self;
+       self = IDENTITY_DIALOG (object);
+       switch (property_id) {
+               case IDENTITY_DIALOG_DISPLAY_NAME:
+               g_value_set_string (value, identity_dialog_get_display_name (self));
+               break;
+               case IDENTITY_DIALOG_ISSUER:
+               g_value_set_string (value, identity_dialog_get_issuer (self));
+               break;
+               case IDENTITY_DIALOG_USERNAME:
+               g_value_set_string (value, identity_dialog_get_username (self));
+               break;
+               case IDENTITY_DIALOG_PASSWORD:
+               g_value_set_string (value, identity_dialog_get_password (self));
+               break;
+               case IDENTITY_DIALOG_STORE_PASSWORD:
+               g_value_set_boolean (value, identity_dialog_get_store_password (self));
+               break;
+               default:
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+               break;
+       }
+}
+
+
+static int _vala_strcmp0 (const char * str1, const char * str2) {
+       if (str1 == NULL) {
+               return -(str1 != str2);
+       }
+       if (str2 == NULL) {
+               return str1 != str2;
+       }
+       return strcmp (str1, str2);
+}
+
+
+
+