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
- 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
- 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:

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

Loading…
Cancel
Save