1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-05 23:07:49 +02:00

g10: Use canonical name for curve.

* g10/import.c (transfer_secret_keys): Use canonical name.
* common/openpgp-oid.c (openpgp_curve_to_oid): Return NULL on error.
* g10/keyid.c (pubkey_string): Follow change of openpgp_curve_to_oid.
* g10/keylist.c (list_keyblock_print, list_keyblock_colon): Ditto.
* g10/parse-packet.c (parse_key): Ditto.
This commit is contained in:
NIIBE Yutaka 2015-07-08 15:05:06 +09:00
parent 1be2cebf7f
commit 5b46726931
5 changed files with 12 additions and 10 deletions

View File

@ -332,7 +332,7 @@ openpgp_curve_to_oid (const char *name, unsigned int *r_nbits)
} }
/* Map an OpenPGP OID to the Libgcrypt curve NAME. Returns "?" for /* Map an OpenPGP OID to the Libgcrypt curve NAME. Returns NULL for
unknown curve names. We prefer an alias name here which is more unknown curve names. We prefer an alias name here which is more
suitable for printing. */ suitable for printing. */
const char * const char *
@ -341,13 +341,13 @@ openpgp_oid_to_curve (const char *oidstr)
int i; int i;
if (!oidstr) if (!oidstr)
return ""; return NULL;
for (i=0; oidtable[i].name; i++) for (i=0; oidtable[i].name; i++)
if (!strcmp (oidtable[i].oidstr, oidstr)) if (!strcmp (oidtable[i].oidstr, oidstr))
return oidtable[i].alias? oidtable[i].alias : oidtable[i].name; return oidtable[i].alias? oidtable[i].alias : oidtable[i].name;
return "?"; return NULL;
} }

View File

@ -1414,7 +1414,9 @@ transfer_secret_keys (ctrl_t ctrl, struct stats_s *stats, kbnode_t sec_keyblock,
err = gpg_error_from_syserror (); err = gpg_error_from_syserror ();
else else
{ {
err = gcry_sexp_build (&curve, NULL, "(curve %s)", curvestr); const char *curvename = openpgp_oid_to_curve (curvestr);
err = gcry_sexp_build (&curve, NULL, "(curve %s)",
curvename?curvename:curvestr);
xfree (curvestr); xfree (curvestr);
if (!err) if (!err)
{ {

View File

@ -121,7 +121,7 @@ pubkey_string (PKT_public_key *pk, char *buffer, size_t bufsize)
char *curve = openpgp_oid_to_str (pk->pkey[0]); char *curve = openpgp_oid_to_str (pk->pkey[0]);
const char *name = openpgp_oid_to_curve (curve); const char *name = openpgp_oid_to_curve (curve);
if (*name && *name != '?') if (name)
snprintf (buffer, bufsize, "%s", name); snprintf (buffer, bufsize, "%s", name);
else if (curve) else if (curve)
snprintf (buffer, bufsize, "E_%s", curve); snprintf (buffer, bufsize, "E_%s", curve);

View File

@ -1092,7 +1092,7 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr,
{ {
char *curve = openpgp_oid_to_str (pk2->pkey[0]); char *curve = openpgp_oid_to_str (pk2->pkey[0]);
const char *name = openpgp_oid_to_curve (curve); const char *name = openpgp_oid_to_curve (curve);
if (!*name || *name == '?') if (!name)
name = curve; name = curve;
es_fprintf (es_stdout, " %s", name); es_fprintf (es_stdout, " %s", name);
xfree (curve); xfree (curve);
@ -1359,7 +1359,7 @@ list_keyblock_colon (KBNODE keyblock, int secret, int has_secret, int fpr)
{ {
char *curve = openpgp_oid_to_str (pk->pkey[0]); char *curve = openpgp_oid_to_str (pk->pkey[0]);
const char *name = openpgp_oid_to_curve (curve); const char *name = openpgp_oid_to_curve (curve);
if (!*name || *name == '?') if (!name)
name = curve; name = curve;
es_fputs (name, es_stdout); es_fputs (name, es_stdout);
xfree (curve); xfree (curve);
@ -1488,7 +1488,7 @@ list_keyblock_colon (KBNODE keyblock, int secret, int has_secret, int fpr)
{ {
char *curve = openpgp_oid_to_str (pk->pkey[0]); char *curve = openpgp_oid_to_str (pk->pkey[0]);
const char *name = openpgp_oid_to_curve (curve); const char *name = openpgp_oid_to_curve (curve);
if (!*name || *name == '?') if (!name)
name = curve; name = curve;
es_fputs (name, es_stdout); es_fputs (name, es_stdout);
xfree (curve); xfree (curve);

View File

@ -2086,8 +2086,8 @@ parse_key (IOBUF inp, int pkttype, unsigned long pktlen,
|| algorithm == PUBKEY_ALGO_ECDH) && i==0) || algorithm == PUBKEY_ALGO_ECDH) && i==0)
{ {
char *curve = openpgp_oid_to_str (pk->pkey[0]); char *curve = openpgp_oid_to_str (pk->pkey[0]);
es_fprintf (listfp, " %s (%s)", const char *name = openpgp_oid_to_curve (curve);
openpgp_oid_to_curve (curve), curve); es_fprintf (listfp, " %s (%s)", name?name:"", curve);
xfree (curve); xfree (curve);
} }
es_putc ('\n', listfp); es_putc ('\n', listfp);