Skip to content

Commit 7f421a6

Browse files
authored
Merge pull request #240 from SparkiDev/n_fold_fix
KRB5KDF fix: fix n_fold
2 parents 95859a5 + b6f926d commit 7f421a6

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/wp_krb5kdf.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ static void n_fold(unsigned char *block, unsigned int blocksize,
336336
for (i = const_len; i < cnt; i += const_len) {
337337
unsigned int j;
338338
/* Calculate first index into constant to rotate. */
339-
unsigned int ci = ((const_len - (rot >> 3)) - 1) % const_len;
339+
unsigned int ci = ((cnt - (rot >> 3)) - 1) % const_len;
340340
/* Calculate amount to rotate right and left. */
341341
unsigned char rr = rot & 0x7;
342342
unsigned char rl = 8 - rr;
@@ -352,7 +352,8 @@ static void n_fold(unsigned char *block, unsigned int blocksize,
352352
rcv |= (unsigned char)(constant[ci] >> rr);
353353

354354
/* Add block value and rotated constant value to previous carry. */
355-
carry += block[bi] + rcv;
355+
carry += block[bi];
356+
carry += rcv;
356357
/* Store new block value. */
357358
block[bi] = (unsigned char)(carry & 0xff);
358359
/* Get carry. */

0 commit comments

Comments
 (0)