mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
common: extend API of openpgp_oid_to_curve for canonical name.
* common/openpgp-oid.c (openpgp_oid_to_curve): Add CANON argument. * common/util.h: Update. * g10/import.c (transfer_secret_keys): Follow the change. * g10/keyid.c (pubkey_string): Likewise. * g10/keylist.c (list_keyblock_print, list_keyblock_colon): Likewise. * parse-packet.c (parse_key): Likewise. * scd/app-openpgp.c (send_key_attr, get_public_key): Likewise. -- Change the function so that caller can select canonical name of curve or name for printing. Suggested by wk.
This commit is contained in:
parent
d088d2c816
commit
a6e4053089
@ -333,10 +333,10 @@ openpgp_curve_to_oid (const char *name, unsigned int *r_nbits)
|
||||
|
||||
|
||||
/* 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. */
|
||||
unknown curve names. Unless CANON is set we prefer an alias name
|
||||
here which is more suitable for printing. */
|
||||
const char *
|
||||
openpgp_oid_to_curve (const char *oidstr)
|
||||
openpgp_oid_to_curve (const char *oidstr, int canon)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -345,7 +345,7 @@ openpgp_oid_to_curve (const char *oidstr)
|
||||
|
||||
for (i=0; oidtable[i].name; i++)
|
||||
if (!strcmp (oidtable[i].oidstr, oidstr))
|
||||
return oidtable[i].alias? oidtable[i].alias : oidtable[i].name;
|
||||
return !canon && oidtable[i].alias? oidtable[i].alias : oidtable[i].name;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
@ -323,7 +323,7 @@ gpg_error_t openpgp_oid_from_str (const char *string, gcry_mpi_t *r_mpi);
|
||||
char *openpgp_oid_to_str (gcry_mpi_t a);
|
||||
int openpgp_oid_is_ed25519 (gcry_mpi_t a);
|
||||
const char *openpgp_curve_to_oid (const char *name, unsigned int *r_nbits);
|
||||
const char *openpgp_oid_to_curve (const char *oid);
|
||||
const char *openpgp_oid_to_curve (const char *oid, int canon);
|
||||
const char *openpgp_enum_curves (int *idxp);
|
||||
|
||||
|
||||
|
@ -1414,7 +1414,7 @@ transfer_secret_keys (ctrl_t ctrl, struct stats_s *stats, kbnode_t sec_keyblock,
|
||||
err = gpg_error_from_syserror ();
|
||||
else
|
||||
{
|
||||
const char *curvename = openpgp_oid_to_curve (curvestr);
|
||||
const char *curvename = openpgp_oid_to_curve (curvestr, 1);
|
||||
err = gcry_sexp_build (&curve, NULL, "(curve %s)",
|
||||
curvename?curvename:curvestr);
|
||||
xfree (curvestr);
|
||||
|
@ -119,7 +119,7 @@ pubkey_string (PKT_public_key *pk, char *buffer, size_t bufsize)
|
||||
else if (prefix)
|
||||
{
|
||||
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, 0);
|
||||
|
||||
if (name)
|
||||
snprintf (buffer, bufsize, "%s", name);
|
||||
|
@ -1091,7 +1091,7 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr,
|
||||
|| pk2->pubkey_algo == PUBKEY_ALGO_ECDH)
|
||||
{
|
||||
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, 0);
|
||||
if (!name)
|
||||
name = curve;
|
||||
es_fprintf (es_stdout, " %s", name);
|
||||
@ -1358,7 +1358,7 @@ list_keyblock_colon (KBNODE keyblock, int secret, int has_secret, int fpr)
|
||||
|| pk->pubkey_algo == PUBKEY_ALGO_ECDH)
|
||||
{
|
||||
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, 0);
|
||||
if (!name)
|
||||
name = curve;
|
||||
es_fputs (name, es_stdout);
|
||||
@ -1487,7 +1487,7 @@ list_keyblock_colon (KBNODE keyblock, int secret, int has_secret, int fpr)
|
||||
|| pk->pubkey_algo == PUBKEY_ALGO_ECDH)
|
||||
{
|
||||
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, 0);
|
||||
if (!name)
|
||||
name = curve;
|
||||
es_fputs (name, es_stdout);
|
||||
|
@ -2086,7 +2086,7 @@ parse_key (IOBUF inp, int pkttype, unsigned long pktlen,
|
||||
|| algorithm == PUBKEY_ALGO_ECDH) && i==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, 0);
|
||||
es_fprintf (listfp, " %s (%s)", name?name:"", curve);
|
||||
xfree (curve);
|
||||
}
|
||||
|
@ -911,7 +911,7 @@ send_key_attr (ctrl_t ctrl, app_t app, const char *keyword, int keyno)
|
||||
keyno+1,
|
||||
app->app_local->keyattr[keyno].ecc.flags? PUBKEY_ALGO_EDDSA:
|
||||
(keyno==1? PUBKEY_ALGO_ECDH: PUBKEY_ALGO_ECDSA),
|
||||
openpgp_oid_to_curve (app->app_local->keyattr[keyno].ecc.oid));
|
||||
openpgp_oid_to_curve (app->app_local->keyattr[keyno].ecc.oid, 0));
|
||||
}
|
||||
else
|
||||
snprintf (buffer, sizeof buffer, "%d 0 0 UNKNOWN", keyno+1);
|
||||
@ -1442,7 +1442,7 @@ get_public_key (app_t app, int keyno)
|
||||
format = "(public-key(ecc(curve%s)(flags eddsa)(q%b)))";
|
||||
|
||||
err = gcry_sexp_build (&s_pkey, NULL, format,
|
||||
openpgp_oid_to_curve (app->app_local->keyattr[keyno].ecc.oid),
|
||||
openpgp_oid_to_curve (app->app_local->keyattr[keyno].ecc.oid, 1),
|
||||
(int)mlen, mbuf);
|
||||
if (err)
|
||||
goto leave;
|
||||
|
Loading…
x
Reference in New Issue
Block a user