pstoken_t *pstokens = (pstoken_t *) data.esalts_buf;
pstoken_t *pstoken = &pstokens[salt_pos];
- uint mysalt_len = pstoken->salt_len > 512 ? 512 : pstoken->salt_len;
+ uint mysalt = pstoken->salt_len > 512 ? 512 : pstoken->salt_len;
- u8 pstoken_tmp[mysalt_len + 1];
+ char pstoken_tmp[1024 + 1];
+ u8 *salt_buf_ptr = (u8 *) pstoken->salt_buf;
- memset(pstoken_tmp, 0, mysalt_len + 1);
+ memset(pstoken_tmp, 0, sizeof (pstoken_tmp));
- for (uint i = 0; i < mysalt_len; i++)
+ for (uint i = 0; i < mysalt; i++)
{
- snprintf((char *)(pstoken_tmp + i), (size_t)2, "%02x", pstoken->salt_buf[i]);
+ snprintf(&pstoken_tmp[i*2], 2, "%02x", salt_buf_ptr[i]);
}
snprintf (out_buf, len-1, "%08x%08x%08x%08x%08x:%s",
digest[3] = hex_to_u32 ((const u8 *) &input_buf[24]);
digest[4] = hex_to_u32 ((const u8 *) &input_buf[32]);
- digest[0] -= SHA1M_A;
- digest[1] -= SHA1M_B;
- digest[2] -= SHA1M_C;
- digest[3] -= SHA1M_D;
- digest[4] -= SHA1M_E;
-
if (input_buf[40] != data.separator) return (PARSER_SEPARATOR_UNMATCHED);
uint salt_len = input_len - 40 - 1;