Small code refactoring in initialization function.
This commit is contained in:
parent
f1dfff978b
commit
097957f9ab
@ -151,22 +151,23 @@ static int initialize_state(crypt_data_t *const data, const size_t thread_count,
|
|||||||
{
|
{
|
||||||
uint8_t temp[256U][256U];
|
uint8_t temp[256U][256U];
|
||||||
size_t r, i;
|
size_t r, i;
|
||||||
|
rand_state_t *const rand_state = &data->thread_data[0].random;
|
||||||
const int reverse_mode = BOOLIFY(mode);
|
const int reverse_mode = BOOLIFY(mode);
|
||||||
|
|
||||||
/* initialize state */
|
/* initialize state */
|
||||||
slunkcrypt_bzero(data, sizeof(crypt_data_t));
|
slunkcrypt_bzero(data, sizeof(crypt_data_t));
|
||||||
|
|
||||||
/* initialize counter */
|
/* initialize counter */
|
||||||
random_seed(&data->thread_data[0].random, nonce, legacy ? ((uint16_t)(-1)) : INITIALIZER_MIN, passwd, passwd_len, legacy);
|
random_seed(rand_state, nonce, legacy ? ((uint16_t)(-1)) : INITIALIZER_MIN, passwd, passwd_len, legacy);
|
||||||
data->thread_data[0].counter = random_next(&data->thread_data[0].random);
|
data->thread_data[0].counter = random_next(rand_state);
|
||||||
|
|
||||||
/* set up the wheel permutations */
|
/* set up the wheel permutations */
|
||||||
for (r = 0U; r < 256U; ++r)
|
for (r = 0U; r < 256U; ++r)
|
||||||
{
|
{
|
||||||
random_seed(&data->thread_data[0].random, nonce, legacy ? ((uint16_t)r) : INITIALIZER[r], passwd, passwd_len, legacy);
|
random_seed(rand_state, nonce, legacy ? ((uint16_t)r) : INITIALIZER[r], passwd, passwd_len, legacy);
|
||||||
for (i = 0U; i < 256U; ++i)
|
for (i = 0U; i < 256U; ++i)
|
||||||
{
|
{
|
||||||
const size_t j = random_next(&data->thread_data[0].random) % (i + 1U);
|
const size_t j = random_next(rand_state) % (i + 1U);
|
||||||
if (j != i)
|
if (j != i)
|
||||||
{
|
{
|
||||||
data->wheel[r][i] = data->wheel[r][j];
|
data->wheel[r][i] = data->wheel[r][j];
|
||||||
@ -195,25 +196,24 @@ static int initialize_state(crypt_data_t *const data, const size_t thread_count,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* initialize thread state */
|
/* initialize thread state */
|
||||||
data->thread_data[0].reverse_mode = reverse_mode;
|
random_seed(rand_state, nonce, legacy ? 256U : INITIALIZER_MAX, passwd, passwd_len, legacy);
|
||||||
data->thread_data[0].wheel = (const uint8_t(*)[256]) data->wheel;
|
for (i = 0U; i < thread_count; ++i)
|
||||||
data->thread_data[0].index_off = 0U;
|
|
||||||
random_seed(&data->thread_data[0].random, nonce, legacy ? 256U : INITIALIZER_MAX, passwd, passwd_len, legacy);
|
|
||||||
for (i = 1U; i < thread_count; ++i)
|
|
||||||
{
|
{
|
||||||
data->thread_data[i].reverse_mode = data->thread_data[0].reverse_mode;
|
data->thread_data[i].reverse_mode = reverse_mode;
|
||||||
data->thread_data[i].wheel = data->thread_data[0].wheel;
|
data->thread_data[i].wheel = (const uint8_t(*)[256]) data->wheel;
|
||||||
data->thread_data[i].counter = data->thread_data[0].counter + ((uint32_t)i);
|
data->thread_data[i].index_off = i;
|
||||||
data->thread_data[i].index_off = data->thread_data[i - 1U].index_off + 1U;
|
if (i > 0U)
|
||||||
memcpy(&data->thread_data[i].random, &data->thread_data[0].random, sizeof(rand_state_t));
|
{
|
||||||
random_skip(&data->thread_data[i].random, i * 63U);
|
data->thread_data[i].counter = data->thread_data[0].counter + ((uint32_t)i);
|
||||||
|
memcpy(&data->thread_data[i].random, &data->thread_data[0].random, sizeof(rand_state_t));
|
||||||
|
random_skip(&data->thread_data[i].random, i * 63U);
|
||||||
|
}
|
||||||
CHECK_ABORTED();
|
CHECK_ABORTED();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* dump the final configuration */
|
/* dump the final configuration */
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
const rand_state_t *const rand_state = &data->thread_data[0].random;
|
|
||||||
slunkcrypt_debug_print("cntr = %08X", data->thread_data[0].counter);
|
slunkcrypt_debug_print("cntr = %08X", data->thread_data[0].counter);
|
||||||
slunkcrypt_debug_print("drbg = %08X %08X %08X %08X %08X %08X", rand_state->d, rand_state->v, rand_state->w, rand_state->x, rand_state->y, rand_state->z);
|
slunkcrypt_debug_print("drbg = %08X %08X %08X %08X %08X %08X", rand_state->d, rand_state->v, rand_state->w, rand_state->x, rand_state->y, rand_state->z);
|
||||||
for (r = 0U; r < 256U; ++r)
|
for (r = 0U; r < 256U; ++r)
|
||||||
|
Loading…
Reference in New Issue
Block a user