diff options
author | Werner Koch <[email protected]> | 2014-07-24 14:16:53 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2014-07-25 06:25:06 +0000 |
commit | 557cc11a605dd280d03c52d8b546deed8c4c714d (patch) | |
tree | 5529931a8bdb0a9330ce65f9a1baedbffa588abb | |
parent | po: Update the German (de) translation (diff) | |
download | gnupg-557cc11a605dd280d03c52d8b546deed8c4c714d.tar.gz gnupg-557cc11a605dd280d03c52d8b546deed8c4c714d.zip |
gpg: Switch to an EdDSA format with prefix byte.
* g10/keygen.c (gen_ecc): USe "comp" for EdDSA.
Diffstat (limited to '')
-rw-r--r-- | g10/keygen.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/g10/keygen.c b/g10/keygen.c index d6b2dd091..af5d34d24 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -1526,12 +1526,23 @@ gen_ecc (int algo, const char *curve, kbnode_t pub_root, if (!curve || !*curve) return gpg_error (GPG_ERR_UNKNOWN_CURVE); - keyparms = xtryasprintf ("(genkey(ecc(curve %zu:%s)(flags nocomp%s%s)))", - strlen (curve), curve, - (((keygen_flags & KEYGEN_FLAG_TRANSIENT_KEY) - && (keygen_flags & KEYGEN_FLAG_NO_PROTECTION))? - " transient-key" : ""), - (!strcmp (curve, "Ed25519")? " eddsa":"")); + /* Note that we use the "comp" flag with EdDSA to request the use of + a 0x40 compression prefix octet. */ + if (algo == PUBKEY_ALGO_EDDSA) + keyparms = xtryasprintf + ("(genkey(ecc(curve %zu:%s)(flags eddsa comp%s)))", + strlen (curve), curve, + (((keygen_flags & KEYGEN_FLAG_TRANSIENT_KEY) + && (keygen_flags & KEYGEN_FLAG_NO_PROTECTION))? + " transient-key" : "")); + else + keyparms = xtryasprintf + ("(genkey(ecc(curve %zu:%s)(flags nocomp%s)))", + strlen (curve), curve, + (((keygen_flags & KEYGEN_FLAG_TRANSIENT_KEY) + && (keygen_flags & KEYGEN_FLAG_NO_PROTECTION))? + " transient-key" : "")); + if (!keyparms) err = gpg_error_from_syserror (); else @@ -3448,9 +3459,8 @@ quickgen_set_para (struct para_data_s *para, int for_subkey, } - /* - * Unattended generaion of a standard key. + * Unattended generation of a standard key. */ void quick_generate_keypair (const char *uid) |