From f7be6adec0248118cddde9b04522c13cd90568cd Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Fri, 9 May 2014 18:02:55 +0300 Subject: [PATCH] silcd: better anonymised user names Use fully longer random user names when anonymous mode is on. Replace also the real name with anonymised username. --- apps/silcd/packet_receive.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index 56435eb6..d6312d01 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -2115,7 +2115,8 @@ SilcClientEntry silc_server_new_client(SilcServer server, char *username = NULL, *realname = NULL; SilcUInt16 username_len, nickname_len; SilcUInt32 id_len, tmp_len; - int ret; + int ret, i; + unsigned char tmp[8]; char *host, *nickname = NULL, *nicknamec; const char *hostname, *ip; @@ -2300,19 +2301,18 @@ SilcClientEntry silc_server_new_client(SilcServer server, if (client->mode & SILC_UMODE_ANONYMOUS) { char *scramble; - if (strlen(username) >= 2) { - username[0] = silc_rng_get_byte_fast(server->rng); - username[1] = silc_rng_get_byte_fast(server->rng); - } + for (i = 0; i < sizeof(tmp); i++) + tmp[i] = silc_rng_get_byte_fast(server->rng); - scramble = silc_hash_babbleprint(server->sha1hash, username, - strlen(username)); + scramble = silc_hash_babbleprint(server->sha1hash, tmp, sizeof(tmp)); scramble[5] = '@'; scramble[11] = '.'; memcpy(&scramble[16], ".silc", 5); scramble[21] = '\0'; silc_free(username); username = scramble; + silc_free(realname); + realname = NULL; } /* Update client entry */ -- 2.24.0