From 544b4047de689519ab3e6ec55b776b95b3e264a9 Mon Sep 17 00:00:00 2001 From: Niels Möller <nisse@lysator.liu.se> Date: Thu, 4 Aug 2016 10:22:26 +0200 Subject: [PATCH] Check for invalid keys, with even p, in dsa_sign. --- dsa-sign.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/dsa-sign.c b/dsa-sign.c index 9d6bb18..b713743 100644 --- a/dsa-sign.c +++ b/dsa-sign.c @@ -56,6 +56,11 @@ dsa_sign(const struct dsa_params *params, mpz_t tmp; int res; + /* Check that p is odd, so that invalid keys don't result in a crash + inside mpz_powm_sec. */ + if (mpz_even_p (params->p)) + return 0; + /* Select k, 0<k<q, randomly */ mpz_init_set(tmp, params->q); mpz_sub_ui(tmp, tmp, 1); -- libgit2 0.24.0