327
save_unlock_options (GcrPrompt *prompt)
331
settings = gkd_gpg_agent_settings ();
333
if (gcr_prompt_get_choice_chosen (prompt))
334
g_settings_set_string (settings, "gpg-cache-method", GCR_UNLOCK_OPTION_ALWAYS);
337
326
static GcrPrompt *
338
327
open_password_prompt (GckSession *session,
339
328
const gchar *keyid,
433
425
if (password != NULL && keyid != NULL) {
426
settings = gkd_gpg_agent_settings ();
435
428
/* Load up the save options */
436
429
chosen = gcr_prompt_get_choice_chosen (prompt);
432
g_settings_set_string (settings, "gpg-cache-method", GCR_UNLOCK_OPTION_ALWAYS);
439
433
gck_builder_add_string (&builder, CKA_G_COLLECTION, "login");
436
method = g_settings_get_string (settings, "gpg-cache-method");
437
lifetime = g_settings_get_int (settings, "gpg-cache-ttl");
439
if (g_strcmp0 (method, GCR_UNLOCK_OPTION_IDLE) == 0) {
440
gck_builder_add_boolean (&builder, CKA_GNOME_TRANSIENT, TRUE);
441
gck_builder_add_ulong (&builder, CKA_G_DESTRUCT_IDLE, lifetime);
443
} else if (g_strcmp0 (method, GCR_UNLOCK_OPTION_TIMEOUT) == 0) {
444
gck_builder_add_boolean (&builder, CKA_GNOME_TRANSIENT, TRUE);
445
gck_builder_add_ulong (&builder, CKA_G_DESTRUCT_AFTER, lifetime);
447
} else if (g_strcmp0 (method, GCR_UNLOCK_OPTION_SESSION)){
448
g_message ("Unsupported gpg-cache-method setting: %s", method);
441
451
gck_builder_add_string (&builder, CKA_G_COLLECTION, "session");
443
455
/* Now actually save the password */
444
456
attrs = gck_attributes_ref_sink (gck_builder_end (&builder));
445
457
do_save_password (session, keyid, description, password, attrs);
446
458
gck_attributes_unref (attrs);
448
save_unlock_options (prompt);
451
461
g_clear_object (&prompt);