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];
134 uint keyfile_buf
[16];
184 uint encryptedVerifier
[4];
185 uint encryptedVerifierHash
[5];
193 uint encryptedVerifier
[4];
194 uint encryptedVerifierHash
[8];
200 uint encryptedVerifier
[4];
201 uint encryptedVerifierHash
[8];
208 uint encryptedVerifier
[4];
209 uint encryptedVerifierHash
[4];
217 uint encryptedVerifier
[4];
218 uint encryptedVerifierHash
[5];
293 } bitcoin_wallet_tmp_t
;
504 } pbkdf2_sha256_tmp_t
;
514 } pbkdf2_sha512_tmp_t
;
585 u32 salt
[5]; // unused, but makes better valid check
586 u32 iv
[2]; // unused, but makes better valid check
610 hashinfo_t
*hash_info
;
672 struct __stat64 stat
;
709 uint alignment_placeholder_1
;
710 uint alignment_placeholder_2
;
711 uint alignment_placeholder_3
;
784 #define CPT_BUF 0x20000
821 #define RULES_MAX 256
824 #define PW_MAX1 (PW_MAX + 1)
825 #define PW_DICTMAX 31
826 #define PW_DICTMAX1 (PW_DICTMAX + 1)
829 struct __hc_device_param
832 cl_device_type device_type
;
837 uint platform_devices_id
; // for mapping with hms devices
843 uint kernel_exec_timeout
;
845 uint device_processors
;
846 uint device_processor_cores
;
847 u64 device_maxmem_alloc
;
848 u64 device_global_mem
;
849 u32 device_maxclock_frequency
;
850 u64 device_timer_resolution
;
857 uint kernel_power
; // these both are based on their _user counterpart
858 uint kernel_blocks
; // but are modified by autotuner and used inside crack loops
859 uint kernel_power_user
;
860 uint kernel_blocks_user
;
866 uint size_markov_css
;
873 uint (*pw_add
) (struct __hc_device_param
*, const u8
*, const uint
);
875 void (*pw_transpose
) (const pw_t
*, pw_t
*);
882 pw_cache_t
*pw_caches
;
900 u64 speed_cnt
[SPEED_CACHE
];
901 float speed_ms
[SPEED_CACHE
];
903 hc_timer_t speed_rec
[SPEED_CACHE
];
905 hc_timer_t timer_speed
;
907 // device specific attributes starting
910 char *device_name_chksum
;
911 char *device_version
;
912 char *driver_version
;
924 cl_kernel kernel_mp_l
;
925 cl_kernel kernel_mp_r
;
926 cl_kernel kernel_amp
;
929 cl_kernel kernel_weak
;
934 cl_program program_mp
;
935 cl_program program_amp
;
936 cl_program program_weak
;
938 cl_command_queue command_queue
;
941 cl_mem d_pws_amp_buf
;
942 cl_mem d_words_buf_l
;
943 cl_mem d_words_buf_r
;
951 cl_mem d_bitmap_s1_a
;
952 cl_mem d_bitmap_s1_b
;
953 cl_mem d_bitmap_s1_c
;
954 cl_mem d_bitmap_s1_d
;
955 cl_mem d_bitmap_s2_a
;
956 cl_mem d_bitmap_s2_b
;
957 cl_mem d_bitmap_s2_c
;
958 cl_mem d_bitmap_s2_d
;
960 cl_mem d_digests_buf
;
961 cl_mem d_digests_shown
;
964 cl_mem d_bcrypt_bufs
;
968 cl_mem d_scryptV_buf
;
969 cl_mem d_root_css_buf
;
970 cl_mem d_markov_css_buf
;
972 void *kernel_params
[PARAMCNT
];
973 void *kernel_params_mp
[PARAMCNT
];
974 void *kernel_params_mp_r
[PARAMCNT
];
975 void *kernel_params_mp_l
[PARAMCNT
];
976 void *kernel_params_amp
[PARAMCNT
];
977 void *kernel_params_tb
[PARAMCNT
];
978 void *kernel_params_tm
[PARAMCNT
];
980 u32 kernel_params_buf32
[PARAMCNT
];
982 u32 kernel_params_mp_buf32
[PARAMCNT
];
983 u64 kernel_params_mp_buf64
[PARAMCNT
];
985 u32 kernel_params_mp_r_buf32
[PARAMCNT
];
986 u64 kernel_params_mp_r_buf64
[PARAMCNT
];
988 u32 kernel_params_mp_l_buf32
[PARAMCNT
];
989 u64 kernel_params_mp_l_buf64
[PARAMCNT
];
991 u32 kernel_params_amp_buf32
[PARAMCNT
];
994 typedef struct __hc_device_param hc_device_param_t
;
1005 #if defined(HAVE_NVML) || defined(HAVE_NVAPI)
1014 // int busid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1015 // int devid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1018 #endif // HAVE_HWMON
1026 uint devices_status
;
1028 uint devices_active
;
1030 hc_device_param_t
*devices_param
;
1032 uint kernel_blocks_all
;
1040 uint hashlist_format
;
1046 uint kernel_rules_cnt
;
1048 kernel_rule_t
*kernel_rules_buf
;
1059 cs_t
*markov_css_buf
;
1067 * opencl library stuff
1079 hm_attrs_t hm_device
[DEVICES_MAX
];
1091 uint
*digests_shown
;
1092 uint
*digests_shown_tmp
;
1106 uint logfile_disable
;
1115 cpt_t cpt_buf
[CPT_BUF
];
1138 uint outfile_format
;
1139 uint outfile_autohex
;
1140 uint outfile_check_timer
;
1141 char *eff_restore_file
;
1142 char *new_restore_file
;
1143 char *induction_directory
;
1144 char *outfile_check_directory
;
1146 char *loopback_file
;
1149 uint restore_disable
;
1152 uint status_automat
;
1166 float kernel_blocks_div
;
1167 uint powertune_enable
;
1170 char *truecrypt_keyfiles
;
1187 uint gpu_temp_disable
;
1188 uint gpu_temp_abort
;
1189 uint gpu_temp_retain
;
1208 u64 checkpoint_cur_words
; // used for the "stop at next checkpoint" feature
1214 time_t runtime_start
;
1215 time_t runtime_stop
;
1224 u64
*words_progress_done
; // progress number of words done per salt
1225 u64
*words_progress_rejected
; // progress number of words rejected per salt
1226 u64
*words_progress_restored
; // progress number of words restored per salt
1228 hc_timer_t timer_running
; // timer on current dict
1229 hc_timer_t timer_paused
; // timer on current dict
1231 float ms_paused
; // timer on current dict
1234 * hash_info and username
1237 hashinfo_t
**hash_info
;
1240 int (*sort_by_digest
) (const void *, const void *);
1242 int (*parse_func
) (char *, uint
, hash_t
*);
1246 extern hc_global_data_t data
;