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
|
/* 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. Unless CANON is set we prefer an alias name
|
||||||
suitable for printing. */
|
here which is more suitable for printing. */
|
||||||
const char *
|
const char *
|
||||||
openpgp_oid_to_curve (const char *oidstr)
|
openpgp_oid_to_curve (const char *oidstr, int canon)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -345,7 +345,7 @@ openpgp_oid_to_curve (const char *oidstr)
|
|||||||
|
|
||||||
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 !canon && oidtable[i].alias? oidtable[i].alias : oidtable[i].name;
|
||||||
|
|
||||||
return NULL;
|
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);
|
char *openpgp_oid_to_str (gcry_mpi_t a);
|
||||||
int openpgp_oid_is_ed25519 (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_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);
|
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 ();
|
err = gpg_error_from_syserror ();
|
||||||
else
|
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)",
|
err = gcry_sexp_build (&curve, NULL, "(curve %s)",
|
||||||
curvename?curvename:curvestr);
|
curvename?curvename:curvestr);
|
||||||
xfree (curvestr);
|
xfree (curvestr);
|
||||||
|
@ -119,7 +119,7 @@ pubkey_string (PKT_public_key *pk, char *buffer, size_t bufsize)
|
|||||||
else if (prefix)
|
else if (prefix)
|
||||||
{
|
{
|
||||||
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, 0);
|
||||||
|
|
||||||
if (name)
|
if (name)
|
||||||
snprintf (buffer, bufsize, "%s", 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)
|
|| pk2->pubkey_algo == PUBKEY_ALGO_ECDH)
|
||||||
{
|
{
|
||||||
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, 0);
|
||||||
if (!name)
|
if (!name)
|
||||||
name = curve;
|
name = curve;
|
||||||
es_fprintf (es_stdout, " %s", name);
|
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)
|
|| pk->pubkey_algo == PUBKEY_ALGO_ECDH)
|
||||||
{
|
{
|
||||||
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, 0);
|
||||||
if (!name)
|
if (!name)
|
||||||
name = curve;
|
name = curve;
|
||||||
es_fputs (name, es_stdout);
|
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)
|
|| pk->pubkey_algo == PUBKEY_ALGO_ECDH)
|
||||||
{
|
{
|
||||||
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, 0);
|
||||||
if (!name)
|
if (!name)
|
||||||
name = curve;
|
name = curve;
|
||||||
es_fputs (name, es_stdout);
|
es_fputs (name, es_stdout);
|
||||||
|
@ -2086,7 +2086,7 @@ 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]);
|
||||||
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);
|
es_fprintf (listfp, " %s (%s)", name?name:"", curve);
|
||||||
xfree (curve);
|
xfree (curve);
|
||||||
}
|
}
|
||||||
|
@ -911,7 +911,7 @@ send_key_attr (ctrl_t ctrl, app_t app, const char *keyword, int keyno)
|
|||||||
keyno+1,
|
keyno+1,
|
||||||
app->app_local->keyattr[keyno].ecc.flags? PUBKEY_ALGO_EDDSA:
|
app->app_local->keyattr[keyno].ecc.flags? PUBKEY_ALGO_EDDSA:
|
||||||
(keyno==1? PUBKEY_ALGO_ECDH: PUBKEY_ALGO_ECDSA),
|
(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
|
else
|
||||||
snprintf (buffer, sizeof buffer, "%d 0 0 UNKNOWN", keyno+1);
|
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)))";
|
format = "(public-key(ecc(curve%s)(flags eddsa)(q%b)))";
|
||||||
|
|
||||||
err = gcry_sexp_build (&s_pkey, NULL, format,
|
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);
|
(int)mlen, mbuf);
|
||||||
if (err)
|
if (err)
|
||||||
goto leave;
|
goto leave;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user