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
suitable for printing. */
const char *
@ -341,13 +341,13 @@ openpgp_oid_to_curve (const char *oidstr)
int i;
if (!oidstr)
return "";
return NULL;
for (i=0; oidtable[i].name; i++)
if (!strcmp (oidtable[i].oidstr, oidstr))
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 ();
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);
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]);
const char *name = openpgp_oid_to_curve (curve);
if (*name && *name != '?')
if (name)
snprintf (buffer, bufsize, "%s", name);
else if (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]);
const char *name = openpgp_oid_to_curve (curve);
if (!*name || *name == '?')
if (!name)
name = curve;
es_fprintf (es_stdout, " %s", name);
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]);
const char *name = openpgp_oid_to_curve (curve);
if (!*name || *name == '?')
if (!name)
name = curve;
es_fputs (name, es_stdout);
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]);
const char *name = openpgp_oid_to_curve (curve);
if (!*name || *name == '?')
if (!name)
name = curve;
es_fputs (name, es_stdout);
xfree (curve);

View File

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