commit 89f564c974aea859c440f637b8f9ec4f13167b1b
parent afb8588cf7ed1b14f8ef500287086e3669b16ac7
Author: Dominik Schmidt <das1993@hotmail.com>
Date: Sun, 22 Jun 2014 15:01:22 +0200
Randomness now generated with rand()
Diffstat:
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/include/Util/Misc.h b/include/Util/Misc.h
@@ -2,10 +2,10 @@
#include <stddef.h>
#include <unistd.h>
#define CSIZEOF(VAR) (sizeof(VAR))/(sizeof(*(VAR)))
-
+extern void EGong_misc_rand_init(void);
extern int EGong_global_argc;
extern char **EGong_global_argv;
-extern int EGong_misc_get_rand(char *dest, size_t length);
+extern int EGong_misc_get_rand(char *dest, int length);
#define STDNWRITE(str,len) (void)write(STDOUT_FILENO, str, len)
#define STDWRITE(str) STDNWRITE(str,sizeof(str))
diff --git a/src/Util/Misc.c b/src/Util/Misc.c
@@ -1,9 +1,20 @@
#include <EGong/Util/Misc.h>
#include <EGong/Util/Log.h>
-#include <openssl/rand.h>
+#include <stdlib.h>
+#include <time.h>
-int EGong_misc_get_rand(char *dest, size_t length){
- RAND_pseudo_bytes((unsigned char *)dest, length);
+void EGong_misc_rand_init(void){
+ srand(time(NULL));
+}
+int EGong_misc_get_rand(char *dest, int length){
+ const static size_t blocksize=sizeof(int)/sizeof(*dest);
+ for(;length>0;length-=blocksize){
+ if(length<blocksize){
+ dest-=blocksize-length;
+ }
+ *(int*)dest=rand();
+ dest+=blocksize;
+ }
return 0;
}