summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@unixuser.org>2010-10-25 14:52:17 +0900
committerStef Walter <stef@memberwebs.com>2010-10-25 14:09:57 +0000
commit538371de09c253365eee64c9479ba023b6dc32f1 (patch)
tree2f58a88d46d567119fdf40300ee014bc96709209
parent9ed868758a071cd478ba2431949abf225f4f9426 (diff)
downloadgnome-keyring-538371de09c253365eee64c9479ba023b6dc32f1.tar.gz
gpg-agent: Don't try to cache password when symmetric encryption.
-rw-r--r--daemon/gpg-agent/gkd-gpg-agent-ops.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/daemon/gpg-agent/gkd-gpg-agent-ops.c b/daemon/gpg-agent/gkd-gpg-agent-ops.c
index 69bbbd43..aa99c014 100644
--- a/daemon/gpg-agent/gkd-gpg-agent-ops.c
+++ b/daemon/gpg-agent/gkd-gpg-agent-ops.c
@@ -411,11 +411,12 @@ do_get_password (GP11Session *session, const gchar *keyid, const gchar *errmsg,
guint ttl;
g_assert (GP11_IS_SESSION (session));
- g_assert (keyid);
- password = do_lookup_password (session, keyid);
- if (password != NULL)
- return password;
+ if (keyid != NULL) {
+ password = do_lookup_password (session, keyid);
+ if (password != NULL)
+ return password;
+ }
/* Do we have the keyid? */
prompt = prepare_password_prompt (session, errmsg, prompt_text, description, confirm);
@@ -427,6 +428,11 @@ do_get_password (GP11Session *session, const gchar *keyid, const gchar *errmsg,
password = gku_prompt_get_password (prompt, "password");
g_return_val_if_fail (password, NULL);
+ if (keyid == NULL) {
+ g_object_unref (prompt);
+ return password;
+ }
+
/* Load up the save options */
attrs = gp11_attributes_new ();