2 * Author......: Jens Steube <jens.steube@gmail.com>
82 uint cry_master_buf
[64];
84 uint public_key_buf
[64];
125 uint userdomain_buf
[64];
142 uint account_info
[512];
154 /* key-file handling */
158 u32 final_random_seed
[8];
159 u32 transf_random_seed
[8];
161 u32 contents_hash
[8];
163 /* specific to version 1 */
167 /* specific to version 2 */
168 u32 expected_bytes
[8];
176 uint keyfile_buf
[16];
227 uint encryptedVerifier
[4];
228 uint encryptedVerifierHash
[5];
236 uint encryptedVerifier
[4];
237 uint encryptedVerifierHash
[8];
243 uint encryptedVerifier
[4];
244 uint encryptedVerifierHash
[8];
251 uint encryptedVerifier
[4];
252 uint encryptedVerifierHash
[4];
260 uint encryptedVerifier
[4];
261 uint encryptedVerifierHash
[5];
368 } bitcoin_wallet_tmp_t
;
579 } pbkdf2_sha256_tmp_t
;
589 } pbkdf2_sha512_tmp_t
;
674 u32 salt
[5]; // unused, but makes better valid check
675 u32 iv
[2]; // unused, but makes better valid check
699 hashinfo_t
*hash_info
;
761 struct __stat64 stat
;
786 u32 alignment_placeholder_1
;
787 u32 alignment_placeholder_2
;
788 u32 alignment_placeholder_3
;
853 #define CPT_BUF 0x20000
905 int workload_profile
;
914 tuning_db_alias_t
*alias_buf
;
917 tuning_db_entry_t
*entry_buf
;
922 #define RULES_MAX 256
925 #define PW_MAX1 (PW_MAX + 1)
926 #define PW_DICTMAX 31
927 #define PW_DICTMAX1 (PW_DICTMAX + 1)
930 struct __hc_device_param
933 cl_device_type device_type
;
936 uint platform_devices_id
; // for mapping with hms devices
942 uint kernel_exec_timeout
;
944 uint device_processors
;
945 uint device_processor_cores
;
946 u64 device_maxmem_alloc
;
947 u64 device_global_mem
;
948 u32 device_maxclock_frequency
;
949 size_t device_maxworkgroup_size
;
956 uint kernel_loops_min
;
957 uint kernel_loops_max
;
958 uint kernel_accel_min
;
959 uint kernel_accel_max
;
970 size_t size_root_css
;
971 size_t size_markov_css
;
996 double exec_ms
[EXEC_CACHE
];
998 // workaround cpu spinning
1000 double exec_us_prev1
[EXPECTED_ITERATIONS
];
1001 double exec_us_prev2
[EXPECTED_ITERATIONS
];
1002 double exec_us_prev3
[EXPECTED_ITERATIONS
];
1004 // this is "current" speed
1007 u64 speed_cnt
[SPEED_CACHE
];
1008 double speed_ms
[SPEED_CACHE
];
1010 hc_timer_t timer_speed
;
1012 // device specific attributes starting
1015 char *device_vendor
;
1016 char *device_name_chksum
;
1017 char *device_version
;
1018 char *driver_version
;
1022 double nvidia_spin_damp
;
1024 cl_uint device_vendor_id
;
1025 cl_uint platform_vendor_id
;
1032 cl_kernel kernel_mp
;
1033 cl_kernel kernel_mp_l
;
1034 cl_kernel kernel_mp_r
;
1035 cl_kernel kernel_amp
;
1036 cl_kernel kernel_tm
;
1037 cl_kernel kernel_weak
;
1038 cl_kernel kernel_memset
;
1043 cl_program program_mp
;
1044 cl_program program_amp
;
1046 cl_command_queue command_queue
;
1049 cl_mem d_pws_amp_buf
;
1050 cl_mem d_words_buf_l
;
1051 cl_mem d_words_buf_r
;
1059 cl_mem d_bitmap_s1_a
;
1060 cl_mem d_bitmap_s1_b
;
1061 cl_mem d_bitmap_s1_c
;
1062 cl_mem d_bitmap_s1_d
;
1063 cl_mem d_bitmap_s2_a
;
1064 cl_mem d_bitmap_s2_b
;
1065 cl_mem d_bitmap_s2_c
;
1066 cl_mem d_bitmap_s2_d
;
1067 cl_mem d_plain_bufs
;
1068 cl_mem d_digests_buf
;
1069 cl_mem d_digests_shown
;
1071 cl_mem d_esalt_bufs
;
1072 cl_mem d_bcrypt_bufs
;
1076 cl_mem d_scryptV_buf
;
1077 cl_mem d_root_css_buf
;
1078 cl_mem d_markov_css_buf
;
1080 void *kernel_params
[PARAMCNT
];
1081 void *kernel_params_mp
[PARAMCNT
];
1082 void *kernel_params_mp_r
[PARAMCNT
];
1083 void *kernel_params_mp_l
[PARAMCNT
];
1084 void *kernel_params_amp
[PARAMCNT
];
1085 void *kernel_params_tm
[PARAMCNT
];
1086 void *kernel_params_memset
[PARAMCNT
];
1088 u32 kernel_params_buf32
[PARAMCNT
];
1090 u32 kernel_params_mp_buf32
[PARAMCNT
];
1091 u64 kernel_params_mp_buf64
[PARAMCNT
];
1093 u32 kernel_params_mp_r_buf32
[PARAMCNT
];
1094 u64 kernel_params_mp_r_buf64
[PARAMCNT
];
1096 u32 kernel_params_mp_l_buf32
[PARAMCNT
];
1097 u64 kernel_params_mp_l_buf64
[PARAMCNT
];
1099 u32 kernel_params_amp_buf32
[PARAMCNT
];
1100 u32 kernel_params_memset_buf32
[PARAMCNT
];
1103 typedef struct __hc_device_param hc_device_param_t
;
1109 HM_ADAPTER_NVML nvml
;
1110 HM_ADAPTER_NVAPI nvapi
;
1111 HM_ADAPTER_XNVCTRL xnvctrl
;
1115 int fan_get_supported
;
1116 int fan_set_supported
;
1119 #endif // HAVE_HWMON
1127 uint devices_status
;
1129 uint devices_active
;
1131 hc_device_param_t
*devices_param
;
1137 uint hardware_power_all
;
1138 uint kernel_power_all
;
1139 u64 kernel_power_final
; // we save that so that all divisions are done from the same base
1147 uint hashlist_format
;
1153 uint kernel_rules_cnt
;
1155 kernel_rule_t
*kernel_rules_buf
;
1166 cs_t
*markov_css_buf
;
1174 * opencl library stuff
1188 hm_attrs_t hm_device
[DEVICES_MAX
];
1200 uint
*digests_shown
;
1201 uint
*digests_shown_tmp
;
1215 uint logfile_disable
;
1224 cpt_t cpt_buf
[CPT_BUF
];
1247 uint outfile_format
;
1248 uint outfile_autohex
;
1249 uint outfile_check_timer
;
1250 char *eff_restore_file
;
1251 char *new_restore_file
;
1252 char *induction_directory
;
1253 char *outfile_check_directory
;
1255 char *loopback_file
;
1258 uint restore_disable
;
1261 uint machine_readable
;
1275 uint powertune_enable
;
1278 char *truecrypt_keyfiles
;
1279 char *veracrypt_keyfiles
;
1281 uint workload_profile
;
1298 uint gpu_temp_disable
;
1299 uint gpu_temp_abort
;
1300 uint gpu_temp_retain
;
1319 u64 checkpoint_cur_words
; // used for the "stop at next checkpoint" feature
1325 time_t runtime_start
;
1326 time_t runtime_stop
;
1335 u64
*words_progress_done
; // progress number of words done per salt
1336 u64
*words_progress_rejected
; // progress number of words rejected per salt
1337 u64
*words_progress_restored
; // progress number of words restored per salt
1339 hc_timer_t timer_running
; // timer on current dict
1340 hc_timer_t timer_paused
; // timer on current dict
1342 double ms_paused
; // timer on current dict
1345 * hash_info and username
1348 hashinfo_t
**hash_info
;
1351 int (*sort_by_digest
) (const void *, const void *);
1353 int (*parse_func
) (char *, uint
, hash_t
*);
1357 extern hc_global_data_t data
;