- 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_cli.c b/library/ssl_cli.c
index 8644151..a7900e4 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -81,8 +81,10 @@
 
     SSL_DEBUG_MSG( 3, ( "client hello, current time: %lu", t ) );
 
-    for( i = 28; i > 0; i-- )
-        *p++ = (unsigned char) ssl->f_rng( ssl->p_rng );
+    if( ( ret = ssl->f_rng( ssl->p_rng, p, 28 ) ) != 0 )
+        return( ret );
+
+    p += 28;
 
     memcpy( ssl->randbytes, buf + 6, 32 );
 
@@ -583,8 +585,9 @@
         ssl->premaster[1] = (unsigned char) ssl->max_minor_ver;
         ssl->pmslen = 48;
 
-        for( i = 2; i < ssl->pmslen; i++ )
-            ssl->premaster[i] = (unsigned char) ssl->f_rng( ssl->p_rng );
+        ret = ssl->f_rng( ssl->p_rng, ssl->premaster + 2, ssl->pmslen - 2 );
+        if( ret != 0 )
+            return( ret );
 
         i = 4;
         n = ssl->peer_cert->rsa.len;