120
118
fill_connection (EAPMethod *parent, NMConnection *connection)
122
EAPMethodTLS *method = (EAPMethodTLS *) parent;
123
120
NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
124
121
NMSetting8021x *s_8021x;
125
NMSettingConnection *s_con;
126
122
GtkWidget *widget;
127
123
char *ca_filename, *pk_filename, *cc_filename;
128
124
const char *password = NULL;
129
125
GError *error = NULL;
131
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
134
127
s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X));
135
128
g_assert (s_8021x);
138
131
g_object_set (s_8021x, NM_SETTING_802_1X_PHASE2_AUTH, "tls", NULL);
140
133
nm_setting_802_1x_add_eap_method (s_8021x, "tls");
154
147
pk_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
155
148
g_assert (pk_filename);
157
if (method->phase2) {
150
if (parent->phase2) {
158
151
if (!nm_setting_802_1x_set_phase2_private_key (s_8021x, pk_filename, password, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error)) {
159
152
g_warning ("Couldn't read phase2 private key '%s': %s", pk_filename, error ? error->message : "(unknown)");
160
153
g_clear_error (&error);
178
171
g_assert (cc_filename);
180
173
format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
181
if (method->phase2) {
174
if (parent->phase2) {
182
175
if (!nm_setting_802_1x_set_phase2_client_cert (s_8021x, cc_filename, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error)) {
183
176
g_warning ("Couldn't read phase2 client certificate '%s': %s", cc_filename, error ? error->message : "(unknown)");
184
177
g_clear_error (&error);
198
191
ca_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
200
193
format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
201
if (method->phase2) {
194
if (parent->phase2) {
202
195
if (!nm_setting_802_1x_set_phase2_ca_cert (s_8021x, ca_filename, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error)) {
203
196
g_warning ("Couldn't read phase2 CA certificate '%s': %s", ca_filename, error ? error->message : "(unknown)");
204
197
g_clear_error (&error);
246
235
GtkWindow *parent_window = NULL;
248
237
toplevel = gtk_widget_get_toplevel (parent->ui_widget);
249
#if GTK_CHECK_VERSION(2,18,0)
250
238
if (gtk_widget_is_toplevel (toplevel))
252
if (GTK_WIDGET_TOPLEVEL (toplevel))
254
239
parent_window = GTK_WINDOW (toplevel);
256
241
dialog = gtk_message_dialog_new (parent_window,
327
312
g_signal_connect (G_OBJECT (widget), "selection-changed",
328
313
(GCallback) private_key_picker_file_set_cb,
331
private_key_picker_helper ((EAPMethod *) method, filename, FALSE);
316
private_key_picker_helper (parent, filename, FALSE);
334
319
g_signal_connect (G_OBJECT (widget), "selection-changed",
405
388
UIDIR "/eap-method-tls.ui",
406
389
"eap_tls_notebook",
407
"eap_tls_identity_entry");
390
"eap_tls_identity_entry",
411
eap_method_nag_init (parent,
412
"eap_tls_ca_cert_button",
416
method = (EAPMethodTLS *) parent;
417
method->phase2 = phase2;
395
eap_method_nag_init (parent, "eap_tls_ca_cert_button", connection);
420
398
s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X));
430
408
setup_filepicker (parent->builder, "eap_tls_user_cert_button",
431
409
_("Choose your personal certificate..."),
432
ws_parent, method, s_8021x,
410
ws_parent, parent, s_8021x,
433
411
phase2 ? nm_setting_802_1x_get_phase2_client_cert_scheme : nm_setting_802_1x_get_client_cert_scheme,
434
412
phase2 ? nm_setting_802_1x_get_phase2_client_cert_path : nm_setting_802_1x_get_client_cert_path,
436
414
setup_filepicker (parent->builder, "eap_tls_ca_cert_button",
437
415
_("Choose a Certificate Authority certificate..."),
438
ws_parent, method, s_8021x,
416
ws_parent, parent, s_8021x,
439
417
phase2 ? nm_setting_802_1x_get_phase2_ca_cert_scheme : nm_setting_802_1x_get_ca_cert_scheme,
440
418
phase2 ? nm_setting_802_1x_get_phase2_ca_cert_path : nm_setting_802_1x_get_ca_cert_path,
442
420
setup_filepicker (parent->builder, "eap_tls_private_key_button",
443
421
_("Choose your private key..."),
444
ws_parent, method, s_8021x,
422
ws_parent, parent, s_8021x,
445
423
phase2 ? nm_setting_802_1x_get_phase2_private_key_scheme : nm_setting_802_1x_get_private_key_scheme,
446
424
phase2 ? nm_setting_802_1x_get_phase2_private_key_path : nm_setting_802_1x_get_private_key_path,
449
427
/* Fill secrets, if any */
451
update_secrets (EAP_METHOD (method), connection);
429
update_secrets (parent, connection);
453
431
widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_password_entry"));
454
432
g_assert (widget);