From 79b51bb8727bd3485229ac8ff5987558156d5d83 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 24 Dec 2015 14:19:53 +0900 Subject: agent: IMPORT_KEY with --force option fix. * agent/cvt-openpgp.c (convert_from_openpgp_main): Add an option not to check existing key. (convert_from_openpgp): Ditto. (convert_from_openpgp_native): Call convert_from_openpgp_main with dontcare_exist=0. * agent/command.c (cmd_import_key): Call with dontcare_exist=force. --- agent/cvt-openpgp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'agent/cvt-openpgp.c') diff --git a/agent/cvt-openpgp.c b/agent/cvt-openpgp.c index 0b9ecf083..8df6b8eb7 100644 --- a/agent/cvt-openpgp.c +++ b/agent/cvt-openpgp.c @@ -685,7 +685,7 @@ try_do_unprotect_cb (struct pin_entry_info_s *pi) silently decrypt the key; CACHE_NONCE and R_PASSPHRASE must both be NULL in this mode. */ static gpg_error_t -convert_from_openpgp_main (ctrl_t ctrl, gcry_sexp_t s_pgp, +convert_from_openpgp_main (ctrl_t ctrl, gcry_sexp_t s_pgp, int dontcare_exist, unsigned char *grip, const char *prompt, const char *cache_nonce, const char *passphrase, unsigned char **r_key, char **r_passphrase) @@ -894,7 +894,7 @@ convert_from_openpgp_main (ctrl_t ctrl, gcry_sexp_t s_pgp, if (err) goto leave; - if (!from_native && !agent_key_available (grip)) + if (!dontcare_exist && !from_native && !agent_key_available (grip)) { err = gpg_error (GPG_ERR_EEXIST); goto leave; @@ -1028,12 +1028,12 @@ convert_from_openpgp_main (ctrl_t ctrl, gcry_sexp_t s_pgp, the key. The keygrip will be stored at the 20 byte buffer pointed to by GRIP. On error NULL is stored at all return arguments. */ gpg_error_t -convert_from_openpgp (ctrl_t ctrl, gcry_sexp_t s_pgp, +convert_from_openpgp (ctrl_t ctrl, gcry_sexp_t s_pgp, int dontcare_exist, unsigned char *grip, const char *prompt, const char *cache_nonce, unsigned char **r_key, char **r_passphrase) { - return convert_from_openpgp_main (ctrl, s_pgp, grip, prompt, + return convert_from_openpgp_main (ctrl, s_pgp, dontcare_exist, grip, prompt, cache_nonce, NULL, r_key, r_passphrase); } @@ -1052,7 +1052,7 @@ convert_from_openpgp_native (ctrl_t ctrl, if (!passphrase) return gpg_error (GPG_ERR_INTERNAL); - err = convert_from_openpgp_main (ctrl, s_pgp, grip, NULL, + err = convert_from_openpgp_main (ctrl, s_pgp, 0, grip, NULL, NULL, passphrase, r_key, NULL); -- cgit v1.2.3