aboutsummaryrefslogtreecommitdiffstats
path: root/sm/certcheck.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2001-11-20 18:28:53 +0000
committerWerner Koch <[email protected]>2001-11-20 18:28:53 +0000
commitaa4f78a45aa436a2d451d2155bac214ce9c1ac61 (patch)
treebf34e0984c2b42039756248a558ca315b640c18d /sm/certcheck.c
parent * assuan.h: Prototype assuan_pipe_connect and assuan_pipe_disconnect. (diff)
downloadgnupg-aa4f78a45aa436a2d451d2155bac214ce9c1ac61.tar.gz
gnupg-aa4f78a45aa436a2d451d2155bac214ce9c1ac61.zip
Map Libksba's OIDs to Libgcrypt digest algo numbers.
The latest Libgcrypt CVS version is needed.
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)
{