From 64f131641ff02b4ac185ab802da7a46c02abf416 Mon Sep 17 00:00:00 2001 From: Florian Zeitz Date: Fri, 16 Sep 2011 15:11:54 +0200 Subject: [PATCH] Fix salt generation code --- src/XMPPSCRAMAuth.m | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/XMPPSCRAMAuth.m b/src/XMPPSCRAMAuth.m index 9d1b091..c5e11dc 100644 --- a/src/XMPPSCRAMAuth.m +++ b/src/XMPPSCRAMAuth.m @@ -384,12 +384,12 @@ assert(RAND_pseudo_bytes(buf, 64) >= 0); for (i = 0; i < 64; i++) { - uint8_t tmp = (buf[i] % ('~' - '!')) + '!'; + // Restrict salt to printable range, but do not include '~'... + buf[i] = (buf[i] % ('~' - '!')) + '!'; - while (tmp == ',') - tmp = ((buf[i] >> 1) % ('~' - '!')) + '!'; - - buf[i] = tmp; + // ...so we can use it to replace ',' + if (buf[i] == ',') + buf[i] = '~'; } return [OFString stringWithCString: (char*)buf