From 2b50f942672d9a2c325a818f21f69d3ee69255d3 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 27 May 2021 17:03:49 +0900 Subject: [PATCH] gpg: Ed448 and X448 are only for v5 for --full-gen-key. * g10/keygen.c (generate_keypair): Set pVERSION = 5, pSUBVERSION = 5, when it's Ed448 or X448. -- Fixes-commit: 36355394d865f5760075e62267d70f7a7d5dd671 Signed-off-by: NIIBE Yutaka --- g10/keygen.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/g10/keygen.c b/g10/keygen.c index 82f6bb880..239e7aca1 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -4955,6 +4955,14 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname, strcpy (r->u.value, curve); r->next = para; para = r; + if (!strcmp (curve, "Ed448")) + { + r = xmalloc_clear (sizeof *r + 20); + r->key = pVERSION; + snprintf (r->u.value, 20, "%d", 5); + r->next = para; + para = r; + } } else { @@ -4999,7 +5007,14 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname, if (!strcmp (curve, "Ed25519")) curve = "Curve25519"; else - curve = "X448"; + { + curve = "X448"; + r = xmalloc_clear (sizeof *r + 20); + r->key = pSUBVERSION; + snprintf (r->u.value, 20, "%d", 5); + r->next = para; + para = r; + } } r = xmalloc_clear (sizeof *r + strlen (curve)); r->key = pSUBKEYCURVE; @@ -5022,6 +5037,14 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname, strcpy (r->u.value, curve); r->next = para; para = r; + if (!strcmp (curve, "Ed448")) + { + r = xmalloc_clear (sizeof *r + 20); + r->key = pVERSION; + snprintf (r->u.value, 20, "%d", 5); + r->next = para; + para = r; + } } r = xmalloc_clear( sizeof *r + 20 );