aboutsummaryrefslogtreecommitdiffstats
path: root/sm/certreqgen.c
diff options
context:
space:
mode:
Diffstat (limited to 'sm/certreqgen.c')
-rw-r--r--sm/certreqgen.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sm/certreqgen.c b/sm/certreqgen.c
index 1d610c1bb..01fba30f5 100644
--- a/sm/certreqgen.c
+++ b/sm/certreqgen.c
@@ -807,8 +807,10 @@ create_request (ctrl_t ctrl,
if (err)
return err;
- string = get_parameter_value (para, pHASHALGO, 0);
- if (string)
+ len = gcry_sexp_canon_len (public, 0, NULL, NULL);
+ if (get_pk_algo_from_canon_sexp (public, len) == GCRY_PK_EDDSA)
+ mdalgo = GCRY_MD_SHA512;
+ else if ((string = get_parameter_value (para, pHASHALGO, 0)))
mdalgo = gcry_md_map_name (string);
else
mdalgo = GCRY_MD_SHA256;