aboutsummaryrefslogtreecommitdiffstats
path: root/g10/pkglue.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/pkglue.c')
-rw-r--r--g10/pkglue.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/g10/pkglue.c b/g10/pkglue.c
index 137e520e4..bc6f30e94 100644
--- a/g10/pkglue.c
+++ b/g10/pkglue.c
@@ -192,14 +192,15 @@ pk_verify (pubkey_algo_t pkalgo, gcry_mpi_t hash,
{
const char *fmt;
gcry_mpi_t pubkey;
+ const char *curve_name = openpgp_oid_to_curve (curve, 1);
- pubkey = openpgp_ecc_parse_pubkey (pkalgo, curve, pkey[1]);
+ pubkey = openpgp_ecc_parse_pubkey (pkalgo, curve_name, pkey[1]);
if (openpgp_oid_is_ed25519 (pkey[0]))
fmt = "(public-key(ecc(curve %s)(flags eddsa)(q%m)))";
else
fmt = "(public-key(ecc(curve %s)(q%m)))";
- rc = gcry_sexp_build (&s_pkey, NULL, fmt, curve, pubkey);
+ rc = gcry_sexp_build (&s_pkey, NULL, fmt, curve_name, pubkey);
xfree (curve);
gcry_mpi_release (pubkey);
}
@@ -415,14 +416,15 @@ pk_encrypt (pubkey_algo_t algo, gcry_mpi_t *resarr, gcry_mpi_t data,
{
int with_djb_tweak_flag = openpgp_oid_is_cv25519 (pkey[0]);
gcry_mpi_t pubkey;
+ const char *curve_name = openpgp_oid_to_curve (curve, 1);
- pubkey = openpgp_ecc_parse_pubkey (algo, curve, pkey[1]);
+ pubkey = openpgp_ecc_parse_pubkey (algo, curve_name, pkey[1]);
/* Now use the ephemeral secret to compute the shared point. */
rc = gcry_sexp_build (&s_pkey, NULL,
with_djb_tweak_flag ?
"(public-key(ecc(curve%s)(flags djb-tweak)(q%m)))"
: "(public-key(ecc(curve%s)(q%m)))",
- curve, pubkey);
+ curve_name, pubkey);
xfree (curve);
gcry_mpi_release (pubkey);
/* Put K into a simplified S-expression. */
@@ -539,12 +541,13 @@ pk_check_secret_key (pubkey_algo_t pkalgo, gcry_mpi_t *skey)
{
gcry_mpi_t pubkey;
gcry_mpi_t seckey;
+ const char *curve_name = openpgp_oid_to_curve (curve, 1);
- pubkey = openpgp_ecc_parse_pubkey (pkalgo, curve, skey[1]);
- seckey = openpgp_ecc_parse_seckey (pkalgo, curve, skey[2]);
+ pubkey = openpgp_ecc_parse_pubkey (pkalgo, curve_name, skey[1]);
+ seckey = openpgp_ecc_parse_seckey (pkalgo, curve_name, skey[2]);
rc = gcry_sexp_build (&s_skey, NULL,
"(private-key(ecc(curve%s)(q%m)(d%m)))",
- curve, pubkey, seckey);
+ curve_name, pubkey, seckey);
xfree (curve);
gcry_mpi_release (pubkey);
gcry_mpi_release (seckey);
@@ -560,15 +563,16 @@ pk_check_secret_key (pubkey_algo_t pkalgo, gcry_mpi_t *skey)
const char *fmt;
gcry_mpi_t pubkey;
gcry_mpi_t seckey;
+ const char *curve_name = openpgp_oid_to_curve (curve, 1);
- pubkey = openpgp_ecc_parse_pubkey (pkalgo, curve, skey[1]);
- seckey = openpgp_ecc_parse_seckey (pkalgo, curve, skey[2]);
+ pubkey = openpgp_ecc_parse_pubkey (pkalgo, curve_name, skey[1]);
+ seckey = openpgp_ecc_parse_seckey (pkalgo, curve_name, skey[2]);
if (openpgp_oid_is_ed25519 (skey[0]))
fmt = "(private-key(ecc(curve %s)(flags eddsa)(q%m)(d%m)))";
else
fmt = "(private-key(ecc(curve %s)(q%m)(d%m)))";
- rc = gcry_sexp_build (&s_skey, NULL, fmt, curve, pubkey, seckey);
+ rc = gcry_sexp_build (&s_skey, NULL, fmt, curve_name, pubkey, seckey);
xfree (curve);
gcry_mpi_release (pubkey);
gcry_mpi_release (seckey);