-  Added mpi_fill_random() for centralized filling of big numbers with random data (Fixed ticket #10)

diff --git a/library/dhm.c b/library/dhm.c
index 9b99a2b..bcad7fc 100644
--- a/library/dhm.c
+++ b/library/dhm.c
@@ -138,12 +138,8 @@
      * Generate X as large as possible ( < P )
      */
     n = x_size / sizeof( t_int ) + 1;
-    MPI_CHK( mpi_grow( &ctx->X, n ) );
-    MPI_CHK( mpi_lset( &ctx->X, 0 ) );
 
-    p = (unsigned char *) ctx->X.p;
-    for( i = 0; i < x_size; i++ )
-        *p++ = (unsigned char) f_rng( p_rng );
+    mpi_fill_random( &ctx->X, n, f_rng, p_rng );
 
     while( mpi_cmp_mpi( &ctx->X, &ctx->P ) >= 0 )
            mpi_shift_r( &ctx->X, 1 );
@@ -220,12 +216,8 @@
      * generate X and calculate GX = G^X mod P
      */
     n = x_size / sizeof( t_int ) + 1;
-    MPI_CHK( mpi_grow( &ctx->X, n ) );
-    MPI_CHK( mpi_lset( &ctx->X, 0 ) );
 
-    p = (unsigned char *) ctx->X.p;
-    for( i = 0; i < x_size; i++ )
-        *p++ = (unsigned char) f_rng( p_rng );
+    mpi_fill_random( &ctx->X, n, f_rng, p_rng );
 
     while( mpi_cmp_mpi( &ctx->X, &ctx->P ) >= 0 )
            mpi_shift_r( &ctx->X, 1 );