static void init(struct fmt_main *self) { cl_ulong maxsize; size_t selected_gws; opencl_init_opt("$JOHN/kernels/pwsafe_kernel.cl", ocl_gpu_id, NULL); init_kernel = clCreateKernel(program[ocl_gpu_id], KERNEL_INIT_NAME, &ret_code); HANDLE_CLERROR(ret_code, "Error while creating init kernel"); crypt_kernel = clCreateKernel(program[ocl_gpu_id], KERNEL_RUN_NAME, &ret_code); HANDLE_CLERROR(ret_code, "Error while creating crypt kernel"); finish_kernel = clCreateKernel(program[ocl_gpu_id], KERNEL_FINISH_NAME, &ret_code); HANDLE_CLERROR(ret_code, "Error while creating finish kernel"); local_work_size = cpu(device_info[ocl_gpu_id]) ? 1 : 64; global_work_size = 0; opencl_get_user_preferences(CONFIG_NAME); //Initialize openCL tuning (library) for this format. opencl_init_auto_setup(STEP, ROUNDS_DEFAULT/8, 8, split_events, warn, &multi_profilingEvent[3], self, create_clobj, release_clobj, sizeof(pwsafe_pass), 0); self->methods.crypt_all = crypt_all_benchmark; selected_gws = global_work_size; /* Note: we ask for the kernels' max sizes, not the device's! */ maxsize = get_current_work_group_size(ocl_gpu_id, init_kernel); maxsize = MIN(get_current_work_group_size(ocl_gpu_id, crypt_kernel), maxsize); maxsize = MIN(get_current_work_group_size(ocl_gpu_id, finish_kernel), maxsize); while (local_work_size > maxsize) local_work_size >>= 1; self->params.max_keys_per_crypt = (global_work_size ? global_work_size: MAX_KEYS_PER_CRYPT); if (!local_work_size) { create_clobj(self->params.max_keys_per_crypt, self); find_best_lws(self, ocl_gpu_id); release_clobj(); } global_work_size = selected_gws; if (global_work_size) create_clobj(global_work_size, self); else //user chose to die of boredom find_best_gws(self, ocl_gpu_id); self->params.min_keys_per_crypt = local_work_size; self->params.max_keys_per_crypt = global_work_size; self->methods.crypt_all = crypt_all; if (options.verbosity > 2) fprintf(stderr, "Local worksize (LWS) %d, Global worksize (GWS) %d\n", (int)local_work_size, (int)global_work_size); }
static void init(struct fmt_main *self) { char build_opts[96]; size_t gws_limit = 4 << 20; if (pers_opts.target_enc == UTF_8) max_len = self->params.plaintext_length = MIN(125, 3 * PLAINTEXT_LENGTH); snprintf(build_opts, sizeof(build_opts), "-D%s -DPLAINTEXT_LENGTH=%u", cp_id2macro(pers_opts.target_enc), PLAINTEXT_LENGTH); opencl_init("$JOHN/kernels/oldoffice_kernel.cl", gpu_id, build_opts); /* create kernels to execute */ oldoffice_utf16 = clCreateKernel(program[gpu_id], "oldoffice_utf16", &ret_code); HANDLE_CLERROR(ret_code, "Error creating kernel. Double-check kernel name?"); crypt_kernel = oldoffice_md5 = clCreateKernel(program[gpu_id], "oldoffice_md5", &ret_code); oldoffice_sha1 = clCreateKernel(program[gpu_id], "oldoffice_sha1", &ret_code); HANDLE_CLERROR(ret_code, "Error creating kernel. Double-check kernel name?"); // Initialize openCL tuning (library) for this format. opencl_init_auto_setup(SEED, 0, NULL, warn, 3, self, create_clobj, release_clobj, sizeof(mid_t), gws_limit); // Auto tune execution from shared/included code. autotune_run(self, 1, gws_limit, 1000000000); }
static void reset(struct db_main *db) { if (!db) { // Initialize openCL tuning (library) for this format. opencl_init_auto_setup(SEED, 0, NULL, warn, 1, self, create_clobj, release_clobj, sizeof(sxc_password), 0); // Auto tune execution from shared/included code. autotune_run(self, 1, 0, 1000); } }
static void reset(struct db_main *db) { if (!db) { // Initialize openCL tuning (library) for this format. opencl_init_auto_setup(SEED, HASH_LOOPS, split_events, warn, 2, self, create_clobj, release_clobj, sizeof(sevenzip_salt), 0); // Auto tune execution from shared/included code. self->methods.crypt_all = crypt_all_benchmark; autotune_run(self, 1 << 19, 0, 15000000000ULL); self->methods.crypt_all = crypt_all; } }
static void reset(struct db_main *db) { if (!db) { //Initialize openCL tuning (library) for this format. opencl_init_auto_setup(SEED, HASH_LOOPS, split_events, warn, 2, self, create_clobj, release_clobj, sizeof(state_t), 0); //Auto tune execution from shared/included code. self->methods.crypt_all = crypt_all_benchmark; autotune_run(self, ITERATIONS, 0, (cpu(device_info[gpu_id]) ? 1000000000 : 10000000000ULL)); self->methods.crypt_all = crypt_all; } }
static void reset(struct db_main *db) { if (!db) { //Initialize openCL tuning (library) for this format. self->methods.crypt_all = crypt_all_benchmark; opencl_init_auto_setup(SEED, ROUNDS_DEFAULT/8, split_events, warn, 2, self, create_clobj, release_clobj, sizeof(pwsafe_pass), 0); //Auto tune execution from shared/included code. autotune_run(self, ROUNDS_DEFAULT, 0, (cpu(device_info[gpu_id]) ? 500000000ULL : 1000000000ULL)); self->methods.crypt_all = crypt_all; } }
static void init(struct fmt_main *self) { char build_opts[64]; if (pers_opts.target_enc == UTF_8) { max_len = self->params.plaintext_length = 3 * PLAINTEXT_LENGTH; tests[1].plaintext = "\xC3\xBC"; // German u-umlaut in UTF-8 tests[1].ciphertext = "$mskrb5$$$958db4ddb514a6cc8be1b1ccf82b0191$090408357a6f41852d17f3b4bb4634adfd388db1be64d3fe1a1d75ee4338d2a4aea387e5"; tests[2].plaintext = "\xC3\x9C\xC3\x9C"; // 2x uppercase of them tests[2].ciphertext = "$mskrb5$$$057cd5cb706b3de18e059912b1f057e3$fe2e561bd4e42767e972835ea99f08582ba526e62a6a2b6f61364e30aca7c6631929d427"; } else { if (CP_to_Unicode[0xfc] == 0x00fc) { tests[1].plaintext = "\xFC"; // German u-umlaut in many ISO-8859-x tests[1].ciphertext = "$mskrb5$$$958db4ddb514a6cc8be1b1ccf82b0191$090408357a6f41852d17f3b4bb4634adfd388db1be64d3fe1a1d75ee4338d2a4aea387e5"; } if (CP_to_Unicode[0xdc] == 0x00dc) { tests[2].plaintext = "\xDC\xDC"; // 2x uppercase of them tests[2].ciphertext = "$mskrb5$$$057cd5cb706b3de18e059912b1f057e3$fe2e561bd4e42767e972835ea99f08582ba526e62a6a2b6f61364e30aca7c6631929d427"; } } snprintf(build_opts, sizeof(build_opts), "-D%s -DPLAINTEXT_LENGTH=%u", cp_id2macro(pers_opts.target_enc), PLAINTEXT_LENGTH); opencl_init("$JOHN/kernels/krb5pa-md5_kernel.cl", gpu_id, build_opts); /* create kernels to execute */ krb5pa_md5_nthash = clCreateKernel(program[gpu_id], "krb5pa_md5_nthash", &ret_code); HANDLE_CLERROR(ret_code, "Error creating kernel. Double-check kernel name?"); crypt_kernel = clCreateKernel(program[gpu_id], "krb5pa_md5_final", &ret_code); HANDLE_CLERROR(ret_code, "Error creating kernel. Double-check kernel name?"); //Initialize openCL tuning (library) for this format. opencl_init_auto_setup(SEED, 0, NULL, warn, 2, self, create_clobj, release_clobj, PLAINTEXT_LENGTH, 0); //Auto tune execution from shared/included code. autotune_run(self, 1, 0, 200); }
static void init(struct fmt_main *self) { opencl_init("$JOHN/kernels/pwsafe_kernel.cl", gpu_id, NULL); init_kernel = clCreateKernel(program[gpu_id], KERNEL_INIT_NAME, &ret_code); HANDLE_CLERROR(ret_code, "Error while creating init kernel"); crypt_kernel = clCreateKernel(program[gpu_id], KERNEL_RUN_NAME, &ret_code); HANDLE_CLERROR(ret_code, "Error while creating crypt kernel"); finish_kernel = clCreateKernel(program[gpu_id], KERNEL_FINISH_NAME, &ret_code); HANDLE_CLERROR(ret_code, "Error while creating finish kernel"); //Initialize openCL tuning (library) for this format. self->methods.crypt_all = crypt_all_benchmark; opencl_init_auto_setup(SEED, ROUNDS_DEFAULT/8, split_events, warn, 2, self, create_clobj, release_clobj, sizeof(pwsafe_pass), 0); //Auto tune execution from shared/included code. autotune_run(self, ROUNDS_DEFAULT, 0, (cpu(device_info[gpu_id]) ? 500000000ULL : 1000000000ULL)); self->methods.crypt_all = crypt_all; }