mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
agent: Support importing v5 key.
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
92a9c24ea1
commit
ad7a9b0a6a
@ -32,7 +32,7 @@
|
||||
/* Helper to pass data via the callback to do_unprotect. */
|
||||
struct try_do_unprotect_arg_s
|
||||
{
|
||||
int is_v4;
|
||||
int pkt_version;
|
||||
int is_protected;
|
||||
int pubkey_algo;
|
||||
const char *curve;
|
||||
@ -737,7 +737,7 @@ try_do_unprotect_cb (struct pin_entry_info_s *pi)
|
||||
struct try_do_unprotect_arg_s *arg = pi->check_cb_arg;
|
||||
|
||||
err = do_unprotect (pi->pin,
|
||||
arg->is_v4? 4:3,
|
||||
arg->pkt_version,
|
||||
arg->pubkey_algo, arg->is_protected,
|
||||
arg->curve,
|
||||
arg->skey, arg->skeysize,
|
||||
@ -772,7 +772,7 @@ convert_from_openpgp_main (ctrl_t ctrl, gcry_sexp_t s_pgp, int dontcare_exist,
|
||||
size_t valuelen;
|
||||
char *string;
|
||||
int idx;
|
||||
int is_v4, is_protected;
|
||||
int pkt_version, is_protected;
|
||||
int pubkey_algo;
|
||||
int protect_algo = 0;
|
||||
char iv[16];
|
||||
@ -802,9 +802,16 @@ convert_from_openpgp_main (ctrl_t ctrl, gcry_sexp_t s_pgp, int dontcare_exist,
|
||||
if (!list)
|
||||
goto bad_seckey;
|
||||
value = gcry_sexp_nth_data (list, 1, &valuelen);
|
||||
if (!value || valuelen != 1 || !(value[0] == '3' || value[0] == '4'))
|
||||
if (!value || valuelen != 1)
|
||||
goto bad_seckey;
|
||||
if (value[0] == '3')
|
||||
pkt_version = 3;
|
||||
else if (value[0] == '4')
|
||||
pkt_version = 4;
|
||||
else if (value[0] == '5')
|
||||
pkt_version = 5;
|
||||
else
|
||||
goto bad_seckey;
|
||||
is_v4 = (value[0] == '4');
|
||||
|
||||
gcry_sexp_release (list);
|
||||
list = gcry_sexp_find_token (top_list, "protection", 0);
|
||||
@ -948,7 +955,7 @@ convert_from_openpgp_main (ctrl_t ctrl, gcry_sexp_t s_pgp, int dontcare_exist,
|
||||
gcry_sexp_release (top_list); top_list = NULL;
|
||||
|
||||
#if 0
|
||||
log_debug ("XXX is_v4=%d\n", is_v4);
|
||||
log_debug ("XXX pkt_version=%d\n", pkt_version);
|
||||
log_debug ("XXX pubkey_algo=%d\n", pubkey_algo);
|
||||
log_debug ("XXX is_protected=%d\n", is_protected);
|
||||
log_debug ("XXX protect_algo=%d\n", protect_algo);
|
||||
@ -1002,7 +1009,7 @@ convert_from_openpgp_main (ctrl_t ctrl, gcry_sexp_t s_pgp, int dontcare_exist,
|
||||
pi->max_tries = 3;
|
||||
pi->check_cb = try_do_unprotect_cb;
|
||||
pi->check_cb_arg = &pi_arg;
|
||||
pi_arg.is_v4 = is_v4;
|
||||
pi_arg.pkt_version = pkt_version;
|
||||
pi_arg.is_protected = is_protected;
|
||||
pi_arg.pubkey_algo = pubkey_algo;
|
||||
pi_arg.curve = curve;
|
||||
|
Loading…
x
Reference in New Issue
Block a user