--- silc-server-1.1.1/lib/silcmath/tma.c.bak 2008-03-14 11:31:32.000000000 +0200 +++ silc-server-1.1.1/lib/silcmath/tma.c 2008-03-15 21:23:01.177438924 +0200 @@ -6338,7 +6338,7 @@ tma_mp_rand (tma_mp_int * a, int digits) /* first place a random non-zero digit */ do { - d = ((tma_mp_digit) abs (rand ())) & MP_MASK; + d = ((tma_mp_digit) abs (silc_rng_global_get_rn32 ())) & MP_MASK; } while (d == 0); if ((res = tma_mp_add_d (a, d, a)) != MP_OKAY) { @@ -6350,7 +6350,7 @@ tma_mp_rand (tma_mp_int * a, int digits) return res; } - if ((res = tma_mp_add_d (a, ((tma_mp_digit) abs (rand ())), a)) != MP_OKAY) { + if ((res = tma_mp_add_d (a, ((tma_mp_digit) abs (silc_rng_global_get_rn32 ())), a)) != MP_OKAY) { return res; } } --- silc-server-1.1.1/lib/silcutil/silcmime.c.bak 2008-03-14 11:31:58.000000000 +0200 +++ silc-server-1.1.1/lib/silcutil/silcmime.c 2008-03-15 21:21:29.330438819 +0200 @@ -582,9 +582,8 @@ SilcDList silc_mime_encode_partial(SilcM memset(id, 0, sizeof(id)); memset(type, 0, sizeof(type)); gethostname(type, sizeof(type) - 1); - srand((time(NULL) + buf_len) ^ rand()); silc_snprintf(id, sizeof(id) - 1, "%X%X%X%s", - (unsigned int)rand(), (unsigned int)time(NULL), + (unsigned int)silc_rng_global_get_rn32(), (unsigned int)time(NULL), (unsigned int)buf_len, type); SILC_LOG_DEBUG(("Fragment ID %s", id));