From 4c48abebfe7b595328cb32b20ebed92e52d040df Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 18 Apr 2007 13:03:35 +0000 Subject: [PATCH] sm/ * certcheck.c (do_encode_md): Support 160 bit ECDSA. --- sm/ChangeLog | 4 ++++ sm/certcheck.c | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sm/ChangeLog b/sm/ChangeLog index 426e44e8b..652e35ccd 100644 --- a/sm/ChangeLog +++ b/sm/ChangeLog @@ -1,3 +1,7 @@ +2007-04-18 Werner Koch + + * certcheck.c (do_encode_md): Support 160 bit ECDSA. + 2007-04-13 Werner Koch * call-agent.c (start_agent): Don't use log_error when using the diff --git a/sm/certcheck.c b/sm/certcheck.c index efb1414cc..64fa67b92 100644 --- a/sm/certcheck.c +++ b/sm/certcheck.c @@ -44,7 +44,7 @@ do_encode_md (gcry_md_hd_t md, int algo, int pkalgo, unsigned int nbits, size_t nframe; unsigned char *frame; - if (pkalgo == GCRY_PK_DSA) + if (pkalgo == GCRY_PK_DSA || pkalgo == GCRY_PK_ECDSA) { nframe = gcry_md_get_algo_dlen (algo); if (nframe != 20) @@ -143,6 +143,12 @@ pk_algo_from_sexp (gcry_sexp_t pkey) algo = GCRY_PK_RSA; else if (n==3 && !memcmp (name, "dsa", 3)) algo = GCRY_PK_DSA; + else if (n==5 && !memcmp (name, "ecdsa", 5)) + algo = GCRY_PK_ECDSA; + /* Because this function is called only for verification we can + assume that ECC actually means ECDSA. */ + else if (n==3 && !memcmp (name, "ecc", 3)) + algo = GCRY_PK_ECDSA; else if (n==13 && !memcmp (name, "ambiguous-rsa", 13)) algo = GCRY_PK_RSA; else