mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-23 15:07:03 +01:00
agent: Skip unknown unknown ssh curves seen on cards.
* agent/command-ssh.c (ssh_handler_request_identities): Skip unknown curves. -- For example when using my standard ed25519 token and testing cards with only Brainpool support, the ssh-agent failed due to the unknown curves seen on the card. This patches fixes this by ignoring keys with unknown curves. Signed-off-by: Werner Koch <wk@gnupg.org> (cherry picked from commit 2d2391dfc25cfe160581b1bb4b4b8fc4764ac304)
This commit is contained in:
parent
a456303ae3
commit
bbf4bd3bfc
@ -2608,19 +2608,29 @@ ssh_handler_request_identities (ctrl_t ctrl,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
err = ssh_send_key_public (key_blobs, key_public, cardsn);
|
err = ssh_send_key_public (key_blobs, key_public, cardsn);
|
||||||
if (err && opt.verbose)
|
|
||||||
gcry_log_debugsxp ("pubkey", key_public);
|
|
||||||
gcry_sexp_release (key_public);
|
gcry_sexp_release (key_public);
|
||||||
key_public = NULL;
|
key_public = NULL;
|
||||||
xfree (cardsn);
|
xfree (cardsn);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
xfree (serialno);
|
if (opt.verbose)
|
||||||
free_strlist (card_list);
|
gcry_log_debugsxp ("pubkey", key_public);
|
||||||
goto out;
|
if (gpg_err_code (err) == GPG_ERR_UNKNOWN_CURVE
|
||||||
|
|| gpg_err_code (err) == GPG_ERR_INV_CURVE)
|
||||||
|
{
|
||||||
|
/* For example a Brainpool curve or a curve we don't
|
||||||
|
* support at all but a smartcard lists that curve.
|
||||||
|
* We ignore them. */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
xfree (serialno);
|
||||||
|
free_strlist (card_list);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
key_counter++;
|
key_counter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
xfree (serialno);
|
xfree (serialno);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user