aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2021-05-27 08:03:49 +0000
committerNIIBE Yutaka <[email protected]>2021-05-27 08:03:49 +0000
commit2b50f942672d9a2c325a818f21f69d3ee69255d3 (patch)
treee8b8d8cbf55f0ce809b7a6c8e2a87edd91094e61
parentbuild: _DARWIN_C_SOURCE should be 1. (diff)
downloadgnupg-2b50f942672d9a2c325a818f21f69d3ee69255d3.tar.gz
gnupg-2b50f942672d9a2c325a818f21f69d3ee69255d3.zip
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 <[email protected]>
-rw-r--r--g10/keygen.c25
1 files changed, 24 insertions, 1 deletions
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 );