aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 );