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 *formatbuf = NULL;
|
||||||
void **arg_list = NULL;
|
void **arg_list = NULL;
|
||||||
estream_t format = NULL;
|
estream_t format = NULL;
|
||||||
|
char *algo_name = NULL;
|
||||||
|
|
||||||
if ((key_spec.flags & SPEC_FLAG_IS_EdDSA))
|
if ((key_spec.flags & SPEC_FLAG_IS_EdDSA))
|
||||||
{
|
{
|
||||||
@ -1723,7 +1723,6 @@ sexp_key_construct (gcry_sexp_t *r_sexp,
|
|||||||
const char *elems;
|
const char *elems;
|
||||||
size_t elems_n;
|
size_t elems_n;
|
||||||
unsigned int i, j;
|
unsigned int i, j;
|
||||||
const char *algo_name;
|
|
||||||
|
|
||||||
if (secret)
|
if (secret)
|
||||||
elems = key_spec.elems_sexp_order;
|
elems = key_spec.elems_sexp_order;
|
||||||
@ -1750,7 +1749,13 @@ sexp_key_construct (gcry_sexp_t *r_sexp,
|
|||||||
|
|
||||||
es_fputs ("(%s(%s", format);
|
es_fputs ("(%s(%s", format);
|
||||||
arg_list[arg_idx++] = &key_identifier[secret];
|
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;
|
arg_list[arg_idx++] = &algo_name;
|
||||||
if (curve_name)
|
if (curve_name)
|
||||||
{
|
{
|
||||||
@ -1798,6 +1803,7 @@ sexp_key_construct (gcry_sexp_t *r_sexp,
|
|||||||
es_fclose (format);
|
es_fclose (format);
|
||||||
xfree (arg_list);
|
xfree (arg_list);
|
||||||
xfree (formatbuf);
|
xfree (formatbuf);
|
||||||
|
xfree (algo_name);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user