From fc36d16e84086d42a2cdd55559a25fc35a9b8922 Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Thu, 27 Jan 2011 16:50:02 +0000
Subject: [PATCH] - Added random generation example application
---
programs/CMakeLists.txt | 1 +
programs/Makefile | 11 ++++--
programs/random/CMakeLists.txt | 6 +++
programs/random/gen_random.c | 72 ++++++++++++++++++++++++++++++++++
4 files changed, 87 insertions(+), 3 deletions(-)
create mode 100644 programs/random/CMakeLists.txt
create mode 100644 programs/random/gen_random.c
diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt
index f73b645b3d..fcd1e8b1f9 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 37c867a51d..025d8f5d24 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -15,9 +15,10 @@ APPS = aes/aescrypt2 aes/crypt_and_hash \
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 @@ pkey/rsa_verify: pkey/rsa_verify.c ../library/libpolarssl.a
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 0000000000..3196e467cb
--- /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 0000000000..a44e8a35ae
--- /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
+ *
+ * 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
+#include
+
+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