From df23d5b4e9198385292037f898e8bb1d395198b1 Mon Sep 17 00:00:00 2001 From: jsteube Date: Wed, 28 Sep 2016 23:53:46 +0200 Subject: [PATCH] Move more functions out of hashcat.c --- include/shared.h | 5 +++ include/terminal.h | 3 ++ src/hashcat.c | 109 ++++----------------------------------------- src/shared.c | 55 +++++++++++++++++++++++ src/terminal.c | 46 +++++++++++++++++++ 5 files changed, 118 insertions(+), 100 deletions(-) diff --git a/include/shared.h b/include/shared.h index 572c0055e..abf7a9bc8 100644 --- a/include/shared.h +++ b/include/shared.h @@ -9,6 +9,7 @@ #include #include #include +#include bool is_power_of_2 (const u32 v); @@ -25,4 +26,8 @@ void naive_escape (char *s, size_t s_max, const u8 key_char, const u8 escape_cha void hc_sleep_ms (const int msec); void hc_sleep (const int sec); +void setup_environment_variables (); +void setup_umask (); +void setup_seeding (const bool rp_gen_seed_chgd, const u32 rp_gen_seed); + #endif // _SHARED_H diff --git a/include/terminal.h b/include/terminal.h index a1a7381a9..b55f56ea4 100644 --- a/include/terminal.h +++ b/include/terminal.h @@ -23,6 +23,9 @@ #include #endif // _WIN +void welcome_screen (const user_options_t *user_options, const time_t proc_start); +void goodbye_screen (const user_options_t *user_options, const time_t proc_start, const time_t proc_stop); + int setup_console (); void send_prompt (); diff --git a/src/hashcat.c b/src/hashcat.c index 2c0cd75c0..1e0ee4583 100644 --- a/src/hashcat.c +++ b/src/hashcat.c @@ -89,102 +89,8 @@ extern hc_thread_mutex_t mux_display; extern const int DEFAULT_BENCHMARK_ALGORITHMS_CNT; extern const int DEFAULT_BENCHMARK_ALGORITHMS_BUF[]; -const int comptime = COMPTIME; - -static void setup_environment_variables () -{ - char *compute = getenv ("COMPUTE"); - - if (compute) - { - static char display[100]; - - snprintf (display, sizeof (display) - 1, "DISPLAY=%s", compute); - - putenv (display); - } - else - { - if (getenv ("DISPLAY") == NULL) - putenv ((char *) "DISPLAY=:0"); - } - - if (getenv ("GPU_MAX_ALLOC_PERCENT") == NULL) - putenv ((char *) "GPU_MAX_ALLOC_PERCENT=100"); - - if (getenv ("CPU_MAX_ALLOC_PERCENT") == NULL) - putenv ((char *) "CPU_MAX_ALLOC_PERCENT=100"); - - if (getenv ("GPU_USE_SYNC_OBJECTS") == NULL) - putenv ((char *) "GPU_USE_SYNC_OBJECTS=1"); - - if (getenv ("CUDA_CACHE_DISABLE") == NULL) - putenv ((char *) "CUDA_CACHE_DISABLE=1"); - - if (getenv ("POCL_KERNEL_CACHE") == NULL) - putenv ((char *) "POCL_KERNEL_CACHE=0"); -} - -static void setup_umask () -{ - umask (077); -} - -static void setup_seeding (const user_options_t *user_options, const time_t *proc_start) -{ - if (user_options->rp_gen_seed_chgd == true) - { - srand (user_options->rp_gen_seed); - } - else - { - srand (*proc_start); - } -} - -static void welcome_screen (const user_options_t *user_options, const time_t *proc_start) -{ - if (user_options->quiet == true) return; - if (user_options->keyspace == true) return; - if (user_options->stdout_flag == true) return; - if (user_options->show == true) return; - if (user_options->left == true) return; - - if (user_options->benchmark == true) - { - if (user_options->machine_readable == false) - { - log_info ("%s (%s) starting in benchmark-mode...", PROGNAME, VERSION_TAG); - log_info (""); - } - else - { - log_info ("# %s (%s) %s", PROGNAME, VERSION_TAG, ctime (proc_start)); - } - } - else if (user_options->restore == true) - { - log_info ("%s (%s) starting in restore-mode...", PROGNAME, VERSION_TAG); - log_info (""); - } - else - { - log_info ("%s (%s) starting...", PROGNAME, VERSION_TAG); - log_info (""); - } -} - -static void goodbye_screen (const user_options_t *user_options, const time_t *proc_start, const time_t *proc_stop) -{ - if (user_options->quiet == true) return; - if (user_options->keyspace == true) return; - if (user_options->stdout_flag == true) return; - if (user_options->show == true) return; - if (user_options->left == true) return; - - log_info_nn ("Started: %s", ctime (proc_start)); - log_info_nn ("Stopped: %s", ctime (proc_stop)); -} +const int comptime = COMPTIME; +const char *version_tag = VERSION_TAG; static int inner1_loop (user_options_t *user_options, user_options_extra_t *user_options_extra, restore_ctx_t *restore_ctx, logfile_ctx_t *logfile_ctx, induct_ctx_t *induct_ctx, dictstat_ctx_t *dictstat_ctx, loopback_ctx_t *loopback_ctx, opencl_ctx_t *opencl_ctx, hwmon_ctx_t *hwmon_ctx, hashconfig_t *hashconfig, hashes_t *hashes, wl_data_t *wl_data, straight_ctx_t *straight_ctx, combinator_ctx_t *combinator_ctx, mask_ctx_t *mask_ctx) { @@ -1317,7 +1223,10 @@ static int inner1_loop (user_options_t *user_options, user_options_extra_t *user { status_benchmark (opencl_ctx, hashconfig, user_options); - log_info (""); + if (user_options->machine_readable == false) + { + log_info (""); + } } else { @@ -2021,14 +1930,14 @@ int main (int argc, char **argv) * prepare seeding for random number generator, required by logfile and rules generator */ - setup_seeding (user_options, &proc_start); + setup_seeding (user_options->rp_gen_seed_chgd, user_options->rp_gen_seed); /** * Inform user things getting started, * - this is giving us a visual header before preparations start, so we do not need to clear them afterwards */ - welcome_screen (user_options, &proc_start); + welcome_screen (user_options, proc_start); /** * logfile init @@ -2309,7 +2218,7 @@ int main (int argc, char **argv) logfile_destroy (logfile_ctx); - goodbye_screen (user_options, &proc_start, &proc_stop); + goodbye_screen (user_options, proc_start, proc_stop); user_options_destroy (user_options); diff --git a/src/shared.c b/src/shared.c index 172720765..3f2b91905 100644 --- a/src/shared.c +++ b/src/shared.c @@ -116,3 +116,58 @@ void hc_sleep (const int sec) sleep (sec); #endif } + +void setup_environment_variables () +{ + char *compute = getenv ("COMPUTE"); + + if (compute) + { + static char display[100]; + + snprintf (display, sizeof (display) - 1, "DISPLAY=%s", compute); + + putenv (display); + } + else + { + if (getenv ("DISPLAY") == NULL) + putenv ((char *) "DISPLAY=:0"); + } + + if (getenv ("GPU_MAX_ALLOC_PERCENT") == NULL) + putenv ((char *) "GPU_MAX_ALLOC_PERCENT=100"); + + if (getenv ("CPU_MAX_ALLOC_PERCENT") == NULL) + putenv ((char *) "CPU_MAX_ALLOC_PERCENT=100"); + + if (getenv ("GPU_USE_SYNC_OBJECTS") == NULL) + putenv ((char *) "GPU_USE_SYNC_OBJECTS=1"); + + if (getenv ("CUDA_CACHE_DISABLE") == NULL) + putenv ((char *) "CUDA_CACHE_DISABLE=1"); + + if (getenv ("POCL_KERNEL_CACHE") == NULL) + putenv ((char *) "POCL_KERNEL_CACHE=0"); +} + +void setup_umask () +{ + umask (077); +} + +void setup_seeding (const bool rp_gen_seed_chgd, const u32 rp_gen_seed) +{ + if (rp_gen_seed_chgd == true) + { + srand (rp_gen_seed); + } + else + { + time_t ts; + + time (&ts); + + srand (ts); + } +} \ No newline at end of file diff --git a/src/terminal.c b/src/terminal.c index fb80b3fd5..043d3e403 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -34,8 +34,54 @@ extern hc_global_data_t data; extern hc_thread_mutex_t mux_display; +extern const char *version_tag; + const char *PROMPT = "[s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit => "; +void welcome_screen (const user_options_t *user_options, const time_t proc_start) +{ + if (user_options->quiet == true) return; + if (user_options->keyspace == true) return; + if (user_options->stdout_flag == true) return; + if (user_options->show == true) return; + if (user_options->left == true) return; + + if (user_options->benchmark == true) + { + if (user_options->machine_readable == false) + { + log_info ("%s (%s) starting in benchmark-mode...", PROGNAME, version_tag); + log_info (""); + } + else + { + log_info ("# %s (%s) %s", PROGNAME, version_tag, ctime (&proc_start)); + } + } + else if (user_options->restore == true) + { + log_info ("%s (%s) starting in restore-mode...", PROGNAME, version_tag); + log_info (""); + } + else + { + log_info ("%s (%s) starting...", PROGNAME, version_tag); + log_info (""); + } +} + +void goodbye_screen (const user_options_t *user_options, const time_t proc_start, const time_t proc_stop) +{ + if (user_options->quiet == true) return; + if (user_options->keyspace == true) return; + if (user_options->stdout_flag == true) return; + if (user_options->show == true) return; + if (user_options->left == true) return; + + log_info_nn ("Started: %s", ctime (&proc_start)); + log_info_nn ("Stopped: %s", ctime (&proc_stop)); +} + int setup_console () { #if defined (_WIN)