mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-03 12:11:33 +01:00
agent: Fix regression in recent ssh changes.
* agent/command-ssh.c (sexp_key_construct): Lowercase the algo name. -- We need to use a lowercase version of the algo in S-expression. Unfortunately Libgcrypt has no function for this, thus we need to malloc and first. Fixes-commit: ebf24e3 Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
16feb1e0ea
commit
e630f90499
@ -1685,7 +1685,7 @@ sexp_key_construct (gcry_sexp_t *r_sexp,
|
||||
void *formatbuf = NULL;
|
||||
void **arg_list = NULL;
|
||||
estream_t format = NULL;
|
||||
|
||||
char *algo_name = NULL;
|
||||
|
||||
if ((key_spec.flags & SPEC_FLAG_IS_EdDSA))
|
||||
{
|
||||
@ -1723,7 +1723,6 @@ sexp_key_construct (gcry_sexp_t *r_sexp,
|
||||
const char *elems;
|
||||
size_t elems_n;
|
||||
unsigned int i, j;
|
||||
const char *algo_name;
|
||||
|
||||
if (secret)
|
||||
elems = key_spec.elems_sexp_order;
|
||||
@ -1750,7 +1749,13 @@ sexp_key_construct (gcry_sexp_t *r_sexp,
|
||||
|
||||
es_fputs ("(%s(%s", format);
|
||||
arg_list[arg_idx++] = &key_identifier[secret];
|
||||
algo_name = gcry_pk_algo_name (key_spec.algo);
|
||||
algo_name = xtrystrdup (gcry_pk_algo_name (key_spec.algo));
|
||||
if (!algo_name)
|
||||
{
|
||||
err = gpg_error_from_syserror ();
|
||||
goto out;
|
||||
}
|
||||
strlwr (algo_name);
|
||||
arg_list[arg_idx++] = &algo_name;
|
||||
if (curve_name)
|
||||
{
|
||||
@ -1798,6 +1803,7 @@ sexp_key_construct (gcry_sexp_t *r_sexp,
|
||||
es_fclose (format);
|
||||
xfree (arg_list);
|
||||
xfree (formatbuf);
|
||||
xfree (algo_name);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user