From b5b20f19e7191f50a88edadde217f64d8a58e192 Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Sun, 16 Sep 2012 15:07:49 +0000
Subject: [PATCH] - Extra sanity check for input added
---
library/dhm.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/library/dhm.c b/library/dhm.c
index 4a5957162..90e5b4b19 100644
--- a/library/dhm.c
+++ b/library/dhm.c
@@ -128,6 +128,9 @@ int dhm_make_params( dhm_context *ctx, int x_size,
size_t n1, n2, n3;
unsigned char *p;
+ if( mpi_cmp_int( &ctx->P, 0 ) == 0 )
+ return( POLARSSL_ERR_DHM_BAD_INPUT_DATA );
+
/*
* Generate X as large as possible ( < P )
*/
@@ -211,6 +214,9 @@ int dhm_make_public( dhm_context *ctx, int x_size,
if( ctx == NULL || olen < 1 || olen > ctx->len )
return( POLARSSL_ERR_DHM_BAD_INPUT_DATA );
+ if( mpi_cmp_int( &ctx->P, 0 ) == 0 )
+ return( POLARSSL_ERR_DHM_BAD_INPUT_DATA );
+
/*
* generate X and calculate GX = G^X mod P
*/