From 86cb04a23d2b0849cf684238d6d704aa45293214 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Wed, 29 Sep 2021 09:56:58 +0900 Subject: [PATCH] gpg: Ed448 and X448 are only for v5 (for subkey). * g10/keygen.c (generate_subkeypair): Specify KEYGEN_FLAG_CREATE_V5_KEY for Ed448 or X448 key. -- Reported-by: William Holmes Fixes-commit: 36355394d865f5760075e62267d70f7a7d5dd671 GnuPG-bug-id: 5609 Signed-off-by: NIIBE Yutaka --- g10/keygen.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/g10/keygen.c b/g10/keygen.c index 239e7aca1..cb6487ea3 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -5879,7 +5879,12 @@ generate_subkeypair (ctrl_t ctrl, kbnode_t keyblock, const char *algostr, else if (algo == PUBKEY_ALGO_ECDSA || algo == PUBKEY_ALGO_EDDSA || algo == PUBKEY_ALGO_ECDH) - curve = ask_curve (&algo, NULL, NULL); + { + curve = ask_curve (&algo, NULL, NULL); + + if (curve && (!strcmp (curve, "X448") || !strcmp (curve, "Ed448"))) + keygen_flags |= KEYGEN_FLAG_CREATE_V5_KEY; + } else nbits = ask_keysize (algo, 0);