g10: Use canonical name for curve.
authorNIIBE Yutaka <gniibe@fsij.org>
Wed, 8 Jul 2015 06:05:06 +0000 (15:05 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Wed, 8 Jul 2015 06:05:06 +0000 (15:05 +0900)
* 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.

common/openpgp-oid.c
g10/import.c
g10/keyid.c
g10/keylist.c
g10/parse-packet.c

index 7a75801..676079c 100644 (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;
 }
 
 
index de22520..0a2ebcd 100644 (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)
                 {
index 90d982e..6b6f670 100644 (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);
index d4e572e..d81e7dd 100644 (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);
index 5116404..6131d32 100644 (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);