X-Git-Url: https://www.flypig.org.uk/git/?a=blobdiff_plain;f=include%2Fshared.h;h=34824d366745c27d3f266d916191fa94ef4ad0aa;hb=9a970c095551bc563c6cc93c8c5860c7ce1e374e;hp=48d29d0e0f929dc3fc2cdf9fd82dd0e346384f64;hpb=b8285cbce21a4c2b8e2a3c7659c128b5102be215;p=hashcat.git diff --git a/include/shared.h b/include/shared.h index 48d29d0..34824d3 100644 --- a/include/shared.h +++ b/include/shared.h @@ -1,6 +1,7 @@ /** * Authors.....: Jens Steube * Gabriele Gristina + * magnum * * License.....: MIT */ @@ -8,8 +9,8 @@ #ifndef SHARED_H #define SHARED_H -#include -#include +#include "common.h" +#include "inc_hash_constants.h" /** * thread management @@ -43,7 +44,18 @@ #define hc_thread_mutex_unlock(m) pthread_mutex_unlock (&m) #define hc_thread_mutex_init(m) pthread_mutex_init (&m, NULL) #define hc_thread_mutex_delete(m) pthread_mutex_destroy (&m) +#endif + +#ifdef OSX +typedef struct cpu_set +{ + uint32_t count; +} cpu_set_t; + +static inline void CPU_ZERO (cpu_set_t *cs) { cs->count = 0; } +static inline void CPU_SET (int num, cpu_set_t *cs) { cs->count |= (1 << num); } +static inline int CPU_ISSET (int num, cpu_set_t *cs) { return (cs->count & (1 << num)); } #endif /** @@ -62,12 +74,26 @@ #define HC_LOAD_FUNC(ptr,name,type,libname,noerr) \ ptr->name = (type) hc_dlsym (ptr->lib, #name); \ + if (noerr != -1) { \ + if (!ptr->name) { \ + if (noerr == 1) { \ + log_error ("ERROR: %s is missing from %s shared library.", #name, #libname); \ + exit (-1); \ + } else { \ + log_info ("WARNING: %s is missing from %s shared library.", #name, #libname); \ + return (-1); \ + } \ + } \ + } + +#define HC_LOAD_ADDR(ptr,name,type,func,addr,libname,noerr) \ + ptr->name = (type) (*ptr->func) (addr); \ if (!ptr->name) { \ if (noerr == 1) { \ - log_error ("ERROR: #name is missing from #libname shared library."); \ + log_error ("ERROR: %s at address %08x is missing from %s shared library.", #name, addr, #libname); \ exit (-1); \ } else { \ - log_info ("WARNING: #name is missing from #libname shared library."); \ + log_error ("WARNING: %s at address %08x is missing from %s shared library.", #name, addr, #libname); \ return (-1); \ } \ } @@ -82,84 +108,84 @@ #define hc_sleep(x) sleep ((x)); #endif -#include +#include "ext_OpenCL.h" /** * temperature management */ -#ifdef _POSIX -#include -#endif - -#ifdef _WIN -#include -#endif - -#ifdef LINUX -#include -#elif WIN -#include -#endif - -#ifdef OSX -#include -#include -#endif +#include "ext_ADL.h" +#include "ext_nvapi.h" +#include "ext_nvml.h" +#include "ext_xnvctrl.h" /** * shared stuff */ -#define ETC_MAX (60 * 60 * 24 * 365 * 10) +#define ETC_MAX (60 * 60 * 24 * 365 * 10) + +#define DEVICES_MAX 128 -#define DEVICES_MAX 128 +#define CL_PLATFORMS_MAX 16 -#define CL_PLATFORMS_MAX 16 +#define CL_VENDOR_AMD "Advanced Micro Devices, Inc." +#define CL_VENDOR_AMD_USE_INTEL "GenuineIntel" +#define CL_VENDOR_APPLE "Apple" +#define CL_VENDOR_INTEL_BEIGNET "Intel" +#define CL_VENDOR_INTEL_SDK "Intel(R) Corporation" +#define CL_VENDOR_MESA "Mesa" +#define CL_VENDOR_NV "NVIDIA Corporation" +#define CL_VENDOR_POCL "The pocl project" -#define CL_VENDOR_NV "NVIDIA Corporation" -#define CL_VENDOR_AMD "Advanced Micro Devices, Inc." -#define CL_VENDOR_APPLE "Apple" -#define CL_VENDOR_POCL "The pocl project" +#define VENDOR_ID_AMD (1 << 0) +#define VENDOR_ID_APPLE (1 << 1) +#define VENDOR_ID_INTEL_BEIGNET (1 << 2) +#define VENDOR_ID_INTEL_SDK (1 << 3) +#define VENDOR_ID_MESA (1 << 4) +#define VENDOR_ID_NV (1 << 5) +#define VENDOR_ID_POCL (1 << 6) +#define VENDOR_ID_AMD_USE_INTEL (1 << 7) +#define VENDOR_ID_GENERIC (1 << 31) -#define VENDOR_ID_AMD 4098 -#define VENDOR_ID_NV 4318 -#define VENDOR_ID_APPLE 16925952 -#define VENDOR_ID_GENERIC 9999 +#define BLOCK_SIZE 64 -#define BLOCK_SIZE 64 +#define CHARSIZ 0x100 +#define INFOSZ CHARSIZ -#define CHARSIZ 0x100 -#define INFOSZ CHARSIZ +#define SP_HCSTAT "hashcat.hcstat" +#define SP_PW_MIN 2 +#define SP_PW_MAX 64 +#define SP_ROOT_CNT (SP_PW_MAX * CHARSIZ) +#define SP_MARKOV_CNT (SP_PW_MAX * CHARSIZ * CHARSIZ) -#define SP_HCSTAT "hashcat.hcstat" -#define SP_PW_MIN 2 -#define SP_PW_MAX 64 -#define SP_ROOT_CNT (SP_PW_MAX * CHARSIZ) -#define SP_MARKOV_CNT (SP_PW_MAX * CHARSIZ * CHARSIZ) +#define TUNING_DB_FILE "hashcat.hctune" -#define INDUCT_DIR "induct" -#define OUTFILES_DIR "outfiles" +#define INDUCT_DIR "induct" +#define OUTFILES_DIR "outfiles" -#define LOOPBACK_FILE "hashcat.loopback" +#define LOOPBACK_FILE "hashcat.loopback" + +#define DICTSTAT_FILENAME "hashcat.dictstat" +#define POTFILE_FILENAME "hashcat.pot" /** * types */ #ifdef _WIN -typedef LARGE_INTEGER hc_timer_t; -typedef HANDLE hc_thread_t; -typedef CRITICAL_SECTION hc_thread_mutex_t; +typedef LARGE_INTEGER hc_timer_t; +typedef HANDLE hc_thread_t; +typedef CRITICAL_SECTION hc_thread_mutex_t; #elif _POSIX -typedef struct timeval hc_timer_t; -typedef pthread_t hc_thread_t; -typedef pthread_mutex_t hc_thread_mutex_t; +typedef struct timeval hc_timer_t; +typedef pthread_t hc_thread_t; +typedef pthread_mutex_t hc_thread_mutex_t; #endif -#include +#include "types.h" #include "rp_cpu.h" -#include "rp_kernel.h" +#include "inc_rp.h" /** * valid project specific global stuff @@ -177,552 +203,6 @@ extern int SUPPRESS_OUTPUT; extern hc_thread_mutex_t mux_display; -/** - * password lengths supported - */ - -#define PW_LENGTH_MIN_0 0 -#define PW_LENGTH_MAX_0 55 -#define PW_LENGTH_MIN_400 0 -#define PW_LENGTH_MAX_400 40 -#define PW_LENGTH_MIN_500 0 -#define PW_LENGTH_MAX_500 15 -#define PW_LENGTH_MIN_1600 0 -#define PW_LENGTH_MAX_1600 15 -#define PW_LENGTH_MIN_1800 0 -#define PW_LENGTH_MAX_1800 15 -#define PW_LENGTH_MIN_2500 0 -#define PW_LENGTH_MAX_2500 64 -#define PW_LENGTH_MIN_6300 0 -#define PW_LENGTH_MAX_6300 15 -#define PW_LENGTH_MIN_7400 0 -#define PW_LENGTH_MAX_7400 15 - -/** - * device accel macro - */ - -#ifdef OSX -#define KERNEL_ACCEL_1800 1 -#define KERNEL_ACCEL_2500 2 -#define KERNEL_ACCEL_5000 16 -#define KERNEL_ACCEL_6100 1 -#define KERNEL_ACCEL_6211 2 -#define KERNEL_ACCEL_6231 1 -#define KERNEL_ACCEL_6241 4 -#define KERNEL_ACCEL_6800 2 -#define KERNEL_ACCEL_7100 1 -#define KERNEL_ACCEL_7200 1 -#define KERNEL_ACCEL_7900 1 -#define KERNEL_ACCEL_8200 1 -#define KERNEL_ACCEL_8700 2 -#define KERNEL_ACCEL_9100 4 -#define KERNEL_ACCEL_9200 1 -#define KERNEL_ACCEL_9300 1 -#define KERNEL_ACCEL_9400 1 -#define KERNEL_ACCEL_9500 1 -#define KERNEL_ACCEL_9600 1 -#define KERNEL_ACCEL_10000 1 -#define KERNEL_ACCEL_10500 4 -#define KERNEL_ACCEL_11300 1 -#define KERNEL_ACCEL_11600 1 -#define KERNEL_ACCEL_11700 1 -#define KERNEL_ACCEL_11800 1 -#define KERNEL_ACCEL_12200 1 -#define KERNEL_ACCEL_12400 1 -#define KERNEL_ACCEL_12500 1 -#define KERNEL_ACCEL_13000 1 -#else -#define KERNEL_ACCEL_1800 2 -#define KERNEL_ACCEL_2500 8 -#define KERNEL_ACCEL_5000 64 -#define KERNEL_ACCEL_6100 8 -#define KERNEL_ACCEL_6211 16 -#define KERNEL_ACCEL_6231 4 -#define KERNEL_ACCEL_6241 32 -#define KERNEL_ACCEL_6800 8 -#define KERNEL_ACCEL_7100 2 -#define KERNEL_ACCEL_7200 2 -#define KERNEL_ACCEL_7900 2 -#define KERNEL_ACCEL_8200 2 -#define KERNEL_ACCEL_8700 8 -#define KERNEL_ACCEL_9100 8 -#define KERNEL_ACCEL_9200 2 -#define KERNEL_ACCEL_9300 2 -#define KERNEL_ACCEL_9400 8 -#define KERNEL_ACCEL_9500 8 -#define KERNEL_ACCEL_9600 2 -#define KERNEL_ACCEL_10000 2 -#define KERNEL_ACCEL_10500 64 -#define KERNEL_ACCEL_11300 2 -#define KERNEL_ACCEL_11600 2 -#define KERNEL_ACCEL_11700 4 -#define KERNEL_ACCEL_11800 4 -#define KERNEL_ACCEL_12200 2 -#define KERNEL_ACCEL_12400 64 -#define KERNEL_ACCEL_12500 8 -#define KERNEL_ACCEL_13000 8 -#endif // OSX - -#define KERNEL_ACCEL_0 128 -#define KERNEL_ACCEL_10 128 -#define KERNEL_ACCEL_11 128 -#define KERNEL_ACCEL_12 128 -#define KERNEL_ACCEL_20 64 -#define KERNEL_ACCEL_21 64 -#define KERNEL_ACCEL_22 64 -#define KERNEL_ACCEL_23 64 -#define KERNEL_ACCEL_30 128 -#define KERNEL_ACCEL_40 64 -#define KERNEL_ACCEL_50 64 -#define KERNEL_ACCEL_60 64 -#define KERNEL_ACCEL_100 64 -#define KERNEL_ACCEL_101 64 -#define KERNEL_ACCEL_110 64 -#define KERNEL_ACCEL_111 64 -#define KERNEL_ACCEL_112 64 -#define KERNEL_ACCEL_120 64 -#define KERNEL_ACCEL_121 64 -#define KERNEL_ACCEL_122 64 -#define KERNEL_ACCEL_124 64 -#define KERNEL_ACCEL_130 64 -#define KERNEL_ACCEL_131 64 -#define KERNEL_ACCEL_132 64 -#define KERNEL_ACCEL_133 64 -#define KERNEL_ACCEL_140 64 -#define KERNEL_ACCEL_141 64 -#define KERNEL_ACCEL_150 64 -#define KERNEL_ACCEL_160 64 -#define KERNEL_ACCEL_190 64 -#define KERNEL_ACCEL_200 64 -#define KERNEL_ACCEL_300 64 -#define KERNEL_ACCEL_400 8 -#define KERNEL_ACCEL_500 8 -#define KERNEL_ACCEL_501 8 -#define KERNEL_ACCEL_900 128 -#define KERNEL_ACCEL_910 128 -#define KERNEL_ACCEL_1000 128 -#define KERNEL_ACCEL_1100 64 -#define KERNEL_ACCEL_1400 64 -#define KERNEL_ACCEL_1410 64 -#define KERNEL_ACCEL_1420 64 -#define KERNEL_ACCEL_1421 64 -#define KERNEL_ACCEL_1430 64 -#define KERNEL_ACCEL_1440 64 -#define KERNEL_ACCEL_1441 64 -#define KERNEL_ACCEL_1450 32 -#define KERNEL_ACCEL_1460 32 -#define KERNEL_ACCEL_1500 16 -#define KERNEL_ACCEL_1600 8 -#define KERNEL_ACCEL_1700 64 -#define KERNEL_ACCEL_1710 64 -#define KERNEL_ACCEL_1711 64 -#define KERNEL_ACCEL_1720 64 -#define KERNEL_ACCEL_1722 64 -#define KERNEL_ACCEL_1730 64 -#define KERNEL_ACCEL_1731 64 -#define KERNEL_ACCEL_1740 64 -#define KERNEL_ACCEL_1750 32 -#define KERNEL_ACCEL_1760 32 -#define KERNEL_ACCEL_2100 8 -#define KERNEL_ACCEL_2400 64 -#define KERNEL_ACCEL_2410 64 -#define KERNEL_ACCEL_2600 64 -#define KERNEL_ACCEL_2611 64 -#define KERNEL_ACCEL_2612 64 -#define KERNEL_ACCEL_2711 64 -#define KERNEL_ACCEL_2811 64 -#define KERNEL_ACCEL_3000 128 -#define KERNEL_ACCEL_3100 16 -#define KERNEL_ACCEL_3200 2 -#define KERNEL_ACCEL_3710 64 -#define KERNEL_ACCEL_3711 64 -#define KERNEL_ACCEL_3800 128 -#define KERNEL_ACCEL_4300 64 -#define KERNEL_ACCEL_4400 64 -#define KERNEL_ACCEL_4500 64 -#define KERNEL_ACCEL_4700 64 -#define KERNEL_ACCEL_4800 128 -#define KERNEL_ACCEL_4900 64 -#define KERNEL_ACCEL_5100 64 -#define KERNEL_ACCEL_5200 8 -#define KERNEL_ACCEL_5300 32 -#define KERNEL_ACCEL_5400 32 -#define KERNEL_ACCEL_5500 64 -#define KERNEL_ACCEL_5600 64 -#define KERNEL_ACCEL_5700 64 -#define KERNEL_ACCEL_5800 8 -#define KERNEL_ACCEL_6000 64 -#define KERNEL_ACCEL_6212 8 -#define KERNEL_ACCEL_6213 8 -#define KERNEL_ACCEL_6221 4 -#define KERNEL_ACCEL_6222 4 -#define KERNEL_ACCEL_6223 4 -#define KERNEL_ACCEL_6232 4 -#define KERNEL_ACCEL_6233 4 -#define KERNEL_ACCEL_6242 16 -#define KERNEL_ACCEL_6243 16 -#define KERNEL_ACCEL_6300 8 -#define KERNEL_ACCEL_6400 8 -#define KERNEL_ACCEL_6500 8 -#define KERNEL_ACCEL_6600 8 -#define KERNEL_ACCEL_6700 8 -#define KERNEL_ACCEL_6900 16 -#define KERNEL_ACCEL_7300 64 -#define KERNEL_ACCEL_7400 2 -#define KERNEL_ACCEL_7500 8 -#define KERNEL_ACCEL_7600 64 -#define KERNEL_ACCEL_7700 16 -#define KERNEL_ACCEL_7800 8 -#define KERNEL_ACCEL_8000 8 -#define KERNEL_ACCEL_8100 64 -#define KERNEL_ACCEL_8300 64 -#define KERNEL_ACCEL_8400 64 -#define KERNEL_ACCEL_8500 64 -#define KERNEL_ACCEL_8600 8 -#define KERNEL_ACCEL_8800 8 -#define KERNEL_ACCEL_8900 16 -#define KERNEL_ACCEL_9000 2 -#define KERNEL_ACCEL_9700 8 -#define KERNEL_ACCEL_9710 8 -#define KERNEL_ACCEL_9720 8 -#define KERNEL_ACCEL_9800 8 -#define KERNEL_ACCEL_9810 8 -#define KERNEL_ACCEL_9820 8 -#define KERNEL_ACCEL_9900 64 -#define KERNEL_ACCEL_10100 128 -#define KERNEL_ACCEL_10200 64 -#define KERNEL_ACCEL_10300 8 -#define KERNEL_ACCEL_10400 8 -#define KERNEL_ACCEL_10410 8 -#define KERNEL_ACCEL_10420 8 -#define KERNEL_ACCEL_10600 64 -#define KERNEL_ACCEL_10700 1 -#define KERNEL_ACCEL_10800 64 -#define KERNEL_ACCEL_10900 2 -#define KERNEL_ACCEL_11000 64 -#define KERNEL_ACCEL_11100 64 -#define KERNEL_ACCEL_11200 64 -#define KERNEL_ACCEL_11400 8 -#define KERNEL_ACCEL_11500 128 -#define KERNEL_ACCEL_11900 2 -#define KERNEL_ACCEL_12000 2 -#define KERNEL_ACCEL_12100 2 -#define KERNEL_ACCEL_12300 2 -#define KERNEL_ACCEL_12600 32 -#define KERNEL_ACCEL_12700 64 -#define KERNEL_ACCEL_12800 64 -#define KERNEL_ACCEL_12900 8 - -/** - * device loops macro - */ - -#ifdef OSX -#define KERNEL_LOOPS_0 2 -#define KERNEL_LOOPS_10 2 -#define KERNEL_LOOPS_11 2 -#define KERNEL_LOOPS_12 2 -#define KERNEL_LOOPS_20 2 -#define KERNEL_LOOPS_21 2 -#define KERNEL_LOOPS_22 2 -#define KERNEL_LOOPS_23 2 -#define KERNEL_LOOPS_30 2 -#define KERNEL_LOOPS_40 2 -#define KERNEL_LOOPS_50 2 -#define KERNEL_LOOPS_60 2 -#define KERNEL_LOOPS_100 2 -#define KERNEL_LOOPS_101 2 -#define KERNEL_LOOPS_110 2 -#define KERNEL_LOOPS_111 2 -#define KERNEL_LOOPS_112 2 -#define KERNEL_LOOPS_120 2 -#define KERNEL_LOOPS_121 2 -#define KERNEL_LOOPS_122 2 -#define KERNEL_LOOPS_124 2 -#define KERNEL_LOOPS_130 2 -#define KERNEL_LOOPS_131 2 -#define KERNEL_LOOPS_132 2 -#define KERNEL_LOOPS_133 2 -#define KERNEL_LOOPS_140 2 -#define KERNEL_LOOPS_141 2 -#define KERNEL_LOOPS_150 2 -#define KERNEL_LOOPS_160 2 -#define KERNEL_LOOPS_190 2 -#define KERNEL_LOOPS_200 2 -#define KERNEL_LOOPS_300 2 -#define KERNEL_LOOPS_900 2 -#define KERNEL_LOOPS_1000 2 -#define KERNEL_LOOPS_1100 2 -#define KERNEL_LOOPS_1400 2 -#define KERNEL_LOOPS_1410 2 -#define KERNEL_LOOPS_1420 2 -#define KERNEL_LOOPS_1421 2 -#define KERNEL_LOOPS_1430 2 -#define KERNEL_LOOPS_1440 2 -#define KERNEL_LOOPS_1441 2 -#define KERNEL_LOOPS_1450 2 -#define KERNEL_LOOPS_1460 2 -#define KERNEL_LOOPS_1700 2 -#define KERNEL_LOOPS_1710 2 -#define KERNEL_LOOPS_1711 2 -#define KERNEL_LOOPS_1720 2 -#define KERNEL_LOOPS_1722 2 -#define KERNEL_LOOPS_1730 2 -#define KERNEL_LOOPS_1731 2 -#define KERNEL_LOOPS_1740 2 -#define KERNEL_LOOPS_1750 2 -#define KERNEL_LOOPS_1760 2 -#define KERNEL_LOOPS_2400 2 -#define KERNEL_LOOPS_2410 2 -#define KERNEL_LOOPS_2600 2 -#define KERNEL_LOOPS_2611 2 -#define KERNEL_LOOPS_2612 2 -#define KERNEL_LOOPS_2711 2 -#define KERNEL_LOOPS_2811 2 -#define KERNEL_LOOPS_3100 2 -#define KERNEL_LOOPS_3200 2 -#define KERNEL_LOOPS_3710 2 -#define KERNEL_LOOPS_3711 2 -#define KERNEL_LOOPS_3800 2 -#define KERNEL_LOOPS_4300 2 -#define KERNEL_LOOPS_4400 2 -#define KERNEL_LOOPS_4500 2 -#define KERNEL_LOOPS_4700 2 -#define KERNEL_LOOPS_4800 2 -#define KERNEL_LOOPS_4900 2 -#define KERNEL_LOOPS_5000 2 -#define KERNEL_LOOPS_5100 2 -#define KERNEL_LOOPS_5300 2 -#define KERNEL_LOOPS_5400 2 -#define KERNEL_LOOPS_5500 2 -#define KERNEL_LOOPS_5600 2 -#define KERNEL_LOOPS_5700 2 -#define KERNEL_LOOPS_6000 2 -#define KERNEL_LOOPS_6100 2 -#define KERNEL_LOOPS_6231 2 -#define KERNEL_LOOPS_6232 2 -#define KERNEL_LOOPS_6233 2 -#define KERNEL_LOOPS_6900 2 -#define KERNEL_LOOPS_7300 2 -#define KERNEL_LOOPS_7500 2 -#define KERNEL_LOOPS_7600 2 -#define KERNEL_LOOPS_7700 2 -#define KERNEL_LOOPS_7800 2 -#define KERNEL_LOOPS_8000 2 -#define KERNEL_LOOPS_8100 2 -#define KERNEL_LOOPS_8200 1 -#define KERNEL_LOOPS_8300 2 -#define KERNEL_LOOPS_8400 2 -#define KERNEL_LOOPS_8500 2 -#define KERNEL_LOOPS_8600 2 -#define KERNEL_LOOPS_8700 2 -#define KERNEL_LOOPS_9700 2 -#define KERNEL_LOOPS_9710 2 -#define KERNEL_LOOPS_9720 8 -#define KERNEL_LOOPS_9800 2 -#define KERNEL_LOOPS_9810 2 -#define KERNEL_LOOPS_9820 2 -#define KERNEL_LOOPS_9900 2 -#define KERNEL_LOOPS_10100 2 -#define KERNEL_LOOPS_10200 2 -#define KERNEL_LOOPS_10400 2 -#define KERNEL_LOOPS_10410 2 -#define KERNEL_LOOPS_10420 2 -#define KERNEL_LOOPS_10600 2 -#define KERNEL_LOOPS_10700 2 -#define KERNEL_LOOPS_10800 2 -#define KERNEL_LOOPS_11000 2 -#define KERNEL_LOOPS_11100 2 -#define KERNEL_LOOPS_11200 2 -#define KERNEL_LOOPS_11300 1 -#define KERNEL_LOOPS_11400 2 -#define KERNEL_LOOPS_11500 2 -#define KERNEL_LOOPS_11700 2 -#define KERNEL_LOOPS_11800 2 -#define KERNEL_LOOPS_12600 2 -#else -#define KERNEL_LOOPS_0 256 -#define KERNEL_LOOPS_10 256 -#define KERNEL_LOOPS_11 256 -#define KERNEL_LOOPS_12 256 -#define KERNEL_LOOPS_20 256 -#define KERNEL_LOOPS_21 256 -#define KERNEL_LOOPS_22 256 -#define KERNEL_LOOPS_23 256 -#define KERNEL_LOOPS_30 256 -#define KERNEL_LOOPS_40 256 -#define KERNEL_LOOPS_50 64 -#define KERNEL_LOOPS_60 64 -#define KERNEL_LOOPS_100 128 -#define KERNEL_LOOPS_101 128 -#define KERNEL_LOOPS_110 128 -#define KERNEL_LOOPS_111 128 -#define KERNEL_LOOPS_112 128 -#define KERNEL_LOOPS_120 128 -#define KERNEL_LOOPS_121 128 -#define KERNEL_LOOPS_122 128 -#define KERNEL_LOOPS_124 128 -#define KERNEL_LOOPS_130 128 -#define KERNEL_LOOPS_131 128 -#define KERNEL_LOOPS_132 128 -#define KERNEL_LOOPS_133 128 -#define KERNEL_LOOPS_140 128 -#define KERNEL_LOOPS_141 128 -#define KERNEL_LOOPS_150 64 -#define KERNEL_LOOPS_160 64 -#define KERNEL_LOOPS_190 128 -#define KERNEL_LOOPS_200 128 -#define KERNEL_LOOPS_300 64 -#define KERNEL_LOOPS_900 256 -#define KERNEL_LOOPS_1000 256 -#define KERNEL_LOOPS_1100 128 -#define KERNEL_LOOPS_1400 64 -#define KERNEL_LOOPS_1410 64 -#define KERNEL_LOOPS_1420 64 -#define KERNEL_LOOPS_1421 64 -#define KERNEL_LOOPS_1430 64 -#define KERNEL_LOOPS_1440 64 -#define KERNEL_LOOPS_1441 64 -#define KERNEL_LOOPS_1450 32 -#define KERNEL_LOOPS_1460 32 -#define KERNEL_LOOPS_1700 32 -#define KERNEL_LOOPS_1710 32 -#define KERNEL_LOOPS_1711 32 -#define KERNEL_LOOPS_1720 32 -#define KERNEL_LOOPS_1722 32 -#define KERNEL_LOOPS_1730 32 -#define KERNEL_LOOPS_1731 32 -#define KERNEL_LOOPS_1740 32 -#define KERNEL_LOOPS_1750 16 -#define KERNEL_LOOPS_1760 16 -#define KERNEL_LOOPS_2400 256 -#define KERNEL_LOOPS_2410 256 -#define KERNEL_LOOPS_2600 128 -#define KERNEL_LOOPS_2611 128 -#define KERNEL_LOOPS_2612 128 -#define KERNEL_LOOPS_2711 64 -#define KERNEL_LOOPS_2811 64 -#define KERNEL_LOOPS_3100 16 -#define KERNEL_LOOPS_3200 16 -#define KERNEL_LOOPS_3710 128 -#define KERNEL_LOOPS_3711 128 -#define KERNEL_LOOPS_3800 256 -#define KERNEL_LOOPS_4300 128 -#define KERNEL_LOOPS_4400 128 -#define KERNEL_LOOPS_4500 128 -#define KERNEL_LOOPS_4700 128 -#define KERNEL_LOOPS_4800 256 -#define KERNEL_LOOPS_4900 128 -#define KERNEL_LOOPS_5000 64 -#define KERNEL_LOOPS_5100 256 -#define KERNEL_LOOPS_5300 32 -#define KERNEL_LOOPS_5400 32 -#define KERNEL_LOOPS_5500 128 -#define KERNEL_LOOPS_5600 64 -#define KERNEL_LOOPS_5700 64 -#define KERNEL_LOOPS_6000 64 -#define KERNEL_LOOPS_6100 64 -#define KERNEL_LOOPS_6231 200 -#define KERNEL_LOOPS_6232 200 -#define KERNEL_LOOPS_6233 200 -#define KERNEL_LOOPS_6900 64 -#define KERNEL_LOOPS_7300 64 -#define KERNEL_LOOPS_7500 16 -#define KERNEL_LOOPS_7600 128 -#define KERNEL_LOOPS_7700 128 -#define KERNEL_LOOPS_7800 64 -#define KERNEL_LOOPS_8000 64 -#define KERNEL_LOOPS_8100 128 -#define KERNEL_LOOPS_8200 200 -#define KERNEL_LOOPS_8300 64 -#define KERNEL_LOOPS_8400 64 -#define KERNEL_LOOPS_8500 16 -#define KERNEL_LOOPS_8600 16 -#define KERNEL_LOOPS_8700 16 -#define KERNEL_LOOPS_9700 200 -#define KERNEL_LOOPS_9710 200 -#define KERNEL_LOOPS_9720 200 -#define KERNEL_LOOPS_9800 200 -#define KERNEL_LOOPS_9820 200 -#define KERNEL_LOOPS_9810 200 -#define KERNEL_LOOPS_9900 256 -#define KERNEL_LOOPS_10100 512 -#define KERNEL_LOOPS_10200 64 -#define KERNEL_LOOPS_10400 256 -#define KERNEL_LOOPS_10410 256 -#define KERNEL_LOOPS_10420 256 -#define KERNEL_LOOPS_10600 64 -#define KERNEL_LOOPS_10700 64 -#define KERNEL_LOOPS_10800 32 -#define KERNEL_LOOPS_11000 256 -#define KERNEL_LOOPS_11100 128 -#define KERNEL_LOOPS_11200 128 -#define KERNEL_LOOPS_11300 256 -#define KERNEL_LOOPS_11400 128 -#define KERNEL_LOOPS_11500 256 -#define KERNEL_LOOPS_11700 64 -#define KERNEL_LOOPS_11800 64 -#define KERNEL_LOOPS_12600 32 -#endif // OSX - -#define KERNEL_LOOPS_400 256 -#define KERNEL_LOOPS_500 256 -#define KERNEL_LOOPS_501 256 -#define KERNEL_LOOPS_910 256 -#define KERNEL_LOOPS_1500 256 -#define KERNEL_LOOPS_1600 256 -#define KERNEL_LOOPS_1800 16 -#define KERNEL_LOOPS_2100 256 -#define KERNEL_LOOPS_2500 256 -#define KERNEL_LOOPS_3000 256 -#define KERNEL_LOOPS_5200 256 -#define KERNEL_LOOPS_5800 256 -#define KERNEL_LOOPS_6211 200 -#define KERNEL_LOOPS_6212 200 -#define KERNEL_LOOPS_6213 200 -#define KERNEL_LOOPS_6221 200 -#define KERNEL_LOOPS_6222 200 -#define KERNEL_LOOPS_6223 200 -#define KERNEL_LOOPS_6241 200 -#define KERNEL_LOOPS_6242 200 -#define KERNEL_LOOPS_6243 200 -#define KERNEL_LOOPS_6300 256 -#define KERNEL_LOOPS_6400 256 -#define KERNEL_LOOPS_6500 256 -#define KERNEL_LOOPS_6600 200 -#define KERNEL_LOOPS_6700 256 -#define KERNEL_LOOPS_6800 200 -#define KERNEL_LOOPS_7100 256 -#define KERNEL_LOOPS_7200 200 -#define KERNEL_LOOPS_7400 200 -#define KERNEL_LOOPS_7900 256 -#define KERNEL_LOOPS_8800 256 -#define KERNEL_LOOPS_8900 1 -#define KERNEL_LOOPS_9000 16 -#define KERNEL_LOOPS_9100 256 -#define KERNEL_LOOPS_9200 200 -#define KERNEL_LOOPS_9300 1 -#define KERNEL_LOOPS_9400 200 -#define KERNEL_LOOPS_9500 200 -#define KERNEL_LOOPS_9600 200 -#define KERNEL_LOOPS_10000 200 -#define KERNEL_LOOPS_10300 128 -#define KERNEL_LOOPS_10500 64 -#define KERNEL_LOOPS_10900 200 -#define KERNEL_LOOPS_11600 512 -#define KERNEL_LOOPS_11900 200 -#define KERNEL_LOOPS_12000 200 -#define KERNEL_LOOPS_12100 200 -#define KERNEL_LOOPS_12200 256 -#define KERNEL_LOOPS_12300 256 -#define KERNEL_LOOPS_12400 256 -#define KERNEL_LOOPS_12500 256 -#define KERNEL_LOOPS_12700 10 -#define KERNEL_LOOPS_12800 100 -#define KERNEL_LOOPS_12900 64 -#define KERNEL_LOOPS_13000 64 - /** * Strings */ @@ -869,6 +349,13 @@ extern hc_thread_mutex_t mux_display; #define HT_12800 "MS-AzureSync PBKDF2-HMAC-SHA256" #define HT_12900 "Android FDE (Samsung DEK)" #define HT_13000 "RAR5" +#define HT_13100 "Kerberos 5 TGS-REP etype 23" +#define HT_13200 "AxCrypt" +#define HT_13300 "AxCrypt in memory SHA1" +#define HT_13400 "Keepass 1 (AES/Twofish) and Keepass 2 (AES)" +#define HT_13500 "PeopleSoft PS_TOKEN" +#define HT_13600 "WinZip" +#define HT_13800 "Windows 8+ phone PIN/Password" #define HT_00011 "Joomla < 2.5.18" #define HT_00012 "PostgreSQL" @@ -881,6 +368,7 @@ extern hc_thread_mutex_t mux_display; #define HT_00121 "SMF > v1.1" #define HT_00122 "OSX v10.4, v10.5, v10.6" #define HT_00124 "Django (SHA-1)" +#define HT_00125 "ArubaOS" #define HT_00131 "MSSQL(2000)" #define HT_00132 "MSSQL(2005)" #define HT_00133 "PeopleSoft" @@ -894,18 +382,36 @@ extern hc_thread_mutex_t mux_display; #define HT_02612 "PHPS" #define HT_02711 "vBulletin > v3.8.5" #define HT_02811 "IPB2+, MyBB1.2+" -#define HT_06211 "TrueCrypt 5.0+ PBKDF2-HMAC-RipeMD160 + XTS 512 bit" -#define HT_06212 "TrueCrypt 5.0+ PBKDF2-HMAC-RipeMD160 + XTS 1024 bit" -#define HT_06213 "TrueCrypt 5.0+ PBKDF2-HMAC-RipeMD160 + XTS 1536 bit" -#define HT_06221 "TrueCrypt 5.0+ PBKDF2-HMAC-SHA512 + XTS 512 bit" -#define HT_06222 "TrueCrypt 5.0+ PBKDF2-HMAC-SHA512 + XTS 1024 bit" -#define HT_06223 "TrueCrypt 5.0+ PBKDF2-HMAC-SHA512 + XTS 1536 bit" -#define HT_06231 "TrueCrypt 5.0+ PBKDF2-HMAC-Whirlpool + XTS 512 bit" -#define HT_06232 "TrueCrypt 5.0+ PBKDF2-HMAC-Whirlpool + XTS 1024 bit" -#define HT_06233 "TrueCrypt 5.0+ PBKDF2-HMAC-Whirlpool + XTS 1536 bit" -#define HT_06241 "TrueCrypt 5.0+ PBKDF2-HMAC-RipeMD160 + XTS 512 bit + boot-mode" -#define HT_06242 "TrueCrypt 5.0+ PBKDF2-HMAC-RipeMD160 + XTS 1024 bit + boot-mode" -#define HT_06243 "TrueCrypt 5.0+ PBKDF2-HMAC-RipeMD160 + XTS 1536 bit + boot-mode" +#define HT_06211 "TrueCrypt PBKDF2-HMAC-RipeMD160 + XTS 512 bit" +#define HT_06212 "TrueCrypt PBKDF2-HMAC-RipeMD160 + XTS 1024 bit" +#define HT_06213 "TrueCrypt PBKDF2-HMAC-RipeMD160 + XTS 1536 bit" +#define HT_06221 "TrueCrypt PBKDF2-HMAC-SHA512 + XTS 512 bit" +#define HT_06222 "TrueCrypt PBKDF2-HMAC-SHA512 + XTS 1024 bit" +#define HT_06223 "TrueCrypt PBKDF2-HMAC-SHA512 + XTS 1536 bit" +#define HT_06231 "TrueCrypt PBKDF2-HMAC-Whirlpool + XTS 512 bit" +#define HT_06232 "TrueCrypt PBKDF2-HMAC-Whirlpool + XTS 1024 bit" +#define HT_06233 "TrueCrypt PBKDF2-HMAC-Whirlpool + XTS 1536 bit" +#define HT_06241 "TrueCrypt PBKDF2-HMAC-RipeMD160 + XTS 512 bit + boot-mode" +#define HT_06242 "TrueCrypt PBKDF2-HMAC-RipeMD160 + XTS 1024 bit + boot-mode" +#define HT_06243 "TrueCrypt PBKDF2-HMAC-RipeMD160 + XTS 1536 bit + boot-mode" +#define HT_13711 "VeraCrypt PBKDF2-HMAC-RipeMD160 + XTS 512 bit" +#define HT_13712 "VeraCrypt PBKDF2-HMAC-RipeMD160 + XTS 1024 bit" +#define HT_13713 "VeraCrypt PBKDF2-HMAC-RipeMD160 + XTS 1536 bit" +#define HT_13721 "VeraCrypt PBKDF2-HMAC-SHA512 + XTS 512 bit" +#define HT_13722 "VeraCrypt PBKDF2-HMAC-SHA512 + XTS 1024 bit" +#define HT_13723 "VeraCrypt PBKDF2-HMAC-SHA512 + XTS 1536 bit" +#define HT_13731 "VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 512 bit" +#define HT_13732 "VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 1024 bit" +#define HT_13733 "VeraCrypt PBKDF2-HMAC-Whirlpool + XTS 1536 bit" +#define HT_13741 "VeraCrypt PBKDF2-HMAC-RipeMD160 + XTS 512 bit + boot-mode" +#define HT_13742 "VeraCrypt PBKDF2-HMAC-RipeMD160 + XTS 1024 bit + boot-mode" +#define HT_13743 "VeraCrypt PBKDF2-HMAC-RipeMD160 + XTS 1536 bit + boot-mode" +#define HT_13751 "VeraCrypt PBKDF2-HMAC-SHA256 + XTS 512 bit" +#define HT_13752 "VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1024 bit" +#define HT_13753 "VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1536 bit" +#define HT_13761 "VeraCrypt PBKDF2-HMAC-SHA256 + XTS 512 bit + boot-mode" +#define HT_13762 "VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1024 bit + boot-mode" +#define HT_13763 "VeraCrypt PBKDF2-HMAC-SHA256 + XTS 1536 bit + boot-mode" /** * Outfile formats @@ -1164,8 +670,8 @@ extern hc_thread_mutex_t mux_display; #define DISPLAY_LEN_MAX_11100 10 + 32 + 1 + 8 + 1 + 32 #define DISPLAY_LEN_MIN_11200 9 + 40 + 1 + 40 #define DISPLAY_LEN_MAX_11200 9 + 40 + 1 + 40 -#define DISPLAY_LEN_MIN_11300 1 + 7 + 1 + 2 + 1 + 96 + 1 + 2 + 1 + 16 + 1 + 1 + 1 + 2 + 1 + 96 + 1 + 2 + 1 + 66 -#define DISPLAY_LEN_MAX_11300 1 + 7 + 1 + 2 + 1 + 96 + 1 + 2 + 1 + 16 + 1 + 6 + 1 + 2 + 1 + 96 + 1 + 2 + 1 + 66 +#define DISPLAY_LEN_MIN_11300 1 + 7 + 1 + 2 + 1 + 96 + 1 + 2 + 1 + 16 + 1 + 1 + 1 + 2 + 1 + 96 + 1 + 1 + 1 + 2 +#define DISPLAY_LEN_MAX_11300 1 + 7 + 1 + 2 + 1 + 96 + 1 + 2 + 1 + 16 + 1 + 6 + 1 + 2 + 1 + 96 + 1 + 3 + 1 + 512 #define DISPLAY_LEN_MIN_11400 6 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 0 + 1 + 3 + 1 + 32 #define DISPLAY_LEN_MAX_11400 6 + 512 + 1 + 512 + 1 + 116 + 1 + 116 + 1 + 246 + 1 + 245 + 1 + 246 + 1 + 245 + 1 + 50 + 1 + 50 + 1 + 50 + 1 + 50 + 1 + 3 + 1 + 32 #define DISPLAY_LEN_MIN_11500 8 + 1 + 8 @@ -1202,6 +708,20 @@ extern hc_thread_mutex_t mux_display; #define DISPLAY_LEN_MAX_12900 64 + 64 + 32 #define DISPLAY_LEN_MIN_13000 1 + 4 + 1 + 2 + 1 + 32 + 1 + 2 + 1 + 32 + 1 + 1 + 1 + 16 #define DISPLAY_LEN_MAX_13000 1 + 4 + 1 + 2 + 1 + 32 + 1 + 2 + 1 + 32 + 1 + 1 + 1 + 16 +#define DISPLAY_LEN_MIN_13100 1 + 7 + 1 + 2 + 1 + 0 + 0 + 32 + 1 + 64 +#define DISPLAY_LEN_MAX_13100 1 + 7 + 1 + 2 + 1 + 2 + 512 + 1 + 32 + 1 + 20480 +#define DISPLAY_LEN_MIN_13200 1 + 7 + 1 + 1 + 1 + 1 + 1 + 1 + 32 + 1 + 48 +#define DISPLAY_LEN_MAX_13200 1 + 7 + 1 + 1 + 1 + 1 + 50 + 1 + 32 + 1 + 48 + 1 + 20480 +#define DISPLAY_LEN_MIN_13300 1 + 12 + 1 + 32 +#define DISPLAY_LEN_MAX_13300 1 + 12 + 1 + 40 +#define DISPLAY_LEN_MIN_13400 1 + 7 + 1 + 1 + 1 + 1 + 1 + 1 + 32 + 1 + 64 + 1 + 32 + 1 + 64 + 1 + 1 + 1 + 1 +#define DISPLAY_LEN_MAX_13400 1 + 7 + 1 + 1 + 10 + 1 + 3 + 1 + 64 + 1 + 64 + 1 + 32 + 1 + 64 + 1 + 4 + 1 + 600000 + 1 + 2 + 1 + 64 +#define DISPLAY_LEN_MIN_13500 40 + 1 + 32 +#define DISPLAY_LEN_MAX_13500 40 + 1 + 1024 +#define DISPLAY_LEN_MIN_13600 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 16 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 20 + 1 + 7 +#define DISPLAY_LEN_MAX_13600 6 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 32 + 1 + 4 + 1 + 4 + 1 + 8192 + 1 + 20 + 1 + 7 +#define DISPLAY_LEN_MIN_13800 64 + 1 + 256 +#define DISPLAY_LEN_MAX_13800 64 + 1 + 256 #define DISPLAY_LEN_MIN_11 32 + 1 + 16 #define DISPLAY_LEN_MAX_11 32 + 1 + 32 @@ -1216,9 +736,9 @@ extern hc_thread_mutex_t mux_display; #define DISPLAY_LEN_MIN_21H 32 + 1 + 2 #define DISPLAY_LEN_MAX_21H 32 + 1 + 30 #define DISPLAY_LEN_MIN_22 30 + 1 + 1 -#define DISPLAY_LEN_MAX_22 30 + 1 + 15 +#define DISPLAY_LEN_MAX_22 30 + 1 + 28 #define DISPLAY_LEN_MIN_22H 30 + 1 + 2 -#define DISPLAY_LEN_MAX_22H 30 + 1 + 30 +#define DISPLAY_LEN_MAX_22H 30 + 1 + 56 #define DISPLAY_LEN_MIN_23 32 + 1 + 0 #define DISPLAY_LEN_MAX_23 32 + 1 + 23 #define DISPLAY_LEN_MIN_101 5 + 28 @@ -1235,6 +755,8 @@ extern hc_thread_mutex_t mux_display; #define DISPLAY_LEN_MAX_122 8 + 40 #define DISPLAY_LEN_MIN_124 4 + 1 + 0 + 1 + 40 #define DISPLAY_LEN_MAX_124 4 + 1 + 32 + 1 + 40 +#define DISPLAY_LEN_MIN_125 10 + 40 +#define DISPLAY_LEN_MAX_125 10 + 40 #define DISPLAY_LEN_MIN_131 6 + 8 + 80 #define DISPLAY_LEN_MAX_131 6 + 8 + 80 #define DISPLAY_LEN_MIN_132 6 + 8 + 40 @@ -1315,6 +837,8 @@ extern hc_thread_mutex_t mux_display; #define HASH_TYPE_ORACLET 47 #define HASH_TYPE_BSDICRYPT 48 #define HASH_TYPE_RAR3HP 49 +#define HASH_TYPE_KRB5TGS 50 +#define HASH_TYPE_STDOUT 51 #define KERN_TYPE_MD5 0 #define KERN_TYPE_MD5_PWSLT 10 @@ -1394,6 +918,9 @@ extern hc_thread_mutex_t mux_display; #define KERN_TYPE_TCWHIRLPOOL_XTS512 6231 #define KERN_TYPE_TCWHIRLPOOL_XTS1024 6232 #define KERN_TYPE_TCWHIRLPOOL_XTS1536 6233 +#define KERN_TYPE_VCSHA256_XTS512 13751 +#define KERN_TYPE_VCSHA256_XTS1024 13752 +#define KERN_TYPE_VCSHA256_XTS1536 13753 #define KERN_TYPE_MD5AIX 6300 #define KERN_TYPE_SHA256AIX 6400 #define KERN_TYPE_SHA512AIX 6500 @@ -1460,6 +987,13 @@ extern hc_thread_mutex_t mux_display; #define KERN_TYPE_MS_DRSR 12800 #define KERN_TYPE_ANDROIDFDE_SAMSUNG 12900 #define KERN_TYPE_RAR5 13000 +#define KERN_TYPE_KRB5TGS 13100 +#define KERN_TYPE_AXCRYPT 13200 +#define KERN_TYPE_SHA1_AXCRYPT 13300 +#define KERN_TYPE_KEEPASS 13400 +#define KERN_TYPE_PSTOKEN 13500 +#define KERN_TYPE_ZIP2 13600 +#define KERN_TYPE_WIN8PHONE 13800 /** * signatures @@ -1529,6 +1063,12 @@ extern hc_thread_mutex_t mux_display; #define SIGNATURE_MYWALLET "$blockchain$" #define SIGNATURE_MS_DRSR "v1;PPH1_MD4" #define SIGNATURE_RAR5 "$rar5$" +#define SIGNATURE_KRB5TGS "$krb5tgs$23" +#define SIGNATURE_AXCRYPT "$axcrypt$*1" +#define SIGNATURE_AXCRYPT_SHA1 "$axcrypt_sha1" +#define SIGNATURE_KEEPASS "$keepass$" +#define SIGNATURE_ZIP2_START "$zip2$" +#define SIGNATURE_ZIP2_STOP "$/zip2$" /** * Default iteration numbers @@ -1542,6 +1082,10 @@ extern hc_thread_mutex_t mux_display; #define ROUNDS_ANDROIDPIN 1024 #define ROUNDS_TRUECRYPT_1K 1000 #define ROUNDS_TRUECRYPT_2K 2000 +#define ROUNDS_VERACRYPT_200000 200000 +#define ROUNDS_VERACRYPT_500000 500000 +#define ROUNDS_VERACRYPT_327661 327661 +#define ROUNDS_VERACRYPT_655331 655331 #define ROUNDS_SHA1AIX (1 << 6) #define ROUNDS_SHA256AIX (1 << 6) #define ROUNDS_SHA512AIX (1 << 6) @@ -1580,6 +1124,10 @@ extern hc_thread_mutex_t mux_display; #define ROUNDS_MS_DRSR 100 #define ROUNDS_ANDROIDFDE_SAMSUNG 4096 #define ROUNDS_RAR5 (1 << 15) +#define ROUNDS_AXCRYPT 10000 +#define ROUNDS_KEEPASS 6000 +#define ROUNDS_ZIP2 1000 +#define ROUNDS_STDOUT 0 /** * salt types @@ -1609,10 +1157,11 @@ extern hc_thread_mutex_t mux_display; #define OPTI_TYPE_SINGLE_SALT (1 << 12) #define OPTI_TYPE_BRUTE_FORCE (1 << 13) #define OPTI_TYPE_RAW_HASH (1 << 14) -#define OPTI_TYPE_USES_BITS_8 (1 << 15) -#define OPTI_TYPE_USES_BITS_16 (1 << 16) -#define OPTI_TYPE_USES_BITS_32 (1 << 17) -#define OPTI_TYPE_USES_BITS_64 (1 << 18) +#define OPTI_TYPE_SLOW_HASH_SIMD (1 << 15) +#define OPTI_TYPE_USES_BITS_8 (1 << 16) +#define OPTI_TYPE_USES_BITS_16 (1 << 17) +#define OPTI_TYPE_USES_BITS_32 (1 << 18) +#define OPTI_TYPE_USES_BITS_64 (1 << 19) #define OPTI_STR_ZERO_BYTE "Zero-Byte" #define OPTI_STR_PRECOMPUTE_INIT "Precompute-Init" @@ -1628,6 +1177,11 @@ extern hc_thread_mutex_t mux_display; #define OPTI_STR_SINGLE_SALT "Single-Salt" #define OPTI_STR_BRUTE_FORCE "Brute-Force" #define OPTI_STR_RAW_HASH "Raw-Hash" +#define OPTI_STR_SLOW_HASH_SIMD "Slow-Hash-SIMD" +#define OPTI_STR_USES_BITS_8 "Uses-8-Bit" +#define OPTI_STR_USES_BITS_16 "Uses-16-Bit" +#define OPTI_STR_USES_BITS_32 "Uses-32-Bit" +#define OPTI_STR_USES_BITS_64 "Uses-64-Bit" /** * hash options @@ -1665,7 +1219,6 @@ extern hc_thread_mutex_t mux_display; * digests */ -#define DGST_SIZE_0 0 #define DGST_SIZE_4_2 (2 * sizeof (uint)) // 8 #define DGST_SIZE_4_4 (4 * sizeof (uint)) // 16 #define DGST_SIZE_4_5 (5 * sizeof (uint)) // 20 @@ -1698,7 +1251,8 @@ extern hc_thread_mutex_t mux_display; #define PARSER_PSAFE2_FILE_SIZE -13 #define PARSER_PSAFE3_FILE_SIZE -14 #define PARSER_TC_FILE_SIZE -15 -#define PARSER_SIP_AUTH_DIRECTIVE -16 +#define PARSER_VC_FILE_SIZE -16 +#define PARSER_SIP_AUTH_DIRECTIVE -17 #define PARSER_UNKNOWN_ERROR -255 #define PA_000 "OK" @@ -1717,7 +1271,8 @@ extern hc_thread_mutex_t mux_display; #define PA_013 "Invalid psafe2 filesize" #define PA_014 "Invalid psafe3 filesize" #define PA_015 "Invalid truecrypt filesize" -#define PA_016 "Invalid SIP directive, only MD5 is supported" +#define PA_016 "Invalid veracrypt filesize" +#define PA_017 "Invalid SIP directive, only MD5 is supported" #define PA_255 "Unknown error" /** @@ -1734,6 +1289,7 @@ extern hc_thread_mutex_t mux_display; #define STATUS_QUIT 7 #define STATUS_BYPASS 8 #define STATUS_STOP_AT_CHECKPOINT 9 +#define STATUS_AUTOTUNE 10 #define ST_0000 "Initializing" #define ST_0001 "Starting" @@ -1745,6 +1301,7 @@ extern hc_thread_mutex_t mux_display; #define ST_0007 "Quit" #define ST_0008 "Bypass" #define ST_0009 "Running (stop at checkpoint)" +#define ST_0010 "Autotuning" /** * kernel types @@ -1764,6 +1321,8 @@ extern hc_thread_mutex_t mux_display; * functions */ +u32 is_power_of_2(u32 v); + u32 rotl32 (const u32 a, const u32 n); u32 rotr32 (const u32 a, const u32 n); u64 rotl64 (const u64 a, const u64 n); @@ -1785,9 +1344,11 @@ char *get_exec_path (); char *get_install_dir (const char *progname); char *get_profile_dir (const char *homedir); char *get_session_dir (const char *profile_dir); +uint count_lines (FILE *fd); void *rulefind (const void *key, void *base, int nmemb, size_t size, int (*compar) (const void *, const void *)); +int sort_by_u32 (const void *p1, const void *p2); int sort_by_mtime (const void *p1, const void *p2); int sort_by_cpu_rule (const void *p1, const void *p2); int sort_by_kernel_rule (const void *p1, const void *p2); @@ -1834,7 +1395,7 @@ u32 get_random_num (const u32 min, const u32 max); u32 mydivc32 (const u32 dividend, const u32 divisor); u64 mydivc64 (const u64 dividend, const u64 divisor); -void ascii_digest (char out_buf[1024], uint salt_pos, uint digest_pos); +void ascii_digest (char *out_buf, uint salt_pos, uint digest_pos); void to_hccap_t (hccap_t *hccap, uint salt_pos, uint digest_pos); void format_speed_display (float val, char *buf, size_t len); @@ -1875,38 +1436,36 @@ void fsync (int fd); #ifdef HAVE_HWMON -#if defined(HAVE_NVML) || defined(HAVE_NVAPI) -int hm_get_adapter_index_nv (HM_ADAPTER_NV nvGPUHandle[DEVICES_MAX]); -#endif +int get_adapters_num_adl (void *adl, int *iNumberAdapters); -// int hm_get_device_num (HM_LIB hm_dll_amd, HM_ADAPTER_AMD hm_adapter_index, int *hm_device_num); - -// void hm_get_opencl_busid_devid (hm_attrs_t *hm_device, uint opencl_num_devices, cl_device_id *devices); +int hm_get_adapter_index_adl (hm_attrs_t *hm_device, u32 *valid_adl_device_list, int num_adl_adapters, LPAdapterInfo lpAdapterInfo); -#ifdef HAVE_ADL -int get_adapters_num_amd (void *adl, int *iNumberAdapters); +int hm_get_adapter_index_nvapi (HM_ADAPTER_NVAPI nvapiGPUHandle[DEVICES_MAX]); -int hm_get_adapter_index_amd (hm_attrs_t *hm_device, u32 *valid_adl_device_list, int num_adl_adapters, LPAdapterInfo lpAdapterInfo); +int hm_get_adapter_index_nvml (HM_ADAPTER_NVML nvmlGPUHandle[DEVICES_MAX]); -LPAdapterInfo hm_get_adapter_info_amd (void *adl, int iNumberAdapters); +LPAdapterInfo hm_get_adapter_info_adl (void *adl, int iNumberAdapters); u32 *hm_get_list_valid_adl_adapters (int iNumberAdapters, int *num_adl_adapters, LPAdapterInfo lpAdapterInfo); int hm_get_overdrive_version (void *adl, hm_attrs_t *hm_device, u32 *valid_adl_device_list, int num_adl_adapters, LPAdapterInfo lpAdapterInfo); int hm_check_fanspeed_control (void *adl, hm_attrs_t *hm_device, u32 *valid_adl_device_list, int num_adl_adapters, LPAdapterInfo lpAdapterInfo); -#endif // HAVE_ADL -#if defined(HAVE_ADL) || defined(HAVE_NVML) -void hm_close (HM_LIB hm_dll); - -HM_LIB hm_init (const cl_uint vendor_id); -#endif - -int hm_get_temperature_with_device_id (const uint device_id); -int hm_get_fanspeed_with_device_id (const uint device_id); -int hm_get_utilization_with_device_id (const uint device_id); +// int hm_get_device_num (void *adl, HM_ADAPTER_ADL hm_adapter_index, int *hm_device_num); +// void hm_get_opencl_busid_devid (hm_attrs_t *hm_device, uint opencl_num_devices, cl_device_id *devices); -int hm_set_fanspeed_with_device_id_amd (const uint device_id, const int fanspeed); +int hm_get_threshold_slowdown_with_device_id (const uint device_id); +int hm_get_threshold_shutdown_with_device_id (const uint device_id); +int hm_get_temperature_with_device_id (const uint device_id); +int hm_get_fanspeed_with_device_id (const uint device_id); +int hm_get_fanpolicy_with_device_id (const uint device_id); +int hm_get_buslanes_with_device_id (const uint device_id); +int hm_get_utilization_with_device_id (const uint device_id); +int hm_get_memoryspeed_with_device_id (const uint device_id); +int hm_get_corespeed_with_device_id (const uint device_id); +int hm_get_throttle_with_device_id (const uint device_id); +int hm_set_fanspeed_with_device_id_adl (const uint device_id, const int fanspeed, const int fanpolicy); +int hm_set_fanspeed_with_device_id_xnvctrl (const uint device_id, const int fanspeed); void hm_device_val_to_str (char *target_buf, int max_buf_size, char *suffix, int value); #endif // HAVE_HWMON @@ -1914,8 +1473,6 @@ void hm_device_val_to_str (char *target_buf, int max_buf_size, char *suffix, int void myabort (); void myquit (); -uint set_kernel_accel (uint hash_mode); -uint set_kernel_loops (uint hash_mode); void set_cpu_affinity (char *cpu_affinity); void usage_mini_print (const char *progname); @@ -1939,6 +1496,11 @@ void sp_tbl_to_css (hcstat_table_t *root_table_buf, hcstat_table_t *markov_table void sp_stretch_markov (hcstat_table_t *in, hcstat_table_t *out); void sp_stretch_root (hcstat_table_t *in, hcstat_table_t *out); +void tuning_db_destroy (tuning_db_t *tuning_db); +tuning_db_t *tuning_db_alloc (FILE *fp); +tuning_db_t *tuning_db_init (const char *tuning_db_file); +tuning_db_entry_t *tuning_db_search (tuning_db_t *tuning_db, hc_device_param_t *device_param, int attack_mode, int hash_type); + int bcrypt_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int cisco4_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int dcc_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); @@ -1969,6 +1531,7 @@ int oracleh_parse_hash (char *input_buf, uint input_len, hash_t *hash int oracles_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int oraclet_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int osc_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); +int arubaos_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int osx1_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int osx512_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int phpass_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); @@ -2014,6 +1577,7 @@ int hmacsha256_parse_hash (char *input_buf, uint input_len, hash_t *hash int hmacsha512_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int hmacmd5_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int krb5pa_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); +int krb5tgs_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int sapb_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int sapg_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int drupal7_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); @@ -2082,6 +1646,16 @@ int cf10_parse_hash (char *input_buf, uint input_len, hash_t *hash int mywallet_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int ms_drsr_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); int androidfde_samsung_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); +int axcrypt_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); +int sha1axcrypt_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); +int keepass_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); +int pstoken_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); +int zip2_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); +int veracrypt_parse_hash_200000 (char *input_buf, uint input_len, hash_t *hash_buf); +int veracrypt_parse_hash_500000 (char *input_buf, uint input_len, hash_t *hash_buf); +int veracrypt_parse_hash_327661 (char *input_buf, uint input_len, hash_t *hash_buf); +int veracrypt_parse_hash_655331 (char *input_buf, uint input_len, hash_t *hash_buf); +int win8phone_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf); void load_kernel (const char *kernel_file, int num_devices, size_t *kernel_lengths, const u8 **kernel_sources); void writeProgramBin (char *dst, u8 *binary, size_t binary_size); @@ -2147,8 +1721,8 @@ int mangle_title (char arr[BLOCK_SIZE], int arr_len); int generate_random_rule (char rule_buf[RP_RULE_BUFSIZ], u32 rp_gen_func_min, u32 rp_gen_func_max); int _old_apply_rule (char *rule, int rule_len, char in[BLOCK_SIZE], int in_len, char out[BLOCK_SIZE]); -int cpu_rule_to_kernel_rule (char rule_buf[BUFSIZ], uint rule_len, kernel_rule_t *rule); -int kernel_rule_to_cpu_rule (char rule_buf[BUFSIZ], kernel_rule_t *rule); +int cpu_rule_to_kernel_rule (char *rule_buf, uint rule_len, kernel_rule_t *rule); +int kernel_rule_to_cpu_rule (char *rule_buf, kernel_rule_t *rule); void *thread_device_watch (void *p); void *thread_keypress (void *p);