aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2016-08-09 02:42:20 +0000
committerNIIBE Yutaka <[email protected]>2016-08-09 02:42:20 +0000
commitebf24e3b29766595204355d82f435a3e675bfbbc (patch)
treeca74a0e19ae9c8c31c7cd2f29091373367520363
parentgpg: Cleanup of dek_to_passphrase function (part 2). (diff)
downloadgnupg-ebf24e3b29766595204355d82f435a3e675bfbbc.tar.gz
gnupg-ebf24e3b29766595204355d82f435a3e675bfbbc.zip
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 <[email protected]>
-rw-r--r--agent/command-ssh.c2
-rw-r--r--agent/cvt-openpgp.c2
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?";