int main(int argc, char **argv) { YK_KEY *yk = NULL; bool error = true; int exit_code = 0; /* Options */ bool verbose = false; char *action = ACTION_ADD_HMAC_CHALRESP; int slot = 1; ykp_errno = 0; yk_errno = 0; if (! parse_args(argc, argv, &slot, &verbose, &action, &exit_code)) goto err; exit_code = 1; if (! strcmp(action, ACTION_ADD_HMAC_CHALRESP)) { /* * Set up challenge-response login authentication */ if (! init_yubikey (&yk)) goto err; if (! check_firmware_version(yk, verbose, false)) goto err; if (! do_add_hmac_chalresp (yk, slot, verbose, NULL, &exit_code)) goto err; } else { fprintf (stderr, "Unknown action '%s'\n", action); goto err; } exit_code = 0; error = false; err: if (error || exit_code != 0) { report_yk_error (); } if (yk && !yk_close_key (yk)) { report_yk_error (); exit_code = 2; } if (!yk_release ()) { report_yk_error (); exit_code = 2; } exit (exit_code); }
int main(int argc, char **argv) { YK_KEY *yk = NULL; bool error = true; int exit_code = 0; /* Options */ bool verbose = false; char action[ACTION_MAX_LEN]; char *ptr = action; char *output_dir = NULL; int slot = 1; unsigned int iterations = CR_DEFAULT_ITERATIONS; ykp_errno = 0; yk_errno = 0; strcpy (action, ACTION_ADD_HMAC_CHALRESP); if (! parse_args(argc, argv, &slot, &verbose, &ptr, &output_dir, &iterations)) goto err; exit_code = 1; if (! strncmp(action, ACTION_ADD_HMAC_CHALRESP, ACTION_MAX_LEN)) { /* * Set up challenge-response login authentication */ if (! init_yubikey (&yk)) goto err; if (! check_firmware_version(yk, verbose, false)) goto err; if (! do_add_hmac_chalresp (yk, slot, verbose, output_dir, iterations, &exit_code)) goto err; } else { fprintf (stderr, "Unknown action '%s'\n", action); goto err; } exit_code = 0; error = false; err: if (error || exit_code != 0) { report_yk_error (); } if (yk && !yk_close_key (yk)) { report_yk_error (); exit_code = 2; } if (!yk_release ()) { report_yk_error (); exit_code = 2; } exit (exit_code); }