From 5ea4683d16d666e0f575d310638b3e42f8449825 Mon Sep 17 00:00:00 2001 From: vysheng Date: Wed, 25 Dec 2013 12:35:13 +0400 Subject: [PATCH] Fixed secure random. --- queries.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/queries.c b/queries.c index 51ab012..962ccd5 100644 --- a/queries.c +++ b/queries.c @@ -1505,16 +1505,11 @@ void do_send_photo (int type, peer_id_t to_id, char *file_name) { if (get_peer_type (f->to_id) == PEER_ENCR_CHAT) { f->encr = 1; f->iv = malloc (32); - int i; - for (i = 0; i < 8; i++) { - ((int *)f->iv)[i] = mrand48 (); - } + secure_random (f->iv, 32); f->init_iv = malloc (32); memcpy (f->init_iv, f->iv, 32); f->key = malloc (32); - for (i = 0; i < 8; i++) { - ((int *)f->key)[i] = mrand48 (); - } + secure_random (f->key, 32); } if (f->part_size > (512 << 10)) { close (fd); @@ -2362,8 +2357,10 @@ void do_create_keys_end (struct secret_chat *U) { void do_send_create_encr_chat (void *x, unsigned char *random) { int user_id = (long)x; int i; - for (i = 0; i < 64; i++) { - *(((int *)random) + i) ^= mrand48 (); + unsigned char random_here[256]; + secure_random (random_here, 256); + for (i = 0; i < 256; i++) { + random[i] ^= random_here[i]; } if (!ctx) { ctx = BN_CTX_new ();