static void init(struct fmt_main *self) { char *kpc; global_work_size = MAX_KEYS_PER_CRYPT; opencl_init("$JOHN/md4_kernel.cl", ocl_gpu_id, platform_id); crypt_kernel = clCreateKernel(program[ocl_gpu_id], "md4", &ret_code); HANDLE_CLERROR(ret_code, "Error creating kernel. Double-check kernel name?"); if( ((kpc = getenv("LWS")) == NULL) || (atoi(kpc) == 0)) { create_clobj(MD4_NUM_KEYS); opencl_find_best_workgroup(self); release_clobj(); }else { local_work_size = atoi(kpc); } if( (kpc = getenv("GWS")) == NULL){ max_keys_per_crypt = MD4_NUM_KEYS; create_clobj(MD4_NUM_KEYS); } else { if (atoi(kpc) == 0){ //user chose to die of boredom max_keys_per_crypt = MD4_NUM_KEYS; create_clobj(MD4_NUM_KEYS); find_best_kpc(); } else { max_keys_per_crypt = atoi(kpc); create_clobj(max_keys_per_crypt); } } fprintf(stderr, "Local work size (LWS) %d, Global work size (GWS) %d\n",(int)local_work_size, max_keys_per_crypt); self->params.max_keys_per_crypt = max_keys_per_crypt; }
static void fmt_ssha_init(struct fmt_main *pFmt) { char *kpc; opencl_init("$JOHN/ssha_opencl_kernel.cl", gpu_id); // create kernel to execute crypt_kernel = clCreateKernel(program[gpu_id], "sha1_crypt_kernel", &ret_code); HANDLE_CLERROR(ret_code, "Error creating kernel. Double-check kernel name?"); if( (kpc = getenv("LWS")) == NULL){ create_clobj(SSHA_NUM_KEYS); find_best_workgroup(); release_clobj(); }else { local_work_size = atoi(kpc); } if( (kpc = getenv("KPC")) == NULL){ max_keys_per_crypt = SSHA_NUM_KEYS; create_clobj(SSHA_NUM_KEYS); } else { if (atoi(kpc) == 0){ //user chose to die of boredom max_keys_per_crypt = SSHA_NUM_KEYS; create_clobj(SSHA_NUM_KEYS); find_best_kpc(); } else { max_keys_per_crypt = atoi(kpc); create_clobj(max_keys_per_crypt); } } printf("Local work size (LWS) %d, Keys per crypt (KPC) %d\n",(int)local_work_size,max_keys_per_crypt); pFmt->params.max_keys_per_crypt = max_keys_per_crypt; }
static void fmt_ssha_init(struct fmt_main *pFmt) { char *temp; opencl_init("$JOHN/ssha_kernel.cl", gpu_id, platform_id); // create kernel to execute crypt_kernel = clCreateKernel(program[gpu_id], "sha1_crypt_kernel", &ret_code); HANDLE_CLERROR(ret_code, "Error creating kernel. Double-check kernel name?"); if ((temp = cfg_get_param(SECTION_OPTIONS, SUBSECTION_OPENCL, LWS_CONFIG))) local_work_size = atoi(temp); if ((temp = getenv("LWS"))) local_work_size = atoi(temp); if (!local_work_size) { create_clobj(SSHA_NUM_KEYS); find_best_workgroup(); release_clobj(); } if ((temp = cfg_get_param(SECTION_OPTIONS, SUBSECTION_OPENCL, KPC_CONFIG))) max_keys_per_crypt = atoi(temp); else max_keys_per_crypt = SSHA_NUM_KEYS; if ((temp = getenv("KPC"))) max_keys_per_crypt = atoi(temp); if (max_keys_per_crypt) { create_clobj(max_keys_per_crypt); } else { //user chose to die of boredom max_keys_per_crypt = SSHA_NUM_KEYS; create_clobj(SSHA_NUM_KEYS); find_best_kpc(); } printf("Local work size (LWS) %d, Keys per crypt (KPC) %d\n",(int)local_work_size,max_keys_per_crypt); pFmt->params.max_keys_per_crypt = max_keys_per_crypt; }