From ebf24e3b29766595204355d82f435a3e675bfbbc Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 9 Aug 2016 11:42:20 +0900 Subject: [PATCH] agent: SSH support improvement. * agent/command-ssh.c (ssh_handler_request_identities): Skip a key with error, not giving up to handle the request itself. * agent/cvt-openpgp.c (extract_private_key): Support "ecdsa" key. -- Note that "ecdsa" key is still in use by old versions of gpg-agent through its SSH handling (until 2.1.14). With old versions of gpg-agent, adding ECDSA key by ssh-add command, "ecdsa" key will be created. So, "ecdsa" key should be supported. For g10/gpg, "ecdsa" and "ecdh" was only used in some experimental versions of libgcrypt, with parameters. We now use "ecc" for all cases in released versions. Signed-off-by: NIIBE Yutaka --- agent/command-ssh.c | 2 +- agent/cvt-openpgp.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/agent/command-ssh.c b/agent/command-ssh.c index df38ad6d8..b01cc067f 100644 --- a/agent/command-ssh.c +++ b/agent/command-ssh.c @@ -2618,7 +2618,7 @@ ssh_handler_request_identities (ctrl_t ctrl, if (err) { log_error ("failed to read the public key\n"); - goto out; + continue; } err = ssh_send_key_public (key_blobs, key_public, NULL); diff --git a/agent/cvt-openpgp.c b/agent/cvt-openpgp.c index 40d9a3e06..eb420b061 100644 --- a/agent/cvt-openpgp.c +++ b/agent/cvt-openpgp.c @@ -1271,7 +1271,7 @@ extract_private_key (gcry_sexp_t s_key, int req_private_key_data, array+0, array+1, array+2, array+3, array+4, NULL); } - else if (!strcmp (name, "ecc")) + else if (!strcmp (name, "ecc") || !strcmp (name, "ecdsa")) { algoname = "ecc"; format = "qd?";