- Changed the used random function pointer to more flexible format. Renamed havege_rand() to havege_random() to prevent mistakes. Lots of changes as a consequence in library code and programs

diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index c3644ad..a865a75 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -578,8 +578,9 @@
             /*
              * Generate IV
              */
-            for( i = 0; i < ssl->ivlen; i++ )
-                ssl->iv_enc[i] = ssl->f_rng( ssl->p_rng );
+            int ret = ssl->f_rng( ssl->p_rng, ssl->iv_enc, ssl->ivlen );
+            if( ret != 0 )
+                return( ret );
 
             /*
              * Shift message for ivlen bytes and prepend IV
@@ -1796,7 +1797,7 @@
 }
 
 void ssl_set_rng( ssl_context *ssl,
-                  int (*f_rng)(void *),
+                  int (*f_rng)(void *, unsigned char *, size_t),
                   void *p_rng )
 {
     ssl->f_rng      = f_rng;