2 * Author......: Jens Steube <jens.steube@gmail.com>
66 uint cry_master_buf
[64];
68 uint public_key_buf
[64];
109 uint userdomain_buf
[64];
128 uint keyfile_buf
[16];
158 uint8_t cipher
[1040];
178 uint encryptedVerifier
[4];
179 uint encryptedVerifierHash
[5];
187 uint encryptedVerifier
[4];
188 uint encryptedVerifierHash
[8];
194 uint encryptedVerifier
[4];
195 uint encryptedVerifierHash
[8];
202 uint encryptedVerifier
[4];
203 uint encryptedVerifierHash
[4];
211 uint encryptedVerifier
[4];
212 uint encryptedVerifierHash
[5];
257 uint64_t l_alt_result
[8];
259 uint64_t l_p_bytes
[2];
260 uint64_t l_s_bytes
[2];
287 } bitcoin_wallet_tmp_t
;
430 uint64_t digest_buf
[8];
496 } pbkdf2_sha256_tmp_t
;
506 } pbkdf2_sha512_tmp_t
;
593 hashinfo_t
*hash_info
;
615 unsigned char mac1
[6];
616 unsigned char mac2
[6];
617 unsigned char nonce1
[32];
618 unsigned char nonce2
[32];
620 unsigned char eapol
[256];
624 unsigned char keymic
[16];
631 uint32_t salt_buf
[8];
633 uint32_t hash_buf
[8];
655 struct __stat64 stat
;
679 uint32_t hi4
[4][ 16];
683 uint32_t hi2
[2][ 32];
684 uint64_t hl2
[2][ 16];
687 uint32_t hi1
[1][ 64];
688 uint64_t hl1
[1][ 32];
692 uint alignment_placeholder_1
;
693 uint alignment_placeholder_2
;
694 uint alignment_placeholder_3
;
728 uint32_t version_bin
;
767 #define CPT_BUF 0x20000
807 #define PW_MAX1 (PW_MAX + 1)
808 #define PW_DICTMAX 31
809 #define PW_DICTMAX1 (PW_DICTMAX + 1)
811 struct __hc_device_param
818 uint gpu_vector_width
;
819 uint64_t gpu_maxmem_alloc
;
820 uint gpu_power
; // these both are based on their _user counterpart
821 uint gpu_blocks
; // but are modified by autotuner and used inside crack loops
823 uint gpu_blocks_user
;
829 uint size_markov_css
;
838 uint (*pw_add
) (struct __hc_device_param
*, const uint8_t *, const uint
);
840 void (*pw_transpose
) (const pw_t
*, pw_t
*);
847 pw_cache_t
*pw_caches
;
865 uint64_t speed_cnt
[SPEED_CACHE
];
866 float speed_ms
[SPEED_CACHE
];
867 hc_timer_t speed_rec
[SPEED_CACHE
];
869 hc_timer_t timer_speed
;
871 // device specific attributes starting
880 CUfunction function1
;
881 CUfunction function12
;
882 CUfunction function2
;
883 CUfunction function23
;
884 CUfunction function3
;
885 CUfunction function_mp
;
886 CUfunction function_mp_l
;
887 CUfunction function_mp_r
;
888 CUfunction function_amp
;
889 CUfunction function_tb
;
890 CUfunction function_tm
;
898 CUdeviceptr d_pws_buf
;
899 CUdeviceptr d_pws_amp_buf
;
900 CUdeviceptr d_words_buf_l
;
901 CUdeviceptr d_words_buf_r
;
902 CUdeviceptr c_words_buf_r
;
912 CUdeviceptr d_bitmap_s1_a
;
913 CUdeviceptr d_bitmap_s1_b
;
914 CUdeviceptr d_bitmap_s1_c
;
915 CUdeviceptr d_bitmap_s1_d
;
916 CUdeviceptr d_bitmap_s2_a
;
917 CUdeviceptr d_bitmap_s2_b
;
918 CUdeviceptr d_bitmap_s2_c
;
919 CUdeviceptr d_bitmap_s2_d
;
920 CUdeviceptr d_plain_bufs
;
921 CUdeviceptr d_digests_buf
;
922 CUdeviceptr d_digests_shown
;
923 CUdeviceptr d_salt_bufs
;
924 CUdeviceptr d_esalt_bufs
;
925 CUdeviceptr d_bcrypt_bufs
;
928 CUdeviceptr d_result
;
929 CUdeviceptr d_scryptV_buf
;
930 CUdeviceptr d_root_css_buf
;
931 CUdeviceptr d_markov_css_buf
;
936 char *device_version
;
937 char *driver_version
;
947 cl_kernel kernel_mp_l
;
948 cl_kernel kernel_mp_r
;
949 cl_kernel kernel_amp
;
956 cl_program program_mp
;
957 cl_program program_amp
;
959 cl_command_queue command_queue
;
962 cl_mem d_pws_amp_buf
;
963 cl_mem d_words_buf_l
;
964 cl_mem d_words_buf_r
;
972 cl_mem d_bitmap_s1_a
;
973 cl_mem d_bitmap_s1_b
;
974 cl_mem d_bitmap_s1_c
;
975 cl_mem d_bitmap_s1_d
;
976 cl_mem d_bitmap_s2_a
;
977 cl_mem d_bitmap_s2_b
;
978 cl_mem d_bitmap_s2_c
;
979 cl_mem d_bitmap_s2_d
;
981 cl_mem d_digests_buf
;
982 cl_mem d_digests_shown
;
985 cl_mem d_bcrypt_bufs
;
989 cl_mem d_scryptV_buf
;
990 cl_mem d_root_css_buf
;
991 cl_mem d_markov_css_buf
;
997 void *kernel_params
[PARAMCNT
];
998 void *kernel_params_mp
[PARAMCNT
];
999 void *kernel_params_mp_r
[PARAMCNT
];
1000 void *kernel_params_mp_l
[PARAMCNT
];
1001 void *kernel_params_amp
[PARAMCNT
];
1002 void *kernel_params_tb
[PARAMCNT
];
1003 void *kernel_params_tm
[PARAMCNT
];
1005 uint32_t kernel_params_buf32
[PARAMCNT
];
1007 uint32_t kernel_params_mp_buf32
[PARAMCNT
];
1008 uint64_t kernel_params_mp_buf64
[PARAMCNT
];
1010 uint32_t kernel_params_mp_r_buf32
[PARAMCNT
];
1011 uint64_t kernel_params_mp_r_buf64
[PARAMCNT
];
1013 uint32_t kernel_params_mp_l_buf32
[PARAMCNT
];
1014 uint64_t kernel_params_mp_l_buf64
[PARAMCNT
];
1016 uint32_t kernel_params_amp_buf32
[PARAMCNT
];
1020 typedef struct __hc_device_param hc_device_param_t
;
1024 HM_ADAPTER adapter_index
;
1032 // int busid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1033 // int devid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1043 uint devices_status
;
1045 hc_device_param_t
*devices_param
;
1047 uint gpu_blocks_all
;
1055 uint hashlist_format
;
1062 gpu_rule_t
*gpu_rules_buf
;
1073 cs_t
*markov_css_buf
;
1085 hm_attrs_t hm_device
[DEVICES_MAX
];
1096 uint
*digests_shown
;
1097 uint
*digests_shown_tmp
;
1111 uint logfile_disable
;
1120 cpt_t cpt_buf
[CPT_BUF
];
1139 uint outfile_format
;
1140 uint outfile_autohex
;
1141 uint outfile_check_timer
;
1142 char *eff_restore_file
;
1143 char *new_restore_file
;
1144 char *induction_directory
;
1145 char *outfile_check_directory
;
1147 char *loopback_file
;
1150 uint restore_disable
;
1153 uint status_automat
;
1167 float gpu_blocks_div
;
1170 uint powertune_enable
;
1173 char *truecrypt_keyfiles
;
1189 uint gpu_temp_disable
;
1190 uint gpu_temp_abort
;
1191 uint gpu_temp_retain
;
1213 time_t runtime_start
;
1214 time_t runtime_stop
;
1221 uint64_t words_base
;
1223 uint64_t *words_progress_done
; // progress number of words done per salt
1224 uint64_t *words_progress_rejected
; // progress number of words rejected per salt
1225 uint64_t *words_progress_restored
; // progress number of words restored per salt
1227 hc_timer_t timer_running
; // timer on current dict
1228 hc_timer_t timer_paused
; // timer on current dict
1230 float ms_paused
; // timer on current dict
1233 * hash_info and username
1236 hashinfo_t
**hash_info
;
1239 int (*sort_by_digest
) (const void *, const void *);
1241 int (*parse_func
) (char *, uint
, hash_t
*);
1245 extern hc_global_data_t data
;