diff options
author | NIIBE Yutaka <[email protected]> | 2015-08-10 10:13:13 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2015-08-10 10:13:13 +0000 |
commit | 8704c70108218a60f8fb2ee0e558ca8ed125600d (patch) | |
tree | 932b98d20892447d216dc05405464fcf02634b79 | |
parent | common/iobuf.c: Replace use of literals with symbolic constants. (diff) | |
download | gnupg-8704c70108218a60f8fb2ee0e558ca8ed125600d.tar.gz gnupg-8704c70108218a60f8fb2ee0e558ca8ed125600d.zip |
agent: fix ECC key handling.
* agent/cvt-openpgp.c (get_keygrip, convert_secret_key)
(convert_transfer_key): CURVE is the name of curve.
-rw-r--r-- | agent/cvt-openpgp.c | 58 |
1 files changed, 20 insertions, 38 deletions
diff --git a/agent/cvt-openpgp.c b/agent/cvt-openpgp.c index 39ccba290..8bf587342 100644 --- a/agent/cvt-openpgp.c +++ b/agent/cvt-openpgp.c @@ -87,16 +87,10 @@ get_keygrip (int pubkey_algo, const char *curve, gcry_mpi_t *pkey, { const char *format; - if (!strcmp (curve, openpgp_curve_to_oid ("Ed25519", NULL))) - { - format = "(public-key(ecc(curve %s)(flags eddsa)(q%m)))"; - curve = "Ed25519"; - } - else if (!strcmp (curve, openpgp_curve_to_oid ("Curve25519", NULL))) - { - format = "(public-key(ecc(curve %s)(flags djb-tweak)(q%m)))"; - curve = "Curve25519"; - } + if (!strcmp (curve, "Ed25519")) + format = "(public-key(ecc(curve %s)(flags eddsa)(q%m)))"; + else if (!strcmp (curve, "Curve25519")) + format = "(public-key(ecc(curve %s)(flags djb-tweak)(q%m)))"; else format = "(public-key(ecc(curve %s)(q%m)))"; @@ -161,18 +155,12 @@ convert_secret_key (gcry_sexp_t *r_key, int pubkey_algo, gcry_mpi_t *skey, { const char *format; - if (!strcmp (curve, openpgp_curve_to_oid ("Ed25519", NULL))) - { - /* Do not store the OID as name but the real name and the - EdDSA flag. */ - format = "(private-key(ecc(curve %s)(flags eddsa)(q%m)(d%m)))"; - curve = "Ed25519"; - } - else if (!strcmp (curve, openpgp_curve_to_oid ("Curve25519", NULL))) - { - format = "(private-key(ecc(curve %s)(flags djb-tweak)(q%m)(d%m)))"; - curve = "Curve25519"; - } + if (!strcmp (curve, "Ed25519")) + /* Do not store the OID as name but the real name and the + EdDSA flag. */ + format = "(private-key(ecc(curve %s)(flags eddsa)(q%m)(d%m)))"; + else if (!strcmp (curve, "Curve25519")) + format = "(private-key(ecc(curve %s)(flags djb-tweak)(q%m)(d%m)))"; else format = "(private-key(ecc(curve %s)(q%m)(d%m)))"; @@ -239,23 +227,17 @@ convert_transfer_key (gcry_sexp_t *r_key, int pubkey_algo, gcry_mpi_t *skey, { const char *format; - if (!strcmp (curve, openpgp_curve_to_oid ("Ed25519", NULL))) - { - /* Do not store the OID as name but the real name and the - EdDSA flag. */ - format = "(protected-private-key(ecc(curve %s)(flags eddsa)(q%m)" - "(protected openpgp-native%S)))"; - curve = "Ed25519"; - } - else if (!strcmp (curve, openpgp_curve_to_oid ("Curve25519", NULL))) - { - format = "(protected-private-key(ecc(curve %s)(flags djb-tweak)(q%m)" - "(protected openpgp-native%S)))"; - curve = "Curve25519"; - } + if (!strcmp (curve, "Ed25519")) + /* Do not store the OID as name but the real name and the + EdDSA flag. */ + format = "(protected-private-key(ecc(curve %s)(flags eddsa)(q%m)" + "(protected openpgp-native%S)))"; + else if (!strcmp (curve, "Curve25519")) + format = "(protected-private-key(ecc(curve %s)(flags djb-tweak)(q%m)" + "(protected openpgp-native%S)))"; else - format = "(protected-private-key(ecc(curve %s)(q%m)" - "(protected openpgp-native%S)))"; + format = "(protected-private-key(ecc(curve %s)(q%m)" + "(protected openpgp-native%S)))"; err = gcry_sexp_build (&s_skey, NULL, format, curve, skey[0], transfer_key); } |