1
mirror of https://github.com/hashcat/hashcat synced 2024-11-13 17:28:58 +01:00

Add event_set_kernel_power_final()

This commit is contained in:
jsteube 2016-10-07 22:25:52 +02:00
parent d993aa5ffa
commit f469694030
4 changed files with 31 additions and 17 deletions

View File

@ -112,6 +112,7 @@ typedef enum event_identifier
EVENT_BITMAP_INIT_POST = 0x00000082,
EVENT_WEAK_HASH_PRE = 0x00000091,
EVENT_WEAK_HASH_POST = 0x00000092,
EVENT_SET_KERNEL_POWER_FINAL = 0x000000a1,
// there will be much more event types soon

View File

@ -6,7 +6,6 @@
#include "common.h"
#include "types.h"
#include "memory.h"
#include "logging.h"
#include "bitmap.h"
static u32 generate_bitmaps (const u32 digests_cnt, const u32 dgst_size, const u32 dgst_shifts, char *digests_buf_ptr, const u32 dgst_pos0, const u32 dgst_pos1, const u32 dgst_pos2, const u32 dgst_pos3, const u32 bitmap_mask, const u32 bitmap_size, u32 *bitmap_a, u32 *bitmap_b, u32 *bitmap_c, u32 *bitmap_d, const u64 collisions_max)

View File

@ -35,21 +35,15 @@
#include "shared.h"
#include "dispatch.h"
static void set_kernel_power_final (opencl_ctx_t *opencl_ctx, const user_options_t *user_options, const u64 kernel_power_final)
static int set_kernel_power_final (hashcat_ctx_t *hashcat_ctx, const u32 kernel_power_final)
{
if (user_options->quiet == false)
{
clear_prompt ();
EVENT_SEND (EVENT_SET_KERNEL_POWER_FINAL);
//log_info ("");
log_info ("INFO: approaching final keyspace, workload adjusted");
log_info ("");
send_prompt ();
}
opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx;
opencl_ctx->kernel_power_final = kernel_power_final;
return 0;
}
static u32 get_power (opencl_ctx_t *opencl_ctx, hc_device_param_t *device_param)
@ -72,8 +66,12 @@ static u32 get_power (opencl_ctx_t *opencl_ctx, hc_device_param_t *device_param)
return device_param->kernel_power;
}
static u32 get_work (opencl_ctx_t *opencl_ctx, status_ctx_t *status_ctx, const user_options_t *user_options, hc_device_param_t *device_param, const u64 max)
static u32 get_work (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, const u64 max)
{
opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx;
status_ctx_t *status_ctx = hashcat_ctx->status_ctx;
user_options_t *user_options = hashcat_ctx->user_options;
hc_thread_mutex_lock (status_ctx->mux_dispatcher);
const u64 words_cur = status_ctx->words_cur;
@ -89,7 +87,7 @@ static u32 get_work (opencl_ctx_t *opencl_ctx, status_ctx_t *status_ctx, const u
{
if (opencl_ctx->kernel_power_final == 0)
{
set_kernel_power_final (opencl_ctx, user_options, words_left);
set_kernel_power_final (hashcat_ctx, words_left);
}
}
@ -255,7 +253,6 @@ static void calc (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param)
hashes_t *hashes = hashcat_ctx->hashes;
straight_ctx_t *straight_ctx = hashcat_ctx->straight_ctx;
combinator_ctx_t *combinator_ctx = hashcat_ctx->combinator_ctx;
opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx;
status_ctx_t *status_ctx = hashcat_ctx->status_ctx;
const u32 attack_mode = user_options->attack_mode;
@ -265,7 +262,7 @@ static void calc (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param)
{
while (status_ctx->run_thread_level1 == true)
{
const u32 work = get_work (opencl_ctx, status_ctx, user_options, device_param, -1u);
const u32 work = get_work (hashcat_ctx, device_param, -1u);
if (work == 0) break;
@ -407,7 +404,7 @@ static void calc (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param)
while (max)
{
const u32 work = get_work (opencl_ctx, status_ctx, user_options, device_param, max);
const u32 work = get_work (hashcat_ctx, device_param, max);
if (work == 0) break;

View File

@ -462,6 +462,21 @@ static int event_bitmap_init_post (hashcat_ctx_t *hashcat_ctx)
return 0;
}
static int event_set_kernel_power_final (hashcat_ctx_t *hashcat_ctx)
{
const user_options_t *user_options = hashcat_ctx->user_options;
if (user_options->quiet == true) return 0;
clear_prompt ();
log_info ("INFO: approaching final keyspace, workload adjusted");
log_info ("");
send_prompt ();
return 0;
}
int event (hashcat_ctx_t *hashcat_ctx, const u32 event)
{
@ -492,6 +507,8 @@ int event (hashcat_ctx_t *hashcat_ctx, const u32 event)
case EVENT_BITMAP_INIT_POST: rc = event_bitmap_init_post (hashcat_ctx); break;
case EVENT_WEAK_HASH_PRE: rc = event_weak_hash_pre (hashcat_ctx); break;
case EVENT_WEAK_HASH_POST: rc = event_weak_hash_post (hashcat_ctx); break;
case EVENT_SET_KERNEL_POWER_FINAL: rc = event_set_kernel_power_final (hashcat_ctx); break;
}
return rc;