diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt
index f73b645..fcd1e8b 100644
--- a/programs/CMakeLists.txt
+++ b/programs/CMakeLists.txt
@@ -1,6 +1,7 @@
 add_subdirectory(aes)
 add_subdirectory(hash)
 add_subdirectory(pkey)
+add_subdirectory(random)
 add_subdirectory(ssl)
 add_subdirectory(test)
 add_subdirectory(x509)
diff --git a/programs/Makefile b/programs/Makefile
index 37c867a..025d8f5 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -15,9 +15,10 @@
 	pkey/mpi_demo		pkey/rsa_genkey		\
 	pkey/rsa_sign		pkey/rsa_verify		\
 	ssl/ssl_client1		ssl/ssl_client2		\
-	ssl/ssl_server		test/ssl_cert_test	\
-	test/benchmark		test/selftest		\
-	test/ssl_test		x509/cert_app
+	ssl/ssl_server		random/gen_random	\
+	test/ssl_cert_test	test/benchmark		\
+	test/selftest		test/ssl_test		\
+	x509/cert_app
 
 .SILENT:
 
@@ -79,6 +80,10 @@
 	echo   "  CC    pkey/rsa_verify.c"
 	$(CC) $(CFLAGS) $(OFLAGS) pkey/rsa_verify.c  $(LDFLAGS) -o $@
 
+random/gen_random: random/gen_random.c ../library/libpolarssl.a
+	echo   "  CC    random/gen_random.c"
+	$(CC) $(CFLAGS) $(OFLAGS) random/gen_random.c $(LDFLAGS) -o $@
+
 ssl/ssl_client1: ssl/ssl_client1.c ../library/libpolarssl.a
 	echo   "  CC    ssl/ssl_client1.c"
 	$(CC) $(CFLAGS) $(OFLAGS) ssl/ssl_client1.c  $(LDFLAGS) -o $@
diff --git a/programs/random/CMakeLists.txt b/programs/random/CMakeLists.txt
new file mode 100644
index 0000000..3196e46
--- /dev/null
+++ b/programs/random/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_executable(gen_random gen_random.c)
+target_link_libraries(gen_random polarssl)
+
+INSTALL(TARGETS gen_random
+        DESTINATION "bin"
+        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
diff --git a/programs/random/gen_random.c b/programs/random/gen_random.c
new file mode 100644
index 0000000..a44e8a3
--- /dev/null
+++ b/programs/random/gen_random.c
@@ -0,0 +1,72 @@
+/**
+ *  \brief Generate random data into a file
+ *
+ *  Copyright (C) 2006-2010, Brainspark B.V.
+ *
+ *  This file is part of PolarSSL (http://www.polarssl.org)
+ *  Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
+ *
+ *  All rights reserved.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "polarssl/config.h"
+#include "polarssl/havege.h"
+#include <time.h>
+#include <stdio.h>
+
+int main( int argc, char *argv[] )
+{
+    FILE *f;
+    time_t t;
+    int i, j, k;
+    havege_state hs;
+    unsigned char buf[1024];
+
+    if( argc < 2 )
+    {
+        fprintf( stderr, "usage: %s <output filename>\n", argv[0] );
+        return( 1 );
+    }
+
+    if( ( f = fopen( argv[1], "wb+" ) ) == NULL )
+    {
+        printf( "failed to open '%s' for writing.\n", argv[0] );
+        return( 1 );
+    }
+
+    havege_init( &hs );
+
+    t = time( NULL );
+
+    for( i = 0, k = 768; i < k; i++ )
+    {
+        for( j = 0; j < (int) sizeof( buf ); j++ )
+            buf[j] = havege_rand( &hs );
+
+        fwrite( buf, sizeof( buf ), 1, f );
+
+        printf( "Generating 32Mb of data in file '%s'... %04.1f" \
+                "%% done\r", argv[1], (100 * (float) (i + 1)) / k );
+        fflush( stdout );
+    }
+
+    if( t == time( NULL ) )
+        t--;
+
+    fclose( f );
+    return( 0 );
+}
