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];
164 uint8_t cipher
[1040];
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];
263 uint64_t l_alt_result
[8];
265 uint64_t l_p_bytes
[2];
266 uint64_t l_s_bytes
[2];
293 } bitcoin_wallet_tmp_t
;
438 uint64_t digest_buf
[8];
504 } pbkdf2_sha256_tmp_t
;
514 } pbkdf2_sha512_tmp_t
;
601 hashinfo_t
*hash_info
;
623 unsigned char mac1
[6];
624 unsigned char mac2
[6];
625 unsigned char nonce1
[32];
626 unsigned char nonce2
[32];
628 unsigned char eapol
[256];
632 unsigned char keymic
[16];
639 uint32_t salt_buf
[8];
641 uint32_t hash_buf
[8];
663 struct __stat64 stat
;
687 uint32_t hi4
[4][ 16];
691 uint32_t hi2
[2][ 32];
692 uint64_t hl2
[2][ 16];
695 uint32_t hi1
[1][ 64];
696 uint64_t hl1
[1][ 32];
700 uint alignment_placeholder_1
;
701 uint alignment_placeholder_2
;
702 uint alignment_placeholder_3
;
736 uint32_t version_bin
;
775 #define CPT_BUF 0x20000
812 #define RULES_MAX 256
815 #define PW_MAX1 (PW_MAX + 1)
816 #define PW_DICTMAX 31
817 #define PW_DICTMAX1 (PW_DICTMAX + 1)
819 struct __hc_device_param
825 uint kernel_exec_timeout
;
827 uint device_processors
;
828 uint device_processor_cores
;
829 uint64_t device_maxmem_alloc
;
833 uint kernel_power
; // these both are based on their _user counterpart
834 uint kernel_blocks
; // but are modified by autotuner and used inside crack loops
835 uint kernel_power_user
;
836 uint kernel_blocks_user
;
842 uint size_markov_css
;
849 uint (*pw_add
) (struct __hc_device_param
*, const uint8_t *, const uint
);
851 void (*pw_transpose
) (const pw_t
*, pw_t
*);
858 pw_cache_t
*pw_caches
;
876 uint64_t speed_cnt
[SPEED_CACHE
];
877 float speed_ms
[SPEED_CACHE
];
878 hc_timer_t speed_rec
[SPEED_CACHE
];
880 hc_timer_t timer_speed
;
882 // device specific attributes starting
885 char *device_name_chksum
;
886 char *device_version
;
887 char *driver_version
;
892 cl_device_type device_type
;
900 cl_kernel kernel_mp_l
;
901 cl_kernel kernel_mp_r
;
902 cl_kernel kernel_amp
;
905 cl_kernel kernel_weak
;
910 cl_program program_mp
;
911 cl_program program_amp
;
912 cl_program program_weak
;
914 cl_command_queue command_queue
;
917 cl_mem d_pws_amp_buf
;
918 cl_mem d_words_buf_l
;
919 cl_mem d_words_buf_r
;
927 cl_mem d_bitmap_s1_a
;
928 cl_mem d_bitmap_s1_b
;
929 cl_mem d_bitmap_s1_c
;
930 cl_mem d_bitmap_s1_d
;
931 cl_mem d_bitmap_s2_a
;
932 cl_mem d_bitmap_s2_b
;
933 cl_mem d_bitmap_s2_c
;
934 cl_mem d_bitmap_s2_d
;
936 cl_mem d_digests_buf
;
937 cl_mem d_digests_shown
;
940 cl_mem d_bcrypt_bufs
;
944 cl_mem d_scryptV_buf
;
945 cl_mem d_root_css_buf
;
946 cl_mem d_markov_css_buf
;
950 void *kernel_params
[PARAMCNT
];
951 void *kernel_params_mp
[PARAMCNT
];
952 void *kernel_params_mp_r
[PARAMCNT
];
953 void *kernel_params_mp_l
[PARAMCNT
];
954 void *kernel_params_amp
[PARAMCNT
];
955 void *kernel_params_tb
[PARAMCNT
];
956 void *kernel_params_tm
[PARAMCNT
];
958 uint32_t kernel_params_buf32
[PARAMCNT
];
960 uint32_t kernel_params_mp_buf32
[PARAMCNT
];
961 uint64_t kernel_params_mp_buf64
[PARAMCNT
];
963 uint32_t kernel_params_mp_r_buf32
[PARAMCNT
];
964 uint64_t kernel_params_mp_r_buf64
[PARAMCNT
];
966 uint32_t kernel_params_mp_l_buf32
[PARAMCNT
];
967 uint64_t kernel_params_mp_l_buf64
[PARAMCNT
];
969 uint32_t kernel_params_amp_buf32
[PARAMCNT
];
972 typedef struct __hc_device_param hc_device_param_t
;
987 // int busid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
988 // int devid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
1000 hc_device_param_t
*devices_param
;
1002 uint kernel_blocks_all
;
1010 uint hashlist_format
;
1016 uint kernel_rules_cnt
;
1017 kernel_rule_t
*kernel_rules_buf
;
1028 cs_t
*markov_css_buf
;
1041 hm_attrs_t hm_device
[DEVICES_MAX
];
1052 uint
*digests_shown
;
1053 uint
*digests_shown_tmp
;
1067 uint logfile_disable
;
1076 cpt_t cpt_buf
[CPT_BUF
];
1099 uint outfile_format
;
1100 uint outfile_autohex
;
1101 uint outfile_check_timer
;
1102 char *eff_restore_file
;
1103 char *new_restore_file
;
1104 char *induction_directory
;
1105 char *outfile_check_directory
;
1107 char *loopback_file
;
1110 uint restore_disable
;
1113 uint status_automat
;
1127 float kernel_blocks_div
;
1130 uint powertune_enable
;
1133 char *truecrypt_keyfiles
;
1149 uint gpu_temp_disable
;
1150 uint gpu_temp_abort
;
1151 uint gpu_temp_retain
;
1169 uint64_t checkpoint_cur_words
; // used for the "stop at next checkpoint" feature
1175 time_t runtime_start
;
1176 time_t runtime_stop
;
1183 uint64_t words_base
;
1185 uint64_t *words_progress_done
; // progress number of words done per salt
1186 uint64_t *words_progress_rejected
; // progress number of words rejected per salt
1187 uint64_t *words_progress_restored
; // progress number of words restored per salt
1189 hc_timer_t timer_running
; // timer on current dict
1190 hc_timer_t timer_paused
; // timer on current dict
1192 float ms_paused
; // timer on current dict
1195 * hash_info and username
1198 hashinfo_t
**hash_info
;
1201 int (*sort_by_digest
) (const void *, const void *);
1203 int (*parse_func
) (char *, uint
, hash_t
*);
1207 extern hc_global_data_t data
;