diff options
author | Werner Koch <[email protected]> | 2009-03-02 10:26:37 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2009-03-02 10:26:37 +0000 |
commit | 596a2237c723f956a0505a0df42d70f7b766ecb5 (patch) | |
tree | e9506f3a604b638a9c31b8f02ff61cf9b698465b | |
parent | Fix a gpg2 problem with removed cards. (diff) | |
download | gnupg-596a2237c723f956a0505a0df42d70f7b766ecb5.tar.gz gnupg-596a2237c723f956a0505a0df42d70f7b766ecb5.zip |
Fix bug#1003.
Diffstat (limited to '')
-rw-r--r-- | agent/ChangeLog | 6 | ||||
-rw-r--r-- | agent/protect-tool.c | 13 |
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++) |