From: Nikos Mavrogiannopoulos Date: Sat, 15 Jun 2013 14:38:10 +0000 (+0200) Subject: check for zero values when import DH parameters. X-Git-Tag: gnutls_3_2_2~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=093d1bf88e2ca22949c3b55cc1324c2f153cc7d7;p=thirdparty%2Fgnutls.git check for zero values when import DH parameters. --- diff --git a/lib/gnutls_dh_primes.c b/lib/gnutls_dh_primes.c index 03e7c4bf38..328f6ebf62 100644 --- a/lib/gnutls_dh_primes.c +++ b/lib/gnutls_dh_primes.c @@ -188,7 +188,7 @@ gnutls_dh_params_generate2 (gnutls_dh_params_t params, unsigned int bits) { int ret; gnutls_group_st group; - + ret = _gnutls_mpi_generate_group (&group, bits); if (ret < 0) { @@ -302,6 +302,12 @@ gnutls_dh_params_import_pkcs3 (gnutls_dh_params_t params, return result; } + if (_gnutls_mpi_cmp_ui(params->params[0], 0) == 0) + { + asn1_delete_structure (&c2); + return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER); + } + /* read the generator */ result = _gnutls_x509_read_int (c2, "base", ¶ms->params[1]); @@ -313,6 +319,13 @@ gnutls_dh_params_import_pkcs3 (gnutls_dh_params_t params, return result; } + if (_gnutls_mpi_cmp_ui(params->params[1], 0) == 0) + { + asn1_delete_structure (&c2); + _gnutls_mpi_release (¶ms->params[0]); + return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER); + } + asn1_delete_structure (&c2); return 0;