User Options: According to getopts manpage the last element of the option array has to be filled with zeros

pull/1511/head
jsteube 6 years ago
parent 5b527f6aa6
commit 2095e27d46

@ -56,6 +56,7 @@
- Self Test: Skip self-test for mode 8900 - user-configurable scrypt settings are incompatible with fixed settings in the self-test hash - Self Test: Skip self-test for mode 8900 - user-configurable scrypt settings are incompatible with fixed settings in the self-test hash
- Terminal: Send clear line code to the same output stream as the message immediately following - Terminal: Send clear line code to the same output stream as the message immediately following
- Timer: Switch from gettimeofday() to clock_gettime() to work around problems on cygwin - Timer: Switch from gettimeofday() to clock_gettime() to work around problems on cygwin
- User Options: According to getopts manpage the last element of the option array has to be filled with zeros
* changes v4.0.0 -> v4.0.1: * changes v4.0.0 -> v4.0.1:

@ -18,98 +18,98 @@ static const char *short_options = "hVvm:a:r:j:k:g:o:t:d:D:n:u:c:p:s:l:1:2:3:4:i
static const struct option long_options[] = static const struct option long_options[] =
{ {
{"advice-disable", no_argument, 0, IDX_ADVICE_DISABLE}, {"advice-disable", no_argument, NULL, IDX_ADVICE_DISABLE},
{"attack-mode", required_argument, 0, IDX_ATTACK_MODE}, {"attack-mode", required_argument, NULL, IDX_ATTACK_MODE},
{"benchmark", no_argument, 0, IDX_BENCHMARK}, {"benchmark", no_argument, NULL, IDX_BENCHMARK},
{"benchmark-all", no_argument, 0, IDX_BENCHMARK_ALL}, {"benchmark-all", no_argument, NULL, IDX_BENCHMARK_ALL},
{"bitmap-max", required_argument, 0, IDX_BITMAP_MAX}, {"bitmap-max", required_argument, NULL, IDX_BITMAP_MAX},
{"bitmap-min", required_argument, 0, IDX_BITMAP_MIN}, {"bitmap-min", required_argument, NULL, IDX_BITMAP_MIN},
{"cpu-affinity", required_argument, 0, IDX_CPU_AFFINITY}, {"cpu-affinity", required_argument, NULL, IDX_CPU_AFFINITY},
{"custom-charset1", required_argument, 0, IDX_CUSTOM_CHARSET_1}, {"custom-charset1", required_argument, NULL, IDX_CUSTOM_CHARSET_1},
{"custom-charset2", required_argument, 0, IDX_CUSTOM_CHARSET_2}, {"custom-charset2", required_argument, NULL, IDX_CUSTOM_CHARSET_2},
{"custom-charset3", required_argument, 0, IDX_CUSTOM_CHARSET_3}, {"custom-charset3", required_argument, NULL, IDX_CUSTOM_CHARSET_3},
{"custom-charset4", required_argument, 0, IDX_CUSTOM_CHARSET_4}, {"custom-charset4", required_argument, NULL, IDX_CUSTOM_CHARSET_4},
{"debug-file", required_argument, 0, IDX_DEBUG_FILE}, {"debug-file", required_argument, NULL, IDX_DEBUG_FILE},
{"debug-mode", required_argument, 0, IDX_DEBUG_MODE}, {"debug-mode", required_argument, NULL, IDX_DEBUG_MODE},
{"encoding-from", required_argument, 0, IDX_ENCODING_FROM}, {"encoding-from", required_argument, NULL, IDX_ENCODING_FROM},
{"encoding-to", required_argument, 0, IDX_ENCODING_TO}, {"encoding-to", required_argument, NULL, IDX_ENCODING_TO},
{"example-hashes", no_argument, 0, IDX_EXAMPLE_HASHES}, {"example-hashes", no_argument, NULL, IDX_EXAMPLE_HASHES},
{"force", no_argument, 0, IDX_FORCE}, {"force", no_argument, NULL, IDX_FORCE},
{"generate-rules-func-max", required_argument, 0, IDX_RP_GEN_FUNC_MAX}, {"generate-rules-func-max", required_argument, NULL, IDX_RP_GEN_FUNC_MAX},
{"generate-rules-func-min", required_argument, 0, IDX_RP_GEN_FUNC_MIN}, {"generate-rules-func-min", required_argument, NULL, IDX_RP_GEN_FUNC_MIN},
{"generate-rules", required_argument, 0, IDX_RP_GEN}, {"generate-rules", required_argument, NULL, IDX_RP_GEN},
{"generate-rules-seed", required_argument, 0, IDX_RP_GEN_SEED}, {"generate-rules-seed", required_argument, NULL, IDX_RP_GEN_SEED},
{"gpu-temp-abort", required_argument, 0, IDX_GPU_TEMP_ABORT}, {"gpu-temp-abort", required_argument, NULL, IDX_GPU_TEMP_ABORT},
{"gpu-temp-disable", no_argument, 0, IDX_GPU_TEMP_DISABLE}, {"gpu-temp-disable", no_argument, NULL, IDX_GPU_TEMP_DISABLE},
{"hash-type", required_argument, 0, IDX_HASH_MODE}, {"hash-type", required_argument, NULL, IDX_HASH_MODE},
{"hccapx-message-pair", required_argument, 0, IDX_HCCAPX_MESSAGE_PAIR}, {"hccapx-message-pair", required_argument, NULL, IDX_HCCAPX_MESSAGE_PAIR},
{"help", no_argument, 0, IDX_HELP}, {"help", no_argument, NULL, IDX_HELP},
{"hex-charset", no_argument, 0, IDX_HEX_CHARSET}, {"hex-charset", no_argument, NULL, IDX_HEX_CHARSET},
{"hex-salt", no_argument, 0, IDX_HEX_SALT}, {"hex-salt", no_argument, NULL, IDX_HEX_SALT},
{"hex-wordlist", no_argument, 0, IDX_HEX_WORDLIST}, {"hex-wordlist", no_argument, NULL, IDX_HEX_WORDLIST},
{"increment-max", required_argument, 0, IDX_INCREMENT_MAX}, {"increment-max", required_argument, NULL, IDX_INCREMENT_MAX},
{"increment-min", required_argument, 0, IDX_INCREMENT_MIN}, {"increment-min", required_argument, NULL, IDX_INCREMENT_MIN},
{"increment", no_argument, 0, IDX_INCREMENT}, {"increment", no_argument, NULL, IDX_INCREMENT},
{"induction-dir", required_argument, 0, IDX_INDUCTION_DIR}, {"induction-dir", required_argument, NULL, IDX_INDUCTION_DIR},
{"keep-guessing", no_argument, 0, IDX_KEEP_GUESSING}, {"keep-guessing", no_argument, NULL, IDX_KEEP_GUESSING},
{"kernel-accel", required_argument, 0, IDX_KERNEL_ACCEL}, {"kernel-accel", required_argument, NULL, IDX_KERNEL_ACCEL},
{"kernel-loops", required_argument, 0, IDX_KERNEL_LOOPS}, {"kernel-loops", required_argument, NULL, IDX_KERNEL_LOOPS},
{"keyspace", no_argument, 0, IDX_KEYSPACE}, {"keyspace", no_argument, NULL, IDX_KEYSPACE},
{"left", no_argument, 0, IDX_LEFT}, {"left", no_argument, NULL, IDX_LEFT},
{"limit", required_argument, 0, IDX_LIMIT}, {"limit", required_argument, NULL, IDX_LIMIT},
{"logfile-disable", no_argument, 0, IDX_LOGFILE_DISABLE}, {"logfile-disable", no_argument, NULL, IDX_LOGFILE_DISABLE},
{"loopback", no_argument, 0, IDX_LOOPBACK}, {"loopback", no_argument, NULL, IDX_LOOPBACK},
{"machine-readable", no_argument, 0, IDX_MACHINE_READABLE}, {"machine-readable", no_argument, NULL, IDX_MACHINE_READABLE},
{"markov-classic", no_argument, 0, IDX_MARKOV_CLASSIC}, {"markov-classic", no_argument, NULL, IDX_MARKOV_CLASSIC},
{"markov-disable", no_argument, 0, IDX_MARKOV_DISABLE}, {"markov-disable", no_argument, NULL, IDX_MARKOV_DISABLE},
{"markov-hcstat", required_argument, 0, IDX_MARKOV_HCSTAT}, {"markov-hcstat", required_argument, NULL, IDX_MARKOV_HCSTAT},
{"markov-threshold", required_argument, 0, IDX_MARKOV_THRESHOLD}, {"markov-threshold", required_argument, NULL, IDX_MARKOV_THRESHOLD},
{"nonce-error-corrections", required_argument, 0, IDX_NONCE_ERROR_CORRECTIONS}, {"nonce-error-corrections", required_argument, NULL, IDX_NONCE_ERROR_CORRECTIONS},
{"nvidia-spin-damp", required_argument, 0, IDX_NVIDIA_SPIN_DAMP}, {"nvidia-spin-damp", required_argument, NULL, IDX_NVIDIA_SPIN_DAMP},
{"opencl-devices", required_argument, 0, IDX_OPENCL_DEVICES}, {"opencl-devices", required_argument, NULL, IDX_OPENCL_DEVICES},
{"opencl-device-types", required_argument, 0, IDX_OPENCL_DEVICE_TYPES}, {"opencl-device-types", required_argument, NULL, IDX_OPENCL_DEVICE_TYPES},
{"opencl-info", no_argument, 0, IDX_OPENCL_INFO}, {"opencl-info", no_argument, NULL, IDX_OPENCL_INFO},
{"opencl-platforms", required_argument, 0, IDX_OPENCL_PLATFORMS}, {"opencl-platforms", required_argument, NULL, IDX_OPENCL_PLATFORMS},
{"opencl-vector-width", required_argument, 0, IDX_OPENCL_VECTOR_WIDTH}, {"opencl-vector-width", required_argument, NULL, IDX_OPENCL_VECTOR_WIDTH},
{"optimized-kernel-enable", no_argument, 0, IDX_OPTIMIZED_KERNEL_ENABLE}, {"optimized-kernel-enable", no_argument, NULL, IDX_OPTIMIZED_KERNEL_ENABLE},
{"outfile-autohex-disable", no_argument, 0, IDX_OUTFILE_AUTOHEX_DISABLE}, {"outfile-autohex-disable", no_argument, NULL, IDX_OUTFILE_AUTOHEX_DISABLE},
{"outfile-check-dir", required_argument, 0, IDX_OUTFILE_CHECK_DIR}, {"outfile-check-dir", required_argument, NULL, IDX_OUTFILE_CHECK_DIR},
{"outfile-check-timer", required_argument, 0, IDX_OUTFILE_CHECK_TIMER}, {"outfile-check-timer", required_argument, NULL, IDX_OUTFILE_CHECK_TIMER},
{"outfile-format", required_argument, 0, IDX_OUTFILE_FORMAT}, {"outfile-format", required_argument, NULL, IDX_OUTFILE_FORMAT},
{"outfile", required_argument, 0, IDX_OUTFILE}, {"outfile", required_argument, NULL, IDX_OUTFILE},
{"wordlist-autohex-disable", no_argument, 0, IDX_WORDLIST_AUTOHEX_DISABLE}, {"wordlist-autohex-disable", no_argument, NULL, IDX_WORDLIST_AUTOHEX_DISABLE},
{"potfile-disable", no_argument, 0, IDX_POTFILE_DISABLE}, {"potfile-disable", no_argument, NULL, IDX_POTFILE_DISABLE},
{"potfile-path", required_argument, 0, IDX_POTFILE_PATH}, {"potfile-path", required_argument, NULL, IDX_POTFILE_PATH},
{"quiet", no_argument, 0, IDX_QUIET}, {"quiet", no_argument, NULL, IDX_QUIET},
{"remove", no_argument, 0, IDX_REMOVE}, {"remove", no_argument, NULL, IDX_REMOVE},
{"remove-timer", required_argument, 0, IDX_REMOVE_TIMER}, {"remove-timer", required_argument, NULL, IDX_REMOVE_TIMER},
{"restore-disable", no_argument, 0, IDX_RESTORE_DISABLE}, {"restore-disable", no_argument, NULL, IDX_RESTORE_DISABLE},
{"restore-file-path", required_argument, 0, IDX_RESTORE_FILE_PATH}, {"restore-file-path", required_argument, NULL, IDX_RESTORE_FILE_PATH},
{"restore", no_argument, 0, IDX_RESTORE}, {"restore", no_argument, NULL, IDX_RESTORE},
{"rule-left", required_argument, 0, IDX_RULE_BUF_L}, {"rule-left", required_argument, NULL, IDX_RULE_BUF_L},
{"rule-right", required_argument, 0, IDX_RULE_BUF_R}, {"rule-right", required_argument, NULL, IDX_RULE_BUF_R},
{"rules-file", required_argument, 0, IDX_RP_FILE}, {"rules-file", required_argument, NULL, IDX_RP_FILE},
{"runtime", required_argument, 0, IDX_RUNTIME}, {"runtime", required_argument, NULL, IDX_RUNTIME},
{"scrypt-tmto", required_argument, 0, IDX_SCRYPT_TMTO}, {"scrypt-tmto", required_argument, NULL, IDX_SCRYPT_TMTO},
{"self-test-disable", no_argument, 0, IDX_SELF_TEST_DISABLE}, {"self-test-disable", no_argument, NULL, IDX_SELF_TEST_DISABLE},
{"segment-size", required_argument, 0, IDX_SEGMENT_SIZE}, {"segment-size", required_argument, NULL, IDX_SEGMENT_SIZE},
{"separator", required_argument, 0, IDX_SEPARATOR}, {"separator", required_argument, NULL, IDX_SEPARATOR},
{"seperator", required_argument, 0, IDX_SEPARATOR}, {"seperator", required_argument, NULL, IDX_SEPARATOR},
{"session", required_argument, 0, IDX_SESSION}, {"session", required_argument, NULL, IDX_SESSION},
{"show", no_argument, 0, IDX_SHOW}, {"show", no_argument, NULL, IDX_SHOW},
{"skip", required_argument, 0, IDX_SKIP}, {"skip", required_argument, NULL, IDX_SKIP},
{"status", no_argument, 0, IDX_STATUS}, {"status", no_argument, NULL, IDX_STATUS},
{"status-timer", required_argument, 0, IDX_STATUS_TIMER}, {"status-timer", required_argument, NULL, IDX_STATUS_TIMER},
{"stdout", no_argument, 0, IDX_STDOUT_FLAG}, {"stdout", no_argument, NULL, IDX_STDOUT_FLAG},
{"speed-only", no_argument, 0, IDX_SPEED_ONLY}, {"speed-only", no_argument, NULL, IDX_SPEED_ONLY},
{"progress-only", no_argument, 0, IDX_PROGRESS_ONLY}, {"progress-only", no_argument, NULL, IDX_PROGRESS_ONLY},
{"truecrypt-keyfiles", required_argument, 0, IDX_TRUECRYPT_KEYFILES}, {"truecrypt-keyfiles", required_argument, NULL, IDX_TRUECRYPT_KEYFILES},
{"username", no_argument, 0, IDX_USERNAME}, {"username", no_argument, NULL, IDX_USERNAME},
{"veracrypt-keyfiles", required_argument, 0, IDX_VERACRYPT_KEYFILES}, {"veracrypt-keyfiles", required_argument, NULL, IDX_VERACRYPT_KEYFILES},
{"veracrypt-pim", required_argument, 0, IDX_VERACRYPT_PIM}, {"veracrypt-pim", required_argument, NULL, IDX_VERACRYPT_PIM},
{"version", no_argument, 0, IDX_VERSION}, {"version", no_argument, NULL, IDX_VERSION},
{"workload-profile", required_argument, 0, IDX_WORKLOAD_PROFILE}, {"workload-profile", required_argument, NULL, IDX_WORKLOAD_PROFILE},
{} {NULL, 0, NULL, 0 }
}; };
static const char *ENCODING_FROM = "utf-8"; static const char *ENCODING_FROM = "utf-8";

Loading…
Cancel
Save