1 2/* 3 * Licensed Materials - Property of IBM 4 * 5 * trousers - An open source TCG Software Stack 6 * 7 * (C) Copyright International Business Machines Corp. 2004 8 * 9 */ 10 11#ifdef HAVE_CONFIG_H 12# include <config.h> 13#endif 14 15#include <gtk/gtk.h> 16#include <string.h> 17 18#undef TRUE 19#undef FALSE 20 21#include "callbacks.h" 22#include "interface.h" 23#include "support.h" 24#include "trousers/tss.h" 25#include "trousers/trousers.h" 26#include "tsplog.h" 27 28 29/* Callbacks for the simple password dialog */ 30 31void 32on_inputdialog1_destroy(GtkObject *object, struct userdata *user_data) 33{ 34 gtk_widget_destroy(user_data->window); 35 gtk_main_quit(); 36} 37 38 39void 40on_dialog1_close(GtkDialog *dialog, struct userdata *user_data) 41{ 42 gtk_widget_destroy(user_data->window); 43 gtk_main_quit(); 44} 45 46 47void 48on_cancelbutton1_clicked(GtkButton *button, struct userdata *user_data) 49{ 50 LogDebugFn(); 51 gtk_widget_destroy(user_data->window); 52 user_data->string_len = 0; 53 gtk_main_quit(); 54} 55 56 57void 58on_okbutton1_clicked(GtkButton *button, struct userdata *user_data) 59{ 60 const gchar *entry_text = gtk_entry_get_text (GTK_ENTRY(user_data->entry)); 61 62 LogDebugFn(); 63 user_data->string = (char *)Trspi_Native_To_UNICODE((BYTE *)entry_text, 64 &user_data->string_len); 65 gtk_widget_destroy(user_data->window); 66 67 gtk_main_quit(); 68} 69 70 71gboolean 72enter_event(GtkWidget *widget, struct userdata *user_data) 73{ 74 const gchar *entry_text = gtk_entry_get_text (GTK_ENTRY(user_data->entry)); 75 76 LogDebugFn(); 77 user_data->string = (char *)Trspi_Native_To_UNICODE((BYTE *)entry_text, 78 &user_data->string_len); 79 gtk_widget_destroy(user_data->window); 80 81 gtk_main_quit(); 82 return TRUE; 83} 84 85 86/* Callbacks for the new password dialog */ 87void 88on_entryPassword_activate(GtkEntry *entry, struct userdata *user_data) 89{ 90 const gchar *entryPass_text = gtk_entry_get_text (GTK_ENTRY(user_data->entryPass)); 91 const gchar *entryConf_text = gtk_entry_get_text (GTK_ENTRY(user_data->entryConf)); 92 int len = strlen(entryConf_text); 93 94 if (strlen(entryConf_text) == strlen(entryPass_text)) { 95 if (!memcmp(entryPass_text, entryConf_text, len)) { 96 user_data->string = (char *)Trspi_Native_To_UNICODE((BYTE *)entryConf_text, 97 &user_data->string_len); 98 gtk_widget_destroy(user_data->window); 99 gtk_main_quit(); 100 101 LogDebugFn("string len ptr: %p, value = %u", &user_data->string_len, 102 user_data->string_len); 103 return; 104 } 105 } 106 107 gtk_widget_grab_focus(user_data->entryConf); 108} 109 110void 111on_entryConfirm_activate(GtkEntry *entry, struct userdata *user_data) 112{ 113 const gchar *entryPass_text = gtk_entry_get_text (GTK_ENTRY(user_data->entryPass)); 114 const gchar *entryConf_text = gtk_entry_get_text (GTK_ENTRY(user_data->entryConf)); 115 unsigned len = strlen(entryConf_text); 116 117 if (strlen(entryConf_text) == strlen(entryPass_text)) { 118 if (!memcmp(entryPass_text, entryConf_text, len)) { 119 user_data->string = (char *)Trspi_Native_To_UNICODE((BYTE *)entryConf_text, 120 &user_data->string_len); 121 gtk_widget_destroy(user_data->window); 122 gtk_main_quit(); 123 124 LogDebugFn("string len ptr: %p, value = %u", &user_data->string_len, 125 user_data->string_len); 126 return; 127 } 128 } 129 130 gtk_widget_grab_focus(user_data->entryPass); 131} 132 133void 134on_cancelbutton2_clicked(GtkButton *button, struct userdata *user_data) 135{ 136 LogDebugFn(); 137 gtk_widget_destroy(user_data->window); 138 user_data->string_len = 0; 139 gtk_main_quit(); 140} 141 142void 143on_okbutton2_clicked(GtkButton *button, struct userdata *user_data) 144{ 145 const gchar *entryPass_text = gtk_entry_get_text (GTK_ENTRY(user_data->entryPass)); 146 const gchar *entryConf_text = gtk_entry_get_text (GTK_ENTRY(user_data->entryConf)); 147 unsigned len = strlen(entryConf_text); 148 149 if (strlen(entryConf_text) == strlen(entryPass_text)) { 150 if (!memcmp(entryPass_text, entryConf_text, len)) { 151 user_data->string = (char *)Trspi_Native_To_UNICODE((BYTE *)entryConf_text, 152 &user_data->string_len); 153 gtk_widget_destroy(user_data->window); 154 gtk_main_quit(); 155 156 LogDebugFn("string len ptr: %p, value = %u", &user_data->string_len, 157 user_data->string_len); 158 return; 159 } 160 } 161 162 gtk_widget_grab_focus(user_data->entryPass); 163} 164