2 * Author......: Jens Steube <jens.steube@gmail.com>
76 uint cry_master_buf
[64];
78 uint public_key_buf
[64];
119 uint userdomain_buf
[64];
136 uint account_info
[512];
148 /* key-file handling */
152 u32 final_random_seed
[8];
153 u32 transf_random_seed
[8];
155 u32 contents_hash
[8];
157 /* specific to version 1 */
161 /* specific to version 2 */
162 u32 expected_bytes
[8];
170 uint keyfile_buf
[16];
220 uint encryptedVerifier
[4];
221 uint encryptedVerifierHash
[5];
229 uint encryptedVerifier
[4];
230 uint encryptedVerifierHash
[8];
236 uint encryptedVerifier
[4];
237 uint encryptedVerifierHash
[8];
244 uint encryptedVerifier
[4];
245 uint encryptedVerifierHash
[4];
253 uint encryptedVerifier
[4];
254 uint encryptedVerifierHash
[5];
329 } bitcoin_wallet_tmp_t
;
540 } pbkdf2_sha256_tmp_t
;
550 } pbkdf2_sha512_tmp_t
;
636 u32 salt
[5]; // unused, but makes better valid check
637 u32 iv
[2]; // unused, but makes better valid check
661 hashinfo_t
*hash_info
;
723 struct __stat64 stat
;
748 u32 alignment_placeholder_1
;
749 u32 alignment_placeholder_2
;
750 u32 alignment_placeholder_3
;
815 #define CPT_BUF 0x20000
864 int workload_profile
;
873 tuning_db_alias_t
*alias_buf
;
876 tuning_db_entry_t
*entry_buf
;
881 #define RULES_MAX 256
884 #define PW_MAX1 (PW_MAX + 1)
885 #define PW_DICTMAX 31
886 #define PW_DICTMAX1 (PW_DICTMAX + 1)
889 struct __hc_device_param
892 cl_device_type device_type
;
895 uint platform_devices_id
; // for mapping with hms devices
901 uint kernel_exec_timeout
;
903 uint device_processors
;
904 uint device_processor_cores
;
905 u64 device_maxmem_alloc
;
906 u64 device_global_mem
;
907 u32 device_maxclock_frequency
;
914 uint kernel_loops_min
;
915 uint kernel_loops_max
;
916 uint kernel_accel_min
;
917 uint kernel_accel_max
;
919 uint kernel_power_user
;
929 uint size_markov_css
;
956 double exec_ms
[EXEC_CACHE
];
959 u64 speed_cnt
[SPEED_CACHE
];
960 float speed_ms
[SPEED_CACHE
];
962 hc_timer_t speed_rec
[SPEED_CACHE
];
964 hc_timer_t timer_speed
;
966 // device specific attributes starting
969 char *device_name_chksum
;
970 char *device_version
;
971 char *driver_version
;
983 cl_kernel kernel_mp_l
;
984 cl_kernel kernel_mp_r
;
985 cl_kernel kernel_amp
;
987 cl_kernel kernel_weak
;
992 cl_program program_mp
;
993 cl_program program_amp
;
994 cl_program program_weak
;
996 cl_command_queue command_queue
;
999 cl_mem d_pws_amp_buf
;
1000 cl_mem d_words_buf_l
;
1001 cl_mem d_words_buf_r
;
1009 cl_mem d_bitmap_s1_a
;
1010 cl_mem d_bitmap_s1_b
;
1011 cl_mem d_bitmap_s1_c
;
1012 cl_mem d_bitmap_s1_d
;
1013 cl_mem d_bitmap_s2_a
;
1014 cl_mem d_bitmap_s2_b
;
1015 cl_mem d_bitmap_s2_c
;
1016 cl_mem d_bitmap_s2_d
;
1017 cl_mem d_plain_bufs
;
1018 cl_mem d_digests_buf
;
1019 cl_mem d_digests_shown
;
1021 cl_mem d_esalt_bufs
;
1022 cl_mem d_bcrypt_bufs
;
1026 cl_mem d_scryptV_buf
;
1027 cl_mem d_root_css_buf
;
1028 cl_mem d_markov_css_buf
;
1030 void *kernel_params
[PARAMCNT
];
1031 void *kernel_params_mp
[PARAMCNT
];
1032 void *kernel_params_mp_r
[PARAMCNT
];
1033 void *kernel_params_mp_l
[PARAMCNT
];
1034 void *kernel_params_amp
[PARAMCNT
];
1035 void *kernel_params_tm
[PARAMCNT
];
1037 u32 kernel_params_buf32
[PARAMCNT
];
1039 u32 kernel_params_mp_buf32
[PARAMCNT
];
1040 u64 kernel_params_mp_buf64
[PARAMCNT
];
1042 u32 kernel_params_mp_r_buf32
[PARAMCNT
];
1043 u64 kernel_params_mp_r_buf64
[PARAMCNT
];
1045 u32 kernel_params_mp_l_buf32
[PARAMCNT
];
1046 u64 kernel_params_mp_l_buf64
[PARAMCNT
];
1048 u32 kernel_params_amp_buf32
[PARAMCNT
];
1051 typedef struct __hc_device_param hc_device_param_t
;
1062 #if defined(HAVE_NVML) || defined(HAVE_NVAPI)
1071 // int busid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1072 // int devid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1075 #endif // HAVE_HWMON
1083 uint devices_status
;
1085 uint devices_active
;
1087 hc_device_param_t
*devices_param
;
1093 uint kernel_power_all
;
1094 float kernel_power_div
;
1102 uint hashlist_format
;
1108 uint kernel_rules_cnt
;
1110 kernel_rule_t
*kernel_rules_buf
;
1121 cs_t
*markov_css_buf
;
1129 * opencl library stuff
1141 hm_attrs_t hm_device
[DEVICES_MAX
];
1153 uint
*digests_shown
;
1154 uint
*digests_shown_tmp
;
1168 uint logfile_disable
;
1177 cpt_t cpt_buf
[CPT_BUF
];
1200 uint outfile_format
;
1201 uint outfile_autohex
;
1202 uint outfile_check_timer
;
1203 char *eff_restore_file
;
1204 char *new_restore_file
;
1205 char *induction_directory
;
1206 char *outfile_check_directory
;
1208 char *loopback_file
;
1211 uint restore_disable
;
1214 uint status_automat
;
1218 uint benchmark_repeats
;
1229 uint powertune_enable
;
1232 char *truecrypt_keyfiles
;
1233 uint workload_profile
;
1250 uint gpu_temp_disable
;
1251 uint gpu_temp_abort
;
1252 uint gpu_temp_retain
;
1271 u64 checkpoint_cur_words
; // used for the "stop at next checkpoint" feature
1277 time_t runtime_start
;
1278 time_t runtime_stop
;
1287 u64
*words_progress_done
; // progress number of words done per salt
1288 u64
*words_progress_rejected
; // progress number of words rejected per salt
1289 u64
*words_progress_restored
; // progress number of words restored per salt
1291 hc_timer_t timer_running
; // timer on current dict
1292 hc_timer_t timer_paused
; // timer on current dict
1294 float ms_paused
; // timer on current dict
1297 * hash_info and username
1300 hashinfo_t
**hash_info
;
1303 int (*sort_by_digest
) (const void *, const void *);
1305 int (*parse_func
) (char *, uint
, hash_t
*);
1309 extern hc_global_data_t data
;