aboutsummaryrefslogtreecommitdiffstats
path: root/sm/certcheck.c
diff options
context:
space:
mode:
Diffstat (limited to 'sm/certcheck.c')
-rw-r--r--sm/certcheck.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sm/certcheck.c b/sm/certcheck.c
index 8a9c2c2b2..0e609a2df 100644
--- a/sm/certcheck.c
+++ b/sm/certcheck.c
@@ -103,13 +103,19 @@ do_encode_md (GCRY_MD_HD md, int algo, unsigned int nbits,
int
gpgsm_check_cert_sig (KsbaCert issuer_cert, KsbaCert cert)
{
+ const char *algoid;
GCRY_MD_HD md;
int rc, algo;
GCRY_MPI frame;
char *p;
GCRY_SEXP s_sig, s_hash, s_pkey;
- algo = ksba_cert_get_digest_algo (cert);
+ algo = gcry_md_map_name ( (algoid=ksba_cert_get_digest_algo (cert)));
+ if (!algo)
+ {
+ log_error ("unknown hash algorithm `%s'\n", algoid? algoid:"?");
+ return GPGSM_General_Error;
+ }
md = gcry_md_open (algo, 0);
if (!md)
{