aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2009-03-02 10:26:37 +0000
committerWerner Koch <[email protected]>2009-03-02 10:26:37 +0000
commit596a2237c723f956a0505a0df42d70f7b766ecb5 (patch)
treee9506f3a604b638a9c31b8f02ff61cf9b698465b
parentFix a gpg2 problem with removed cards. (diff)
downloadgnupg-596a2237c723f956a0505a0df42d70f7b766ecb5.tar.gz
gnupg-596a2237c723f956a0505a0df42d70f7b766ecb5.zip
Fix bug#1003.
Diffstat (limited to '')
-rw-r--r--agent/ChangeLog6
-rw-r--r--agent/protect-tool.c13
2 files changed, 16 insertions, 3 deletions
diff --git a/agent/ChangeLog b/agent/ChangeLog
index 7a42fb875..8f42b3273 100644
--- a/agent/ChangeLog
+++ b/agent/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-02 Werner Koch <[email protected]>
+
+ * protect-tool.c (import_p12_file): Take care of canceled
+ passphrase entry. Fixes bug#1003.
+ (export_p12_file): Ditto.
+
2008-12-17 Werner Koch <[email protected]>
* gpg-agent.c (handle_connections): Set action of all pth event
diff --git a/agent/protect-tool.c b/agent/protect-tool.c
index ddf91e03d..848ad9f4b 100644
--- a/agent/protect-tool.c
+++ b/agent/protect-tool.c
@@ -754,7 +754,11 @@ import_p12_file (const char *fname)
gcry_sexp_release (s_key);
- rc = agent_protect (key, (pw=get_new_passphrase (4)), &result, &resultlen);
+ pw = get_new_passphrase (4);
+ if (!pw)
+ rc = gpg_error (GPG_ERR_CANCELED);
+ else
+ rc = agent_protect (key, pw, &result, &resultlen);
release_passphrase (pw);
xfree (key);
if (rc)
@@ -981,8 +985,11 @@ export_p12_file (const char *fname)
kparms[7] = sk.u;
kparms[8] = NULL;
- key = p12_build (kparms, cert, certlen,
- (pw=get_new_passphrase (3)), opt_p12_charset, &keylen);
+ pw = get_new_passphrase (3);
+ if (!pw)
+ key = NULL;
+ else
+ key = p12_build (kparms, cert, certlen, pw, opt_p12_charset, &keylen);
release_passphrase (pw);
xfree (cert);
for (i=0; i < 8; i++)