From: Pekka Riikonen Date: Fri, 9 May 2014 15:02:55 +0000 (+0300) Subject: silcd: better anonymised user names X-Git-Tag: silc.client.1.1.11~9 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=f7be6adec0248118cddde9b04522c13cd90568cd;p=silc.git silcd: better anonymised user names Use fully longer random user names when anonymous mode is on. Replace also the real name with anonymised username. --- 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 */