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 <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2016-08-09 11:42:20 +09:00
parent 491d6fdabb
commit ebf24e3b29
2 changed files with 2 additions and 2 deletions

View File

@ -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);

View File

@ -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?";