2 * Author......: Jens Steube <jens.steube@gmail.com>
72 uint cry_master_buf
[64];
74 uint public_key_buf
[64];
115 uint userdomain_buf
[64];
132 uint account_info
[512];
143 uint keyfile_buf
[16];
193 uint encryptedVerifier
[4];
194 uint encryptedVerifierHash
[5];
202 uint encryptedVerifier
[4];
203 uint encryptedVerifierHash
[8];
209 uint encryptedVerifier
[4];
210 uint encryptedVerifierHash
[8];
217 uint encryptedVerifier
[4];
218 uint encryptedVerifierHash
[4];
226 uint encryptedVerifier
[4];
227 uint encryptedVerifierHash
[5];
302 } bitcoin_wallet_tmp_t
;
513 } pbkdf2_sha256_tmp_t
;
523 } pbkdf2_sha512_tmp_t
;
594 u32 salt
[5]; // unused, but makes better valid check
595 u32 iv
[2]; // unused, but makes better valid check
619 hashinfo_t
*hash_info
;
681 struct __stat64 stat
;
706 u32 alignment_placeholder_1
;
707 u32 alignment_placeholder_2
;
708 u32 alignment_placeholder_3
;
773 #define CPT_BUF 0x20000
822 int workload_profile
;
831 tuning_db_alias_t
*alias_buf
;
834 tuning_db_entry_t
*entry_buf
;
839 #define RULES_MAX 256
842 #define PW_MAX1 (PW_MAX + 1)
843 #define PW_DICTMAX 31
844 #define PW_DICTMAX1 (PW_DICTMAX + 1)
847 struct __hc_device_param
850 cl_device_type device_type
;
853 uint platform_devices_id
; // for mapping with hms devices
859 uint kernel_exec_timeout
;
861 uint device_processors
;
862 uint device_processor_cores
;
863 u64 device_maxmem_alloc
;
864 u64 device_global_mem
;
865 u32 device_maxclock_frequency
;
872 uint kernel_loops_min
;
873 uint kernel_loops_max
;
874 uint kernel_accel_min
;
875 uint kernel_accel_max
;
877 uint kernel_power_user
;
887 uint size_markov_css
;
914 double exec_ms
[EXEC_CACHE
];
917 u64 speed_cnt
[SPEED_CACHE
];
918 float speed_ms
[SPEED_CACHE
];
920 hc_timer_t speed_rec
[SPEED_CACHE
];
922 hc_timer_t timer_speed
;
924 // device specific attributes starting
927 char *device_name_chksum
;
928 char *device_version
;
929 char *driver_version
;
941 cl_kernel kernel_mp_l
;
942 cl_kernel kernel_mp_r
;
943 cl_kernel kernel_amp
;
946 cl_kernel kernel_weak
;
951 cl_program program_mp
;
952 cl_program program_amp
;
953 cl_program program_weak
;
955 cl_command_queue command_queue
;
958 cl_mem d_pws_amp_buf
;
959 cl_mem d_words_buf_l
;
960 cl_mem d_words_buf_r
;
968 cl_mem d_bitmap_s1_a
;
969 cl_mem d_bitmap_s1_b
;
970 cl_mem d_bitmap_s1_c
;
971 cl_mem d_bitmap_s1_d
;
972 cl_mem d_bitmap_s2_a
;
973 cl_mem d_bitmap_s2_b
;
974 cl_mem d_bitmap_s2_c
;
975 cl_mem d_bitmap_s2_d
;
977 cl_mem d_digests_buf
;
978 cl_mem d_digests_shown
;
981 cl_mem d_bcrypt_bufs
;
985 cl_mem d_scryptV_buf
;
986 cl_mem d_root_css_buf
;
987 cl_mem d_markov_css_buf
;
989 void *kernel_params
[PARAMCNT
];
990 void *kernel_params_mp
[PARAMCNT
];
991 void *kernel_params_mp_r
[PARAMCNT
];
992 void *kernel_params_mp_l
[PARAMCNT
];
993 void *kernel_params_amp
[PARAMCNT
];
994 void *kernel_params_tb
[PARAMCNT
];
995 void *kernel_params_tm
[PARAMCNT
];
997 u32 kernel_params_buf32
[PARAMCNT
];
999 u32 kernel_params_mp_buf32
[PARAMCNT
];
1000 u64 kernel_params_mp_buf64
[PARAMCNT
];
1002 u32 kernel_params_mp_r_buf32
[PARAMCNT
];
1003 u64 kernel_params_mp_r_buf64
[PARAMCNT
];
1005 u32 kernel_params_mp_l_buf32
[PARAMCNT
];
1006 u64 kernel_params_mp_l_buf64
[PARAMCNT
];
1008 u32 kernel_params_amp_buf32
[PARAMCNT
];
1011 typedef struct __hc_device_param hc_device_param_t
;
1022 #if defined(HAVE_NVML) || defined(HAVE_NVAPI)
1031 // int busid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1032 // int devid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1035 #endif // HAVE_HWMON
1043 uint devices_status
;
1045 uint devices_active
;
1047 hc_device_param_t
*devices_param
;
1053 uint kernel_power_all
;
1054 float kernel_power_div
;
1062 uint hashlist_format
;
1068 uint kernel_rules_cnt
;
1070 kernel_rule_t
*kernel_rules_buf
;
1081 cs_t
*markov_css_buf
;
1089 * opencl library stuff
1101 hm_attrs_t hm_device
[DEVICES_MAX
];
1113 uint
*digests_shown
;
1114 uint
*digests_shown_tmp
;
1128 uint logfile_disable
;
1137 cpt_t cpt_buf
[CPT_BUF
];
1160 uint outfile_format
;
1161 uint outfile_autohex
;
1162 uint outfile_check_timer
;
1163 char *eff_restore_file
;
1164 char *new_restore_file
;
1165 char *induction_directory
;
1166 char *outfile_check_directory
;
1168 char *loopback_file
;
1171 uint restore_disable
;
1174 uint status_automat
;
1178 uint benchmark_repeats
;
1189 uint powertune_enable
;
1192 char *truecrypt_keyfiles
;
1193 uint workload_profile
;
1210 uint gpu_temp_disable
;
1211 uint gpu_temp_abort
;
1212 uint gpu_temp_retain
;
1231 u64 checkpoint_cur_words
; // used for the "stop at next checkpoint" feature
1237 time_t runtime_start
;
1238 time_t runtime_stop
;
1247 u64
*words_progress_done
; // progress number of words done per salt
1248 u64
*words_progress_rejected
; // progress number of words rejected per salt
1249 u64
*words_progress_restored
; // progress number of words restored per salt
1251 hc_timer_t timer_running
; // timer on current dict
1252 hc_timer_t timer_paused
; // timer on current dict
1254 float ms_paused
; // timer on current dict
1257 * hash_info and username
1260 hashinfo_t
**hash_info
;
1263 int (*sort_by_digest
) (const void *, const void *);
1265 int (*parse_func
) (char *, uint
, hash_t
*);
1269 extern hc_global_data_t data
;