device_param->pws_cnt = 0;
+ /*
+ still required?
if (attack_kern == ATTACK_KERN_STRAIGHT)
{
run_kernel_bzero (device_param, device_param->d_rules_c, device_param->size_rules_c);
{
run_kernel_bzero (device_param, device_param->d_combs_c, device_param->size_combs);
}
+ */
}
}
device_param->pws_cnt = 0;
+ /*
+ still required?
run_kernel_bzero (device_param, device_param->d_bfs_c, device_param->size_bfs);
+ */
}
if (data.devices_status == STATUS_STOP_AT_CHECKPOINT) check_checkpoint ();
device_param->pws_cnt = 0;
+ /*
+ still required?
if (attack_kern == ATTACK_KERN_STRAIGHT)
{
run_kernel_bzero (device_param, device_param->d_rules_c, device_param->size_rules_c);
{
run_kernel_bzero (device_param, device_param->d_combs_c, device_param->size_combs);
}
+ */
}
if (data.devices_status == STATUS_STOP_AT_CHECKPOINT) check_checkpoint ();
* some algorithms have a maximum kernel-loops count
*/
- if (attack_exec == ATTACK_EXEC_OUTSIDE_KERNEL)
+ if (device_param->kernel_loops_min < device_param->kernel_loops_max)
{
- if (data.salts_buf[0].salt_iter < device_param->kernel_loops_max)
+ u32 innerloop_cnt = 0;
+
+ if (data.attack_exec == ATTACK_EXEC_INSIDE_KERNEL)
+ {
+ if (data.attack_kern == ATTACK_KERN_STRAIGHT) innerloop_cnt = data.kernel_rules_cnt;
+ else if (data.attack_kern == ATTACK_KERN_COMBI) innerloop_cnt = data.combs_cnt;
+ else if (data.attack_kern == ATTACK_KERN_BF) innerloop_cnt = data.bfs_cnt;
+ }
+ else
+ {
+ innerloop_cnt = data.salts_buf[0].salt_iter;
+ }
+
+ if ((innerloop_cnt >= device_param->kernel_loops_min) &&
+ (innerloop_cnt <= device_param->kernel_loops_max))
{
- device_param->kernel_loops_max = data.salts_buf[0].salt_iter;
+ device_param->kernel_loops_max = innerloop_cnt;
}
}