The following changes were made between 1.8.0-jumbo-1 and 1.8-0-jumbo-2:

magnum (1282):
	inc.c: Instead of sending a "" to crk_process_key(), use a safe
	  static buffer of PLAINTEXT_BUFFER_SIZE. No problem seen here but
	  in other places with similar code.
	Move lastpass format back in tree. See #890
	OpenCL: Support reporting OpenCL 2.0 versions.
	OpenCL: Pass DEV_VER_MAJOR and DEV_VER_MINOR to OpenCL compiler.
	  Eg. for Catalyst 1234.5 they will be 1234 and 5 respectively.
	  For strings like "text 123 text 56" they will be 123 and 56.
	  Closes #909.
	DEScrypt OpenCL: Tweak the selection of "fast" versus "safe" version
	  of the kernel. The selection logic will very likely grow over
	  time.
	OpenCL: If kernel build fails, force outputting build options.
	OpenCL: AMD devices have some weird bug when using pinned buffers.
	  They seem to allocate twice the memory. We need to account for
	  this when finding out limits.
	Speed up some --list stuff with OpenCL formats. See #919.
	Even more speedup for --list stuff with OpenCL formats. See #919.
	Tweak for --list=format-[all-]details and OMP formats. See #919.
	OMP tuning and some other performance fixes. See #877.
	AC: Fix ASAN configuration. Closes #921.
	AC: More fixes to ASAN configuration. #921.
	Fix a problem with --list=format-tests and Unicode formats. Closes
	  #919
	DEScrypt OpenCL: Tweak the selection of "fast" versus "safe"
	  version of the kernel. The __Tahiti__ macro is not all upper
	  case, as I had it. And only nvidia GM204 seem to be faster using
	  the "safe" kernel - Kepler and Fermi wants the other.
	Vectorized OpenCL formats: Correction for max memory use.
	Vectorized OpenCL formats: Correction for max memory use.
	raw-sha256 bug fix. It didn't unify case for all hashes. Closes
	  #925, #926, #927, #928, #931.
	OpenCL: Fix a bad bug with multi-field test vectors. Found by ASAN.
	OpenCL: Auto-tune max. size calc. fix for vectorized formats (RAKP
	  and NTLMv2). See #922
	Office2013 OpenCL: Disable vectorizing on VLIW5 because the
	  register pressure is too high. Discussion in #908.
	AC: Add -D__USE_MINGW_ANSI_STDIO for MinGW.
	Office2013 OpenCL: Allow forcing vectorizing.
	Fix a minor problem in AESNI Makefile.
	RAKP OpenCL: On VLIW5, limit vectorizing to 2x due to GPR
	  pressure. See #908.
	Various OpenCL formats: On VLIW5, limit vectorizing to 2x due to
	  GPR pressure. See #908.
	Oops I committed the define of JTR_RELASE_BUILD into bleeding.
	Makefile: Fix a typo in luks2john's LDFLAGS. See #933
	jumbo.c: Pure whitespace fixes.
	OpenCL: Drop some obsolete code. Fix a lot of formats for using LWS=0
	  (auto tune LWS) or LWS=9999 (set to ceiling instead of forcing
	  auto tune). Also plenty other minor tweaks and fixes.
	Change the $HEX$ loader bodge to use strncmp() instead of
	  strstr(), for performance.
	Drop OCL_CONFIG in favor of FORMAT_LABEL. It will be stripped to
	  it's base and lower-cased, eg. rar-opencl -> rar, so the end
	  result is supposedly the same (or bugs got fixed automagically,
	  which is the very intention with this). Closes #940.
	Drop a couple of old formats from the unused/ directory. That
	  directory is not a permanent graveyard - Git is.
	Drop a couple of old Unicode "original" files from unused. We do
	  not need them - the licensing information is stated in the files
	  we actually use.
	Fix a problem with opencl_cryptsha512_fmt after my recent changes.
	Drop no-op code from Truecrypt. See #941.
	Fix indentation and widescreen comments in memory.c
	raw-sha1-linkedin bodge for loader.c. Closes #924.
	RAKP-opencl, fix a problem with uninitialized index buffer when
	  used with -skip. Closes #947.
	mscash-cuda. Update valid() and prepare() from CPU format. Closes
	  #942
	sha256crypt-cuda. Use shared valid() and binary() functions.
	  Closes #943.
	sha512crypt-cuda. Use shared valid() and binary() functions.
	  Closes #944.
	Revert an incorrect fix in formats.c from faf28f43. You must not
	  call clear_keys() in the middle of a batch of keys!
	Revert an incorrect fix in mssql from faf28f43.
	Put workaround back in RSVP since we reverted the fix in formats.c
	Bugfix for xsha512-cuda found by ASAN.
	Add more test vectors to CUDA formats that only had one.
	Encfs-opencl and sxc-opencl: Add test vectors from CPU format.
	OpenCL keyring format: Add second test vector from CPU format.
	  This immediately made a bad bug show up, which was fixed too.
	Revert "loader: incresed number of parms being loaded from file, for
	  scrypt"
	pwsafe-opencl: Reject uppercase in valid().
	Drop 'test' but keep .gitmodules. Experimental.
	Drop some unused code from Keccak and Blake.
	Fix some header inclusions that should be <brackets> but was "quotes"
	Add an option to configure (--enable-plugin-dependencies) that
	  creates plugin dependencies in Makefile. Highly experimental and
	  best-effort. See #955.
	Add a self-test for salt() ensuring it returns same data for same
	  salt. See #953.
	Base64_convert code: Some off-by-one and buffer cleaning problems
	  fixed. See #953
	Fix some more header inclusions that should be <brackets> but were
	  "quotes".
	Add Makefile dependencies for non-plugins, "best effort".
	Default to enable plugin dependencies generation.
	Add a debug print to formats.c salt dupe check.
	PFX bugfix. We were clearing salt after setting things in it. This
	  does not fix #953 - it appears we really have to use a dynamic
	  salt.
	Change wording of self-test warning for dupe salt detection.
	  There's not really any doubt it's broken.
	OpenCL DES: Use an LWS of 8 for Intel, for good measure (they
	  recommend it in their white papers). Closes #958.
	Revert 53442ed and 123a654. They were never needed. See #958
	Allow environment variable OMP_SCALE to override john.conf setting
	  FormatBlockScaleTuneMultiplier. And clean up code.
	luks2john: Add missing LF in error output.
	Fix bugs in LUKS format. Some optimist had changed things without
	  checking results of it. We were freeing memory that was not
	  alloc'ed, and non-inlined hash handling was terrificly b0rken in
	  valid().
	Add autoconfig-stamp-h.in to .gitignore
	DEScrypt-opencl: Add a kludge for older buggy Intel CPU driver.
	Double entry in .gitignore after mid-air collision. Removed.
	Make base64_convert less Windows-ish by lifting the limit of 50K
	  max. number of lines read from stdin. Fix some bugs while at it.
	  The max line length is now 256K as stated (it was coded as
	  256M). FWIW our current LINE_BUFFER_SIZE is less at 0x30000.
	base64_convert: Put a line length limit notice back in usage blob.
	Fix edge-case issues with enc_lc() and enc_uc(). The destination
	  size is now buffer size, not string length.
	Fix a good bunch of formats that did not work with the new
	  OMP_SCALE test/devel stuff. See #877.
	Fix some more formats that did not work with the new OMP_SCALE
	  test/devel stuff. Plus some no-ops for unified code. See #877.
	Revert CP737 to what the Unicode database says.
	Manual sync of libclamav unrar code from upstream. This did not
	  fix #1000.
	Fix an ASAN problem in unrar.c where a read ahead buffer could
	  read past end of buffer. Closes #1000.
	Fix a bug in -list=format-details where multi-field ciphertexts
	  were not printed. Also drop some for loops in -list=format-tests
	  in favor of strchr().
	unrar.c, bump over-alloc more for protection against bad data. See
	  #1000 and closes #1001.
	Document how to crack CRAM-MD5 using the HMAC-MD5 format. Closes
	  #999.
	Add salt_compare method and plaintext_min_length param to format
	  struct. Closes 996, closes #997.
	Add --list info for new format struct members. Closes #1004.
	unrar.c: Implement a similar protection for rar_getbits() that Jim
	  did in rarvm_getbits(). Unfortunately this did not help #1008.
	Wordlist mode had no consecutive dupe suppression when running
	  unbuffered and without rules. This reverts 15949eb and fixes it
	  in a better way. Closes #1012.
	Reduce some chatter when -verbosity is decreased.
	If verbosity is increased, report tunable cost even when all
	  hashes have same cost. This was suggested in #816.
	Allow -cost with -test. See #816.
	Clean up cost-with-test code, see #816.
	Cost-with-test: Added printing of costs used in test. Closes #816.
	Cost-with-test: Changed message for costs used in test. See #816.
	Benchmark w/ -cost issues. Closes #816. - Never output cost
	  information w/ --test=0. - Also mute it if verbosity was
	  decreased from default. - Give a better error message when -cost
	  pruned all test vectors. - Fail with a proper notice if a
	  required cost is not defined.
	Import pp.c (as prince.c) from Atom's Princeprocessor and
	  implement a prince mode with it. See #1011.
	Add means for setting PRINCE parameters. Also add logging of them.
	  See #1011.
	PRINCE: Add ETA/progress. See #1011.
	PRINCE: Minor tweaks. See #1011.
	PRINCE: Implement session save/restore. See #1011.
	PRINCE: Minor tweaks. See #1011.
	PRINCE: Fix a problem where we broke out of inner loop but not the
	  outer. See #1014.
	PRINCE: Fix another problem where we broke out of inner loop but
	  not the outer. Closes #1014.
	Fix a potential "ASan problem" in mask mode.
	PRINCE: Always report DONE when everything is cracked. This is not
	  necessarily a good idea (will open another issue) but all other
	  modes do so.
	PRINCE: Support node/fork. See #1011.
	PRINCE: Better node/fork distribution. See #1011.
	PRINCE: Fix resume problem. Closes #1016.
	PRINCE: Cosmetic & performance resume tweaks. See #1016.
	Drop PRINCE from usage blob and other stuff, unless GMP is
	  available.
	PRINCE: Sync pp.c from Atom's repo.
	PRINCE: Add proper GMP cleanup for JtR-specific variables.
	PRINCE: Optionally define PRINCE-specific wordlist in john.conf.
	Autoconf: Add a PRINCE notice to summary (for GMP library).
	PRINCE: Mute a compiler warning.
	Add a header in pkzip_plug.c muting a compiler warning.
	Sync upstream PRINCE changes. Major improvement for resuming.
	PRINCE: Much faster node distribution - but distributes poorly for
	  very small keyspaces.
	PRINCE: Sync prince.c from upstream (d9bbf908) pp.c.
	PRINCE: Sync prince.c from upstream (be309320) pp.c (major bugfix).
	Autoconf: Check whether compiler supports some int128 type(s).
	PRINCE: Prefer uint128_t over GMP if available, for a 44% boost. This
	  only works with 64-bit builds and not with all compilers (it
	  should work with gcc 3.1 and above). Otherwise fall back to GMP.
	PRINCE: Support 128-bit integer for legacy Makefile builds.
	PRINCE: Fix a bug with 128-bit restore.
	Show default parameters for PRINCE mode in usage blob.
	PRINCE: Bugfix for legacy builds.
	Add instructions for working around bugs in the system headers of
	  OS X Yosemite. See #1025.
	PRINCE: Merge upstream.
	OSX: Backup originals if patching system headers o.O
	Mask mode (pure): Fix progress/ETA for node/fork runs. Closes #1024.
	PRINCE: Drop the inner-loop node distribution alternative, plus some
	  error output tweaks.
	PRINCE: Update from upstream.
	PRINCE: Ensure session store/resume compatibility between GMP and
	  non-GMP versions. And fix input/output of large numbers in the
	  int128 version. Also fix what I hope is a bug upstream (else we
	  got a problem).
	PRINCE: Update from upstream. 6.4x boost. Drop the int128 version
	  for now (WIP).
	PRINCE: Add options --prince-skip=N and --prince-limit=N.
	PRINCE: Add int128 alternative to GMP again, this time using a header
	  with nefarious macros.
	Re-add AC status output for int128 PRINCE.
	PRINCE: Add --prince-keyspace option. Also add --disable-int128 to
	  autoconf.
	mpz_int128.h: Support base 10 and 16 for mpz_set_str()
	PRINCE: Show "bits used" when printing keyspace. Also revert a bug
	  workaround that should no longer be needed (div by zero while
	  skipping).
	Add unrule.pl embryo. This does wot epixoip said, plus removes dupes
	  and sorts by count. Reduces rockyou.txt by 60% in 30 seconds.
	  See #998.
	mpz_int128.h: Add overflow checks, saturating to INT128_MAX (and
	  to zero for subtraction)
	mpz_int128.h: Minor tweaks.
	blf.h: Use "stdint.h" and not <stdint.h>
	Sync pp.c from upstream.
	Add a warning about saturation in mpz_int128.h in case someone
	  tries to use it for something other than PRINCE.
	PRINCE: Fix a bug in JtR-specific code introduced when merging
	  upstream.
	Drop OS X 'as' wrapper script in favor of -q option to native 'as'.
	mpz_int128.h: Fix saturation checks for case where rop and op1 is
	  the same variable.
	PRINCE: Update from upstream v 0.20.
	PRINCE: Tweak parameter checking.
	PRINCE: Fix (JtR specific) resume bug.
	PRINCE: Update pp.c from upstream and add new -prince-case-permute
	  amplifier option to JtR.
	PRINCE: Allow output lengths up to 125. Note that this mode
	  currently limits output length to 16 unless you use -max-len to
	  bump it. For most other use cases, -max-len is a limiter.
	Print timestamp with --log-stderr.
	PRINCE: Bug fixes for case when output length > max input length.
	Jim's portability hack of pp.c was broken: * If -DJTR_MODE we
	  don't need getopt.h at all * if that macro is not defined we
	  must not depend on other object files.
	PRINCE: Reduce memory use.
	PRINCE: Fix a bug when output length > max. input length.
	PRINCE: Fix output length bugs. We can't support longer output
	  than 32 unless we switch to u64, but it will too slow anyway.
	PRINCE: Fix a session bugs with node/fork. This is incompatible with
	  saved sessions from previous versions - there was no way around
	  it.
	MIPS tweaks for autoconf script. Suggested by Solar after tests.
	PRINCE: Update from upstream.
	AC: Add mips* back (and a new mips64*) for catching obscure target
	  triples.
	WPAPSK: Better version of previous patch. See #1031
	PRINCE: Add support for encodings. This does not affect
	  performance much, and only during initial wordlist load.
	PRINCE: Add loopback mode. Note that we do not yet have dupe
	  suppression which is almost a must for loopback.
	PRINCE: Add dupe-suppression.
	PRINCE: Update from (sort of) upstream.
	Some tweaks for --max-length option. Do not allow it to over-ride
	  a limited --stdout=N length, and bail with error if trying to use
	  larger than allowed for PRINCE mode (currently 32).
	Change the inline error output from keepass format to reference
	  the issue for fixing it, and use error() instead of exit(). See
	  #1023 and #1026.
	Do not test for int128 unless we are really 64-bit or better.
	PRINCE: Fix resume bug.
	PRINCE: Update from upstream. Dupe-suppression is now default.
	PRINCE: Yet again tweak session save/resume. It's hard to get
	  node/fork right.
	Replace exit() calls with error() so we get a proper bailout with
	  logging.
	PRINCE: Optionally memory-map the input file (not for loopback mode
	  nor when using case permutations). This is JtR-specific, the
	  original prince-processor still only supports loading from
	  stdin. Dupe suppression is no longer default except in loopback
	  mode, good old --dupe-suppression option does it otherwise.
	Tweaks to the Yosemite patch, for not breaking clang builds.
	Pacify a clang compiler warning in pp.c.
	PRINCE: Add logging of memory use (JtR only).
	PRINCE: Upstream bug fix, and some more fixes for dupe-suppression.
	Comment out an unused variable in MD4 OpenCL kernel.
	PRINCE: Revert a bogus change in last commit.
	PRINCE: JtR-specific bugfix similar to the recently fixed one
	  upstream.
	PRINCE: Automatically decrease elem-cnt-max to pw_max if applicable.
	Drop an odd thing Frank accidentally(?) added to bash completion.
	Fix bash completion for --prince=FILE. Closes #1020.
	bash completion: Allow ':' instead of '=' for --prince=FILE. See
	  #1020.
	MPI/fork: Mute dupe "slow loading" warning messages for NTLMv1.
	PRINCE: Ensure session-save does not store a position we never
	  reached. Not sure there was a problem but better than sorry.
	PRINCE: Add rules support. This is very slow right now because we
	  run each word through all rules instead of the other way round.
	  Closes #1019.
	Add a format that is based on dummy but use no encoding at all.
	  ciphertext == plaintext. This is easier to use for some tests.
	Some --list OpenCL tweaks for Apple.
	Cosmetic --list CUDA tweak for cc 2.1.
	Add a comment in plaintext format. This format is faster than
	  dummy if using same max lengths.
	Drop some weird garbage from Makefile.in
	Support -DSYSTEMWIDE using Autoconf --with-systemwide. Shared binary
	  directory defaults to /usr/libexec/john unless you use the
	  --prefix option to configure [which also implies
	  --with-systemwide].
	PRINCE: Updates from upstream.
	logger.c: Only flush stdout if we're indeed running fork. It
	  should not be needed for MPI.
	Minor tweak for SecureMode = Y.
	Fix p/s counter for GPU generation.
	PRINCE: Enable hybrid mask mode.
	Various fixes for PRINCE hybrid mask mode.
	Add a newly needed GMP function for emulation.
	Some file locking tweaks: Ensure a LOCK_SH before pot sync was not
	  interrupted by a signal (timer). This should not matter much, if at
	  all. Also show whether locking is supported or not in
	  --list=build-info.
	Add some file locking debug output for -DLOCK_DEBUG and also have it
	  imply -DPOTSYNC_DEBUG.
	Add a flock-test script to unused.
	Change a couple #ifdef POTSYNC_DEBUG to LOCK_DEBUG for consistency.
	Simplify pot-reload file open. This should really not make any
	  difference in the end (we're doing the same things) but it looks
	  nicer and it no longer feels like we're missing a call to close()
	  (as opposed to fclose() which we do call).
	Make it possible to *completely* disable pot syncing just by
	  editing john.conf. Also clarify some descriptions.
	Plaintext format: Add a test vector including spaces, and some
	  comments.
	PRINCE: Enable use of mmap with loopback, plus various bugfixes.
	Fix some logging that happened before log_init() so never made it into
	  log.
	Finish the alternative fcntl() file locking. After having
	  consulted Solar, we also make it the default.
	Improved -DLOCK_DEBUG a little.
	BFEgg is FMT_NOT_EXACT. See #1045.
	BFEgg should have a max. password length of 72.
	Drop FMT_NOT_EXACT from BFEgg again, and document (in source) the
	  optional per-run alternative --keep-guessing. See #1045.
	Tweaks and a bug fix for fcntl locking.
	Update some obsolete information in README.mpi.
	Clarify description of FMT_NOT_EXACT in formats.h, and drop that
	  flag from CRC32 format. That format should be run with
	  --keep-guessing option instead (if/when actually needed). Also
	  drop some comments from formats so they don't hit a "git grep
	  FMT_NOT_EXACT" while not actually having that flag.
	Mute clang compiler warnings about unused variables (that we can't
	  drop cause we need the sizeof() them) in gpg2john.
	Fix usage blob for --prince-mmap, a restriction was dropped.
	The --stress-test option did not work very well with OpenMP formats
	  that have things like "self->params.max_keys_per_crypt *= omp_t"
	  since this would be evaluated before each test and figures would
	  soon get silly. So we save them and restore them. Also applies to
	  plaintext_length as that might be eg. "*= 3" for UTF-8.
	Update doc/OPTIONS with some missing bits and pieces.
	Work around a very strange MPI segfault when trying to resume a
	  session that does not exist.
	Fix a bug that was introduced with the ShowUIDinCracks option, even
	  when not enabled. pwdump-format input files ended up showing
	  random garbage.
	doc/OPTIONS, tweak description of --keep-guessing.
	ShowUIDinCracks: Honor --field-sep-char.
	CUDA md5crypt, clean salt.
	Add salt_hash() to a couple of formats. See #809.
	AC: Rename --disable-native-macro to --disable-native-march which
	  is a whole lot less confusing. Also ensure that
	  --disable-native-tests always implies --disable-native-march.
	AC: All x86 cross-compile tests were busted and returned true for
	  anything.
	Document a problem when using Ubuntu 12.04 with modern (AVX2)
	  hardware. Closes #1051.
	PRINCE: Updates from upstream.
	Always use mem_alloc(), or check result of malloc(), for good measure.
	Our "mute ASAN" fix in bench.c affected benchmark speeds a whole lot
	  for fast formats. This mitigates it at least enough not to show
	  slower than real-life speed (compared to mask mode).
	DES-opencl: Use mem_alloc wrapper.
	Update Unicode external dumb/repeats modes for Unicode 7.0, and add
	  some codepages for possibly dealing with "Equation Group" hashes
	  as published by Kaspersky. All generated from the Unicode
	  Database.
	Update doc/ENCODINGS.
	Fix bogus include paths (using quotes where there should be brackets).
	Ensure Makefile dependencies for opencl_DES_hst_dev_shared.h
	DEScrypt-opencl: Bugfix for dupe salts. The list of binaries for a
	  given salt may have NULL entries (already cracked).
	OpenCL: Ensure that we get AMD-specific functionality even if JtR was
	  built with nvidia headers, and vice versa.
	Add a few more vendor-specific OpenCL macros in case they are not
	  present in headers.
	DEScrypt OpenCL: get rid of a warning about comparison of integers
	  of different signs.
	Cosmetic tweak (on error) for fcntl locks.
	OpenCL: Use locks when reading/writing cache files.
	memdbg: Fix calloc bugs. Closes #1062.
	DES-opencl bugfix. I got "Get key error! 50 1575" until I did this,
	  and with this fix it cracked a hash at that point.
	Copy test vector plains to full-size buffers outside of hot loops so
	  we get a better raw speed benchmark figure. Closes #1054.
	Add CRAM-MD5 support to HMAC-MD5 format, using the raw Base64
	  strings prepended with a Hashcat-compatible tag. Closes #1018.
	We've had an odd prototype for mem_calloc() ever since implemented
	  in 36416c5. As much as I hate this no-op commit it makes it
	  easier to import code in the future.
	Fix regex.h for new path of rexgen header.
	hmac-SHA384 bug fix. Closes #1063.
	Fix a bug in hmac-MD5 and hmac-SHA1, and unify HMAC code.
	Revert recent changes to HMAC formats and make the correct fixes.
	  Better fix for #1063 (the previous fixes were OK but used larger
	  buffer sizes than necessary).
	Disable raw-sha1-linkedin if SHA1_SSE_PARA > 3. Closes #454.
	Bug fix for edge cases in wordlist mode using mmap(). Hopefully
	  addresses #1025.
	Bug fix (ASAN) in HMAC-MD5 for CRAM-MD5 conversion. See #1067
	Add our own strnlen() unless system has one.
	Add a self-test for catching buggy SIMD implementations using 0x80 as
	  end of data. 0x80 can be anything, for example a euro-sign in
	  CP1252. You can't ever use it for detecting end of data!
	XSHA512: Fix a bug that would truncate any plaintext containing 0x80.
	MSSQL12 SIMD support. There's some overhead in set_key() that's
	  hard to work around without writing totally unreadable code.
	MSSQL12: KISS fixes for SIMD: Simpler buffer cleaning and use flat
	  buffers. Speed is about the same (or better) and code is much
	  simpler and potential bugs are squashed before they showed up.
	Replace more deprecated des_ methods and calls with the DES_
	  counterparts.
	Fix bogus line endings in cryptsha256_common.h (it had a disgusting
	  MIX of LF and CRLF).
	sha256crypt: Allow - but truncate - salts longer than 16.
	sha256crypt-cuda: Bump max length to 23. See #1077. This format
	  probably should be able to do 24, but then it loses some in the
	  Test Suite due to a bug somewhere.
	Pending core change in cracker.c. Ensure get_key() is not called
	  (via status.c) after clear_keys() was called. Closes #1076.
	Pending core change in cracker.c. Ensure get_key() is not called
	  (via status.c) after clear_keys() was called. Take 2. Closes #1076.
	Drop a few empty clear_keys() functions and use fmt_default*
	Revert "bcrypt / opencl: created a BF_common set of functions / data"
	Enforce C89 for gcc-5.x (it defaults to C11). See #1093.
	Notify user of ASan affecting speed if she tries to benchmark (we
	  already did for -DDEBUG). I have ended up chasing non- problems
	  a couple of times because I forgot I was running an ASAN build
	  o.O
	Move our strnlen() function to jumbo.c, where we have other such
	  functions. Basically, misc.c is for our "own" functions while
	  jumbo.c is for functions that many systems already have, but
	  some systems do not. Like in this case: We only implement the
	  strnlen() function unless it is available in libc.
	Revert "siemens: only validate a 1. Since we now have split, a 0
	  should not be valid any more"
	MSSQL12 bugfix for non-MMX/SSE2
	Add a bunch of known mappings between OpenCL driver version and
	  Catalyst driver version (and name).
	OpenCL, --list=opencl-devices for Catalyst (cosmetic)
	Drop the "[CPU]" after OpenCL version number, it's redundant.
	Revert a test vector in siemens S7 format to it's original format.
	Cosmetical changes to OpenCL SHA512 formats: PLAINTEXT_LENGTH was
	  used in a confusing way. Change to match our conventions. These
	  changes are verified with TS for good measure.
	Merge an optimization for HH() in md5.c originally commented as
	  "Help the compiler detect a common subexpression between steps in
	  round 3."
	MD5_std.c, md5_go.c, md4.c, NT and some GPU MD4/MD5: "common
	  subexpressions in round 3" optimizations.
	sse-intrinsics.c: Use _mm_set1_epi32(n) instead of
	  _mm_set_epi32(n,n,n,n) when applicable. This is 100% cosmetical.
	Refactor MMX_COEF -> SIMD_COEF_32
	MSSQL12: Avoid build warnings on non-SIMD
	Add README-jumbo on top of README.md
	OpenCL: More use of shared code.
	Change mem_alloc_tiny() to malloc/free for large buffers in a bunch of
	  formats. This mitigates memory leaks when running --test with a
	  huge number of threads (eg. MIC/Xeon Phi) or with --stress-test.
	  It matters less for a real crack run. I picked some of most
	  common formats here plus the ones with largest OMP_SCALE figures
	  for a starter.
	Dynamic: Use malloc/free for buffers. This fixes the real show
	  stoppers, but there's still plenty of memory leaking when
	  running eg. "../run/john -stress-test=0 -form:dynamic".
	Use malloc/free for buffers; Another bunch of formats.
	Mass refactoring of saved_key_length -> saved_len to ease scripted
	  changes.
	Use malloc/free for buffers; Yet another bunch of formats.
	bench.c now resets the Unicode system, formats need not care.
	Revert a torrent of trigger-happy-commits and start using
	  posix_memalign() or aligned_alloc() for mem_alloc_align - drop
	  the extra pointers.
	Waste a couple of cycles for each alloc just to mute the ridiculous
	  compiler warning "possibly uninitialized variable" - which is
	  isn't.
	Fix a couple of ASan crashes caused by erroneous $tag$*.
	Avoid re-declaring _XOPEN_SOURCE (core code clash with autoconf)
	If mem_alloc_align() fails, exit with message telling what size
	  was requested.
	OpenCL fixes. More unifying of SHA1 ahead.
	RAR5 OpenCL bugfix: Wrong "cost" (iteration count) reported due to
	  casting to incorrect (GPU side, should be core side) salt type.
	OpenCL shared SHA1 and MD4/MD5 cleanup and bugfixes.
	AMD bug workaround re-implemented in new shared SHA1 for OpenCL.
	Fix OpenCL formats for strtokm(). See #1108.
	Fix for that stupid AMD driver bug workaround for SHA1, for mixed
	  vector/scalar formats.
	Use -Og for debug targets if compiler supports it. Closes #1113.
	GPG-opencl failed due to changes half-assed merged from CPU format.
	  Closes #1119.
	Change strok() to strtokm() in all formats but SKEY. See #1108.
	It turns out a bug workaround for Catalyst 14.9 *triggers* an other
	  bug in older drivers... Doh. Addresses #908.
	Change strok() to strtokm() in shared files that were missed. See
	  #1108.
	PDF had a `strtok (` that didn't get replaced. Closes #1108 again.
	OpenCL: Implement an optimized SHA512 for the case where half of
	  the block is zero (as in PBKDF2). Just a slight boost, I guess
	  the compiler did much of it already.
	GPG: Needed to treat $gpg$* as the effective tag. And bump plaintext
	  size.
	GPG: Bump max length to 125, and fix some code to adopt to
	  PLAINTEXT_LENGTH. The OpenCL format already behaved well in that
	  aspect but had some other non critical bugs leading to
	  suboptimal code. I also unified some code to ease comparing side
	  by side.
	GPG OpenCL: Alternate leaner code, trying to make it work on more
	  nvidias.
	GPG OpenCL: Much leaner code. Still does not work on all nvidias.
	GPG OpenCL: Disable leaner code for nvidias.
	Disable "cost" support in CUDA sha2crypt formats. They were buggy
	  and not trivial to fix. Closes #1118.
	Strip format, fix an ASan regression from 70f3b95a (I guess)
	Cosmetic: Address clang warnings. Closes #1126.
	Fix a "binary() returned misaligned pointer" in phpass/dynamic.
	  See #1127.
	AC: protect a variable with quotes in some tests.
	OpenCL raw-md4: Correct mask mode behavior when GWS is supplied. We'll
	  use the figure as-is but we still print a message about internal
	  generation.
	Add some debug/benchmark stuff to raw-md4-opencl. For GCN and Maxwell,
	  I see no difference at all between different versions of the
	  HH() optimization - or not using at all.
	OpenCL raw-MD5 GPU-side mask: Change GWS divisor to a more suiting
	  figure. This is significantly faster (on both GCN and Maxwell)
	  but still a compromise: Both auto-tunes to 4M, the HD7970 works
	  best at 8K and Maxwell at 16K. We need to auto-tune *with*
	  candidate mask!
	SHA256 OpenCL: Mute complaint from picky compilers
	pass_gen.pl: Do not list formats as supported when they are not.
	  Closes #1132.
	mem_calloc_align had its parameters reversed. Not that it matters.
	Change calloc_tiny to calloc/free in many formats. See #1110.
	Fix a bug introduced in b9e13c38, closing #1139.
	Change calloc_tiny to calloc/free in 14 formats. See #1110.
	AC: Include CPPFLAGS when creating fmt_externs.h and fmt_registers.h
	  just in case it matters in some situation. Closes #1137.
	Fixes for building "icc .S files". See #1065.
	Update the icc pre-built see-intrinsics.S files, using the icc on
	  super: "icc version 14.0.0 (gcc version 4.4.7 compatibility)"
	  Closes #1065.
	Fix a bug in MD5 introduced in 2e33cfd. Closes #1142.
	Fix a copy/paste bug in DMD5. Closes #1143.
	Most OpenCL formats: Auto-tune in reset().
	Bugfix in o5logon-opencl.
	Fix GPG-opencl for nvidias.
	Optimizations for oldoffice-opencl that are also workarounds for some
	  AMD driver bugs.
	OpenCL: The recent AMD change for PUTCHAR re-triggered the damn AMD
	  bug in oldoffice. Introduce a new macro for preferring the
	  non-cast alternative but default to the cast one.
	Stop Lotus5-opencl auto-tune from overflowing on fast devices.
	Lotus5-opencl, auto-tune limit.
	README-OPENCL update.
	Common OpenCL auto-tune: Temporary changes to handle auto-tune
	  with GPU-side mask. See #1136.
	Common OpenCL code messed around with bench_running flag, this lead to
	  problems and should no longer be needed anyway.
	mask.c: Allow actually using some other mask than options.mask
	  (possibly for auto-tune or benchmark).
	Fix search/replace mistakes in comments in OpenCL MD4.
	encoding_data.h: CP720 had (lack of) case conversion incorrectly
	  specified. Closes #1158.
	Support fallback to older clang syntax for Address Sanitizer.
	Fix a segfault when --users option resulted in no hashes loaded,
	  and an encoding was used. Closes #1164.
	Prince format lacked some length checks. Closes #1163.
	Fix a "theoretical" bug (ASan) in Prince. Closes #1162.
	Fix alignment issues. Closes #1133.
	Fix a bad bug introduced by f6af7d7: --show=left was broken for
	  all formats but dynamic. Closes #1130.
	Refactor salt() -> get_salt() and binary -> get_binary() in most
	  (Jumbo) formats that did not already use those names.
	Do not allow negative numbers for --mkpc. Closes #1166.
	Prefer posix_memalign() over aligned_alloc() as a work-around for
	  an ASan shortcoming. See #1159.
	Complete the previous patch: Prefer posix_memalign() over
	  aligned_alloc() as a work-around for an ASan shortcoming. See
	  #1159.
	Comply with the strange restriction of aligned_alloc() that "size
	  should be a multiple of alignment".
	Less intrusive implementation of --mkpc. We do not alter format's
	  view of max_keys_per_crypt, just cracker.c's. Closes #1167.
	--mkpc is now a no-op for --test so do not allow it.
	Disallow some options unless we are running a cracking mode.
	Handle --mkpc in an even safer way. This handles the situation
	  where max_keys_per_crypt changes during a run.
	Raw-sha1-ng and shared intrinsics code incorrectly reported using
	  AVX, while they actually use at most SSE4.1 if no XOP.
	Change the dump_stuff() debug functions so they don't spew out
	  warnings.
	Add a pseudo_intrinsics.h function, for abstracting intrinsics from
	  the actual vector width.
	raw-sha512-ng: Use pseudo-intrinsics.
	raw-sha256-ng: Use pseudo-intrinsics.
	raw-sha1-ng: Use pseudo intrinsics.
	Q'n'D fix for a problem with cprepair.
	vtestz was not available on Travis' clang.
	Fix regression problems with clang from recent patches.
	Drop an extraneous paren from pseudo-intrinsics header.
	Fix a benign bug in raw-sha1-ng
	Drop an unused variable in raw-sha256-ng.
	Fix an issue with non-AVX SSE4.1 or SSSE3 systems Closes #1180.
	Fix incorrect function declarations for cmp_all() and cmp_one()
	Drop experimental code for OMP_SCALE, closing #1181.
	When we do not request membdg, really do not let it interfere with
	  anything at all. See #1125.
	Fix for cross-compiles on OS X, using SSE4.1 but not AVX.
	Add a parameter to configure, --enable-experimental-code, that
	  sets USE_EXPERIMENTAL macro. This way we can merge incomplete
	  features but have them disabled unless user asks for them.
	Make it possible to leave Dynamic format out entirely from a
	  build. And do so by default for AVX2, unless the option
	  --enable-experimental-code was given to configure.
	Fix for the AC handling of AVX2 vs Dynamic.
	Use pseudo-intrinsics for sse-intrinsics.c, making nearly all
	  remaining SIMD formats AVX2/AVX512 capable.
	Various fixes for AVX2.
	Fix NT2 format for AVX2.
	Drop SIMD_COEF_BITS and just divide by SIMD_COEF instead. The
	  optimizer will change it to a bit shift anyway and code gets
	  easier to understand.
	Fix more hard-coded vector sizes. And set all the SSE_PARA's to 2
	  for __AVX2__, for ironing out problems.
	Wpapsk bugfixes for AVX2. Practically 2x boost over AVX.
	Fix hardcoded SIMD width in Office format.
	Hardcoded vector widths in Dynamic. Just the top of the iceberg.
	  Now, dynamic_30 works. Not many more of them...
	Hardcoded vector width in alignment.
	Finally nailed the MD5 problem for AVX2. Now all raw formats work.
	Fix a load of hardcoded vector widths.
	Fix algorithm names for AVX2/AVX512.
	CPU_NAME -> SIMD_TYPE
	More fixes for hardcoded vector width.
	Fixed SAP/H width issues.
	Fixed IPB and mscash2 width issues.
	Fixed mysql-sha1 and nsldap width issues.
	Slow workaround for Office format. I have yet to get the original
	  implementation to work with AVX2 - something is not right with
	  the width macros.
	Vector width fix for md5crypt. But it still doesn't work.
	Fix hardcoded vector widths in RAKP.
	Fix hardcoded vector widths in salted-sha1.
	Fix hardcoded vector widths in sunmd5. Still does not work with AVX2.
	Fix hardcoded vector widths in SAP/B.
	Fix regression problems from Lei's recent fix.
	Finally fix the inherent problem with raw-sha1-linkedin's source(),
	  that would not cope with certain combinations of vector width
	  and interleaving, and also did not allow crippled test vectors.
	Fix 64-bit index calculation for widths > 4.
	Fix hmac-sha256 vector width.
	Fix hard-coded widths SAP F/G format.
	SunMD5, fix hard-coded vector widths. Closes #1191.
	Oracle11, fix hard-coded vector widths. Closes #1190.
	Finally nailed md5crypt vector width. Closes #1192.
	It appears we can use same PARA values for AVX2 as for AVX.
	Add a few more easter egg format classes: -form:avx, -form:avx2
	  and -form:avx512.
	Some cleanup in pseudo_intrinsics.h, and an optimization for MIC
	  emulation of _mm512_loadu_si512() that should do lots of good in
	  most cases.
	pseudo-intrinsics.h cosmetical/whitespace/comments.
	sse-intrinsics.c whitespace/comments cleanup. And finally drop the
	  old 80x4 SHA1 that we stopped using long ago.
	Dynamic: Change a few hardcoded width figures to correct formulas.
	  These changes make a few more formats pass self-test. See #1189.
	Width fixes in Dynamic. See #1189.
	Algorithm name tweaks.
	Minor algorithm name fixes.
	More algorithm name fixes. We are not displaying "block loops",
	  it's just confusing.
	More algorithm name fixes. Some were completely backwards.
	It turns out I'm the one who was backwards w/ algorithm names.
	Last bunch of fixes to algorithm names.
	Yet some algorithm name fixes.
	Drop confusing mentions of "sse2" in config. Closes #1193.
	Add an ifdef'ed out scalar version of vtranspose_epi32() (in the
	  AVX2 section) for reference and benchmarking. See #1201.
	The _mm*_i32gather_epi32() intrinsic has different parameters for
	  different architectures:
	Cleanups for raw-sha1-ng. Drop vtranspose_epi32 from
	  pseudo-intrinsics.h and revert the 4x code to a format-local
	  macro with its original name. Also re-write some ugly
	  width-dependent code to be more canonical and fix some white
	  space problems.
	Separate int128.h from mpz_int128.h, and fix raw-sha1-ng in that
	  regard.
	Add some documentation about AVX2 vs. Dynamic format.
	Auto-disable dynamic format for k1om (MIC) also.
	AVX2 fixes for 32-bit builds. See #1205.
	Fix for legacy generic build after AVX2 support was added.
	Fixes for generic builds.
	Fixes for generic. See #1205.
	Some plugins could not just be deleted, so make them non-plugs.
	  Closes #1170.
	Drop the binary plugin interface that no-one uses. Closes #1124.
	Fix a typo in configure.ac
	Allow building with no plugins present. Closes #1207.
	Add some documentation about how to disable AVX2.
	Autoconf: Add support for detecting AVX512. Also fixes a bug with
	  XOP erroneously regarded as better as AVX2.
	Autoconf: Move the OS X as(1) quirk prior to all feature tests.
	Autoconf: Do not test for AVX512 unless we have AVX2.
	Drop dupe macros from pseudo_intrinsics.h and tweak non-XOP
	  rotates.
	Cosmetic change (unify code) to pseudo_intrinsics.h.
	wordlist.c: Use pseudo-intrinsics for SIMD mgetl().
	Fix a bug in vroti_epi16() (which is not used yet anyway).
	sse-intrinsics.c: Implement the "MD4/5 common XOR" but leave it
	  defined out since it seems to be slower no matter how I do it
	  (reason yet to be examined).
	MD5: 9% boost just by moving code around (this was with gcc 4.8.2 and
	  AVX2)
	Pseudo-intrinsics tweaks for AVX2.
	Change a few int's to unsigned in sse-intrinsics.c. 1% boost in eg.
	  wpapsk and md5crypt.
	Revert some intrinsics tweaks that had dubious benefit.
	OpenCL RC4: Use restrict pointers.
	Autoconf: Detect AVX512BW as well.
	AC: Assume that there's no point in testing for AVX512BW unless we
	  found AVX512F.
	AC: Same as previous commit but for cross compiles.
	Drop a vim swap file accidentally added in 2f8bc4871
	Correct some algorithm names.
	Fix the length stuffing in dynamic, taking us a good bit closer to
	  AVX2+ support. See #1189.
	Fix more hardcoded width crap in Dynamic. See #1189.
	Cruical AVX2+ fix for dynamic. Fixes most (all?) segfaults but
	  some formats still fail self-test. See #1189.
	Yet another bunch of width fixes in dynamic. See #1189.
	Possibly the last bunch of width fixes in dynamic. Closes #1189.
	Do not disable dynamic format for AVX2 anymore. Closes #1189.
	Drop obsolete dynamic vs. AVX2 notices.
	Dynamic, change lots of variables to unsigned, enabling optimizations.
	Ensure unsigned divisions with SIMD_COEF_32/64 for faster code.
	Major white-space clean-up to common-opencl.[ch] First:
	  indent -kr -i4 -ts4 -nlp -nbbo -ncs -l79 -lc79 -bad -il0
	  common-opencl.[ch] and then: astyle --style=kr -t4 -U -H
	  -p -xC79 -c -k3 -z2 common-opencl.[ch]
	Fix a bug in --list=opencl-devices that caused "Max clock (MHz)" to
	  show a totally bogus number on some (rare) devices.
	Drop obsolete header from wordlist.c (we now use pseudo-
	  intrinsics.h)
	Fix a logic error in #ifdefs for including mman.h. This should
	  close #1214. It's strange we did not get complaints on many
	  systems.
	Add an experimental clone of raw-md5 that uses flat buffers for
	  SIMD. For now it uses Tavis' SSE set_key() from his raw-sha1-ng
	  format, but this will be dropped in favor of some upcoming code
	  in sse-intrinsics.c. See #1220.
	Reformat Jim's unreadable 650-column wide comments in
	  see-intrinsics-load-flags.h, and add a few more flags (yet to be
	  actually implemented) to the enum. See #1220.
	Bug fixes for raw-md5-flat. And drop the SIMD set_key().
	Fix mixed declarations and code in pseudo-intrinsic.h
	Fix memdbg for alignments larger than 16. Also fixes some other
	  minor problems (warnings). Closes #1200.
	Always define _DEFAULT_SOURCE when defining _BSD_SOURCE. Closes
	  #1227.
	pkzip: Fix a cast that could lead to undefined behavior from
	  overflowing signed integer. Closes #1232.
	OMP_SCALE tweak for raw-md5.
	Promote "nt2" to be main "NT" format. Rename old "NT" to "NT-old".
	  Closes #1226.
	NT OpenMP overhaul. This format should not run in HT threads.
	listconf.c: Always call fmt_init() now that OpenCL formats are fixed.
	03404dfd broke for any system using gcc but not glibc. Just
	  comment it out for now.
	Fix a bug in pp.c where munmap() was called even when we do not
	  HAVE_MMAP. And add a warning notice when building without mmap.
	AC: Change the way we look for mmap(). Closes #1214.
	Add a format_all_done() for silencing memory leak checkers. Closes
	  #1244.
	Fix a gigantic memory leak in dynamic when using --show and an
	  input file containing many different formats. See #1244.
	Fix minor memory leaks in dual-use formats. See #1244.
	Define _POSIX_SOURCE for glibc builds, for exposing fileno(3).
	Let AC handle definition of _POSIX_SOURCE. Closes #1263.
	Add a self-test fail for get_key() returning NULL.
	Improve StatusShowCandidates so it logs the exact candidate number
	  for a crack. Screen output will still be rounded up to batch
	  size. Closes #1269.
	memdbg: Fix alignment up to sizeof(vtype) for 32-bit builds.
	  Closes #1270.
	memdbg: We were adding too much padding for 32-bit. It worked but
	  was wasteful. See #1270.
	Revert "crypt-descrypt: for length-13, we never disable, since they
	  are in ST code"
	Fix the slow AVX2 bug workaround in Office 2013 and add other
	  optimizations to boot. 65% speedup for -cost=2013:2013 (and now
	  an actual 2x speedup over AVX). Also hopefully fixes latent bugs
	  with interleaving.
	Stop requiring libz. It's only needed for pkzip format and
	  gpg2john.
	Add some missing codepages to opencl_unicode.h
	DMG (debug): Use fcntl locks if we have it.
	Update .travis.yml
	Update README.mozilla for mozilla-ng format
	Update INSTALL-UBUNTU for latest rexgen (and drop obsolete libs).
	Drop some artifacts from old MMX support.
	Drop @Z_LIBS@ from Makefile.in - or it will be added either twice
	  or when not appropriate.
	Revert "Drop @Z_LIBS@ from Makefile.in - or it will be added either"
	Fix OS X as(1) workaround in cases where CC is not "gcc". Closes
	  #1293.
	Minor and cosmetic tweaks for raw-sha1-ng.
	krb5pa-sha1 formats: Salt cleansing, for pot sync to work properly.
	Fix OpenSSL/CommonCrypto output. Closes #1299.
	options.c: Bail with error if an invalid field separator char (eg.
	  multi-byte character) is used.
	Reduce scope of a pot-sync variable.
	sunmd5: Fix #1301 and also implement various changes for OpenMP
	  that was discussed on john-dev.
	Fix a repeated bug in many SIMD formats that had min_keys_per_crypt
	  set to 1 or to SIMD_COEF without para multiplier. It's supposed
	  to be set to whatever number is calculated at minimum, so for
	  SIMD formats it should be (SIMD_COEF * SIMD_PARA).
	OMP_SCALE tune for sha1crypt. See #1303. Higher numbers may be
	  slightly better but impacts self-test duration too much.
	Work around AES-NI problems with 32-bit builds.
	Fix misaligned return from binary() in IPB2 and Lotus5. Closes
	  #1291, closes #1304.
	Add struct alignment in sunmd5 that was missed in 7910681c
	gpg2john: implicit int declaration.
	Add another solution to #1093. This make it possible to build
	  using gcc 5 without --std=gnu89 (although I kept the latter for
	  now). See also #1250.
	ALWAYS_INLINE: Revert last commit and implement a different
	  solution. See #1093.
	keyring: Alloc a huge buffer instead of trying to create it on stack.
	  Works around a problem on some 32-bit builds and does not affect
	  speed anyway. Closes #1292.
	pufferfish: Fix incorrect source file permissions.
	Add missing FORMAT_NAME for streebog formats.
	Stribog: Properly emulate epi64 intrinsics for 32-bit builds. And
	  disable format completely unless SSE4.1 is available. Tested on
	  32-bit OSX. Closes #1331.
	Sledge-hammer bodge for pp.c fileno() warning in Cygwin.
	Default to not enable OpenMP for fast formats. Closes #1325.
	Fix Pomelo algorithm_name for SSE2 case. I believe the format uses
	  SSE2 in single-hash calculation, so it says 1x.
	Stribog formats use SSE4.1, but not for doing several hashes in
	  parallel. So change algo to 1x.
	Do not treat SHA256/512-ng formats as "fast" ones when it comes to
	  OpenMP.
	truecrypt_volume2john: Add a missing LF
	Revert "Sledge-hammer bodge for pp.c fileno() warning in Cygwin."
	Repeats16/32: Increment char before length (b will now come before
	  aa). This greatly benefits formats where length variations cause
	  thread (or branch) divergence.
	Fix a bug in rar2john for decoding non-ASCII filenames when stored in
	  compressed form. Did not affect crack, just meta data (eg. Single
	  mode).
	Tweak error output in wpapcap2john.
	wpapcap2john: Add some rigidity against bad input. Closes #1340.
	Finally start defaulting to UTF-8. Closes #1215.
	Pomelo: Drop some checks that are always false (unsigned < 0).
	  Closes #1343.
	keystore2john: Drop some checks that are always false. Closes #1342.
	Fix a problem with debug builds and gcc 5.x. Closes #1286.
	Bump max length in GOST R 34.11-94 format. There's no reason for
	  us to artificially limit it. Also fix HMAC-GOST code (not yet
	  used).
	Stribog: Don't compare too much in cmp_all() - but on the other
	  hand *do* compare all of the hash in cmp_one().
	Many formats: Don't compare too much in cmp_all(). There is a
	  reason we separate cmp_all() and cmp_one() for crying out loud.
	  Hopefully this Q'n'D fix compiles to a simple binary[0] ==
	  crypt_key[0] in many cases.
	BFEgg has a binary size less than 8, do not memcmp ARCH_SIZE.
	mem_alloc_tiny(): If -DDEBUG or -DMEMDBG, never return better
	  alignment than requested (for triggering bugs). See #1195.
	Truecrypt: Fix a debug code buffer that was undersized.
	Fix non-AVX2 builds after the previous patch.
	Add SIMD_PARA_SHA256/512 macros to mic.h and x86-sse.h.
	Dynamic: SHA2 interleaving fixes.
	Show SHA2 interleaving factor in algorithm names if applicable.
	Do not use "pragma GCC optimize" for ASan builds.
	SHA512 SIMD interleaving bug fix.
	sha512crypt: Interleaving fixes. Tested with para 3 so far.
	sha256crypt: Interleaving fixes and some unification with sha512crypt.
	  Tested with para 2 & 3 so far, and AVX & AVX2.
	SHA2 interleaving fixes. More to come.
	sse-intrinsics.c: Asan builds was unbearably slow without using
	  #pragma GCC optimize... To get that, use Asan and build with
	  "make debug".
	Fix non-OpenMP build problems introduced with b96ed88f.
	Add all aliases to --list=encodings, and fix bash completion for
	  multiple "or". Closes #1352.
	HMAC-SHA2 formats, interleaving fixes (not complete).
	XSHA512 interleaving fixes (not complete).
	SHA2 interleaving fixes.
	Drop redundant SHA256/512_BUF_SIZ macros. They are all 16 so we don't
	  need different ones.
	SHA2 interleaving fixes.
	AIX-SSHA512 bugfix.
	SHA2 interleaving fixes.
	Blackberry: Interleaving bugfix, and correct algorithm name.
	rawSHA224/256 formats: Fix interleaving (now passes Test Suite).
	rawSHA384/512 formats: Fix interleaving. Still fails but I'm pretty
	  sure the problem is in sse-intrinsics.c. Except I can't find any
	  problem there...
	Fix a SHA512 interleaving bug in sse-intrinsics.c. Lei did the
	  right thing, then I blew it.
	Interleaving bugfix in Drupal. Still doesn't work.
	Final interleaving bugfixes in Drupal.
	Interleaving bugfixes in MSSQL12
	Interleaving bugfixes in XSHA512.
	Minor regression fixes after SHA2 interleaving battle.
	Add a testparas.sh script. See #1297.
	testparas.sh LF and OMP fixes.
	Refactor MD5_SSE_PARA -> SIMD_PARA_MD5 and so on. See #1217.
	Pomelo and SunMD5: Fixes for non-SIMD builds.
	SybaseASE: Handle truncated key length. See #1367.
	Implement SSEi_FLAT_OUT for simpler format code. SHA512 and MIC may
	  hopefully use the new scatter instructions here.
	Use new SSEi_FLAT_OUT in formats that did marshalling in caller.
	Bump Keepass max. length to 125.
	Fix a minor OMP_SCALE regression from 87fab5b.
	sse-intrinsics.c missed LF on last line from 84bd73e0c. I've seen
	  compilers choke on that.
	Use vscatter for SSEi_FLAT_OUT in MD4 and MD5 too.
	Add codepage.pl as seen on john-users mailing list.
	testparas.sh: Ensure using OMP_SCALE=1 while testing. Also change
	  all formats to use any existing OMP_SCALE if defined. This is for
	  automated testing (obviously not limited to testparas.sh).
	Fix SSE2 vswap64() macro. We change in-place *and* return the
	  result. See #1373.
	More #ifndef OMP_SCALE wrappers. Last one-liner wasn't good enough.
	Add SIMD support to new Oracle 12c format.
	sse-intrinsics.c: Wider interleaving loops, and as a result use
	  non-array temp variables. See #1217.
	SHA1 intrinsics: Drop a whole array of redundant temp. We can use
	  the existing pad array! And decrease SHA1_PARA to 1 because
	  that's faster now.
	Fix bug for SSEi_FLAT_IN introduced in b3fb17c7b, and drop yet
	  another temp variable. Closes #1375.
	sse-intrinsics: Revert to using tmp[SIMD_PARA].
	SHA512 intrinsics: Decrease the w[80] pad to w[16] using the same
	  sliding-window technique used in SHA1 and SHA256. Just a 3-4%
	  boost here but may gain more on some systems. See #1217.
	Unify SHA256 and SHA512 intrinsics. Effectively a no-op, but
	  simpler code. See #1217.
	Add an EMMS at HDAA MMX function exit (icc warned about it).
	Mute a warning from some compilers about see-intrinsics cast.
	Intrinsics: Safer casting (union) between vtype and integer.
	Replace testparas.sh with testparas.pl, with Markdown table
	  output, ready for pasting in GitHub.
	Add non-OMP figures in testparas.pl
	Improve testparas.pl for quicker run and real non-OMP figures.
	  This is very hacky but does the job.
	krb5pa-md5: Improve comments on input format.
	Keepass: Avoid a compiler bug related to SALT_ALIGN. Closes #1284.
	Add CRC-32C format with SSE4.2 support, just for trying it out.
	  See #1379.
	Use a unique tag for CRC-32C.
	Re-enable SIMD for Truecrypt/SHA512. Closes #1421.
	Fix a bug in last commit spotted just by review. We need test
	  vectors for this! See #1421.
	Add error handling for keyfile operations in truecrypt.
	doc/MASK: Fix a typo and do not use tabs.
	Drop the separate CRC-32C format (CRC-32 format now hosts both).
	Drop the recently introduced Lineage format. It wasn't ready.
	Add "cost" support to CRC-32 format, mainly to facilitate benchmarking
	  CRC-32C separately (using --cost=1).
	Whitespace/cosmetic in raw-md4-opencl
	Add GPU-side mask mode to raw-md5.
	Drop some obsolete/redundant stuff from CRC32 format.
	Tweaks to README.md: Slightly smaller heading, put license last.
	Fix a segfault in some OpenCL formats when ran after another.
	raw-sha512-opencl: Fix re-init bugs.
	Fix for plugins that are #ifdef _OPENMP (they were never included).
	OpenCL formats: Fix a problem with --list where fmt_done() is
	  called without create_clobj() being called first. Closes #1237.
	Drop an old kludge for nvidia rotates and fix weirdness in pwsafe
	  code (cosmetical).
	Core merge for Makefile.legacy. Git lost track of the connection
	  with master:src/Makefile after some screw-ups we did in the past.
	Update rexgen.h for latest librexgen.
	Support Tera prefix for C/s numbers.
	Revert bogus change of raw-md5-opencl format tag, plus some minor
	  (cosmetic) fixes.
	Add generic pbkdf2-hmac-md5 OpenCL format.
	Add SIMD support to pbkdf2-hmac-md5. Closes #1446.
	Add 1000x test vectors to pbkdf2-hmac-md5.
	OpenCL raw-md4/5 formats: Correction for assert.h, it was given in
	  quotes instead of brackets.
	Another try handling the CircleCI problem with MD5 internal CTX
	  struct.
	Add 'const' to our own MD4 and MD5 update functions.
	Mute some compiler warnings (gcc 4.4.7, possibly false positives).
	Add a pbkdf2-hmac-md4-opencl format, for testing purposes.
	Correct some confusing format struct names.
	Add a pbkdf2-hmac-md4 format, for testing/benchmarking. Also
	  change testparas.pl to use the PBKDF2 formats for MD4 and MD5
	  and add some test vectors so we always do 1000 iterations.
	Selectively mute some output from testparas.pl.
	Fix for clang not compatible with gcc despite claiming to *be* gcc
	  (which proves that's a dumb ass claim).
	Add const to MD4/MD5 Update functions. I already did this but
	  jfoug decided to drop them without discussion. Do not do that, I
	  didn't add them by accident.
	MD4/5 const stuff.
	#undef MIN/MAX macros before defining.
	Add CPPFLAGS to cprepair target.
	Drop a dupe macro definition from raw-sha1-opencl
	bcrypt-opencl: Only use privat mem (as opposed to local) for
	  Maxwell and above.
	Ignore "Idle=Y" when running an OpenCL or CUDA format. See #1460.
	Work around an OSX OpenCL driver bug for Intel HD4000 where
	  profiling info sometimes end up with end-time == 0. In the cases
	  seen, we can just ignore it (set end-time to start-time). Let's
	  hope we don't see more of this bug.
	Improve OpenCL version detection.
	OpenCL 1.2 formats: Move slow function call out of inner loop.
	Add a workaround for what I believe is a driver bug in OS X for
	  nvidia (seen on GT650M driver version 10.2.7 310.41.25f01). See
	  #1459.
	BF-opencl: Use private memory for nvidia sm_30 & sm_35 too.
	Turns out only Kepler benefits from using private memory in
	  bcrypt-opencl. The Maxwell is 6.5x faster using local memory.
	OpenCL fixes after #1456 and #1457.
	SHA512 OpenCL: Workarounds for OSX' nvidia & HD4000 driver bugs.
	  Closes #1464 (even though HD4000 now fails instead of crashes).
	Unify OpenCL formats / use shared code.
	pass_gen.pl: Drop misplaced 'require' lines for Haval. The point
	  of using 'require' instead of 'use' is we only place them where
	  actually needed. I can't currently build the Haval stuff from
	  CPAN, for some reason (fails self test).
	Revert "Add build timestamp to --list=build-info"
	Add -Wdate-time if compiler supports it. JTR_FLAG_CHECK is a gem!
	Add git commit hash to --list=build-info. Also move non-version
	  strings like "debug" and "OMP" to the *build* info.
	I was hoping this would fix a dependency problem with version.h,
	  but it doesn't. It does update version.h if needed, but listconf.c
	  may already have decided dependencies being OK.
	Fixed dependency problem (I think) with version.h
	Ensure "usage" version is same as "--list=build-info".
	Drop a level macro that broke all real builds.
	We can't use OpenCL 1.2 commands without wrapping them in #ifdef.
	  Addresses #1470.
	If we are a "release build", never show Git hash in version string.
	Kludge for ADL device id matching with Catalyst > 14.9 and
	  dual-chip devices. I'm out of (printable) words for AMD.
	Change our OpenCL run-time support macros: APPLE -> __APPLE__
	  DEVICE_IS_CPU -> __CPU__ And add __GPU__ too. The __CPU__ and
	  __GPU__ macros are defined by AMD but we make sure they get
	  defined when not using AMD too.
	pbkdf2-hmac-sha512-opencl: Apply some bugfixes from CPU version.
	  Closes #1476.
	Allow an option argument string to contain an equal sign when the
	  delimiter is a colon. Closes #1481.
	Revert 734dc42 and re-implement parts of it in a way that doesn't
	  force you to use a fkn pager to read the output.
	Drop an unjustified chain of ifdefs for debug build warnings in
	  bench.c
	Fix a bug in configure from d9293dc.
	Some dynamic formats had the ambiguous text "first 32 bytes".
	  Change it to "hash truncated to length 32". Closes #1482.
	Bugfix for POSIX va_args usage in dynamic_compiler.c. You can't
	  re-use the va_list, you need to copy it.
	See if we can have Travis test OpenCL (CPU) builds.
	Fix a perl warning and a missing linefeed in testparas.pl.
	testparas.pl: show OMP/GOMP params
	2nd try getting OpenCL into Travis
	OSX OpenCL: We can't -D__APPLE__ because it clashes with system
	  stuff when using the CPU device. Refactor to __OS_X__.
	RAR3 formats: share about 700 lines of code. See #978.
	RAR5 formats: Reject bogus iteration count. Closes #1493.
	OpenCL verbosity tweaks.
	DEScrypt-opencl: Use "safe goto" for newer AMD drivers. Closes #1496.
	nt-opencl: Silence a compiler warning.
	OpenCL: Verbosity tweaks.
	Core: Always pass database to reset(), if we have one.
	OpenCL formats: Adopt to core change for reset().
	OpenCL mscash: Adopt to core change for reset().
	OpenCL SHA2 formats: Bug fixes after core change for reset().
	Mute compiler warnings when building without OpenMP.
	Fix -DDYNAMIC_DISABLED.
	Fix name case for pbkdf2-hmac-sha512-opencl
	Fix typo in Makefiles ($shell) -> $(shell)
	Silence warnings about redefining bswap32. See #1511
	Fix OpenCL version mismatch in GPU mask formats. See #1508 for
	  discussion.
	One OpenMP pragma missed in 5bd720090
	Add --list=build-info to 'make check'. See #1516.
	Silence warnings about redefining bswap64. See #1511
	Port SXC fixes to OpenCL version.
	Port Strip fixes to OpenCL version. And fix a fundamental align
	  problem with the "unsplit" PBKDF2 salt struct.
	Add -list=build-info to CircleCI. Closes #1516.
	Strip-opencl: Fix alignment warning. Closes #1519.
	Do not trust byteswap.h for things like swap(*x++). See #1520.
	magnum decided to return the address holding a pointer instead of
	  the address it contained. Dubious idea, and did not quite work
	  out well.
	Comment out defining DEBUG in build_table.c. Closes #1521.
	Boost NT format by a percent or two skipping final add, which is a
	  very modest first attempt to reversing steps...
	More reversing steps for NT SIMD format (and shared MD4 SIMD).
	  Total boost now 10% from original speed.
	Add whirlpool_plug.o to dynacomptest rule.
	Reverse steps in raw-md4 format. 12% boost. See #1523.
	Ensure out max-length self-tests doesn't make case-insensitive
	  formats fail.
	Fix cmp_all() in reversing MD4 SIMD formats. It would only check 32
	  bits when reversing steps. We don't have the half baked buffer
	  so we need to do a full MD4 in cmp_exact() but that wont affect
	  performance anyway. See #1523.
	Reverse steps (more of an early exit) in raw-md5 (SIMD). See #1523.
	Reverse last add of constants in SIMD raw SHA1. See #1523.
	Reverse final add in all (SIMD) MSSQL formats. See #1523.
	OpenCL formats: Do not compile kernel in init(). It slows things down.
	Bugfix for reversing final add in SHA512.
	Partially revert "Generate more test output for `make check`, for
	  Travis build clues"
	Pacify warning about unused variables in MD5 kernel.
	Pacify warnings about unused variables in MD4 and SHA1 kernels.
	Pacify warnings about unused variable in NT kernel.
	Fix non-SIMD builds of MSSQL formats.
	Fix #1533 (and a memory leak while at it). Sorry about whitespace
	  but it was a horrible mess of tabs and spaces.
	Add a heading for --list=format-details. Defined out for now.
	mscash-opencl claimed to fully support UTF-8 and codepages, while
	  it doesn't. This is a bad bug: False negatives!
	Fix version.h rule: -N is not a universal option to diff and we
	  don't need it anyway. Closes #1555.
	Fix for when using attribute format gnu_printf instead of printf.
	  See #1555 and 6406e51.
	It turns out even -q is not in POSIX diff. Closes #1555 again.
	Fix a bug that prevented NETLM and NETHALFLM to be removed even
	  though they are plugins. Also prepare for upcoming OpenCL
	  version of LM format.
	Add tag to bare hashes $u -> $$U preparation (if needed). Also
	  fixes some CRLF issues. See #1541.
	Fix for dynacomptest workaround. See #1541
	LM-opencl: Make device query error for warp size non-fatal. Also
	  fixes minor things like format name and benchmark len. Closes
	  #1561.
	Print CUDA version numbers in --list=cuda-devices. Closes #1534.
	Minor fixes to sha256crypt while trying to nail #1532.
	Reverse final add in raw SHA2 formats and LinkedIn format. Closes
	  #1523.
	Linkedin format was accidentally disabled for all non-SIMD builds.
	Dynamic compiler: Normalize $password -> $p. See #1543.
	Add cmpt_cp.pl, closes #1568.
	Some more white-space fixes. See #1567.
	cmpt_cp.pl was accidentally put in base directory instead of src.
	zip2john: Change default to never use file magic. Closes #1569.
	zip2john: Fix usage blob after last commit. See #1569.
	editorconfig: Let user decide his tab width. That's the very
	  beauty of using tabs!
	Fix a bug in pot sync found by Christien Rioux, where split is
	  used twice. Since split returns a static buffer, a strcmp of the
	  two results always returned 0. Closes #1573.
	Improve SSEi_REVERSE_STEPS for SHA1 for another 5% boost. The
	  Linkedin format can't reverse steps because it needs a source()
	  with larger part of binary as input to be safe.
	Update icc-precompiled intrinsics (compiled on Super).
	Fix memdbg bug in mscash2-opencl helper. Closes #1574.
	Fix "reverse sum" bug in raw SHA-224/384 and also decrease binary
	  size in a bunch of raw SHA-2 formats for smaller memory
	  footprint when loading many hashes. Closes #1577.
	MSSQL off by one bug introduced with recent reverse-steps code.
	Fix a couple of bugs in MSSQL formats before jfoug finds them ;-)
	Work around an OpenCL driver bug in OSX. See #1583.
	Rewrite some hairy code in oldoffice kernel. I'm not sure it was
	  legal (and guaranteed left-to-right) at all but even if it were,
	  some drivers had problems with it. See #1571.
	OpenCL: Add a -D__MESA__ for MESA platforms. And use it to enforce
	  "safe goto" DES kernel version for decrypt. See #1470.
	Since Mesa incorrectly claims supporting OpenCL 1.2, add an
	  autoconf function test checking for actual presence in the libs
	  found. See #1470.
	Minor fix for the OpenCL 1.2 AC detection stuff.
	Fix for non-opencl builds.
	Fix a bug in LM OpenCL for use of clGetKernelArgInfo. See #1587.
	LM OpenCL: Fix for OSX nvidia. Closes #1587.
	Bugfix for selection of LM Incremental mode.
	Automagic selection of LM-opencl codepage.
	sha256crypt-opencl: Protect some macro arguments with parens.
	  Closes #1601.
	Correct algorithm_name for non-SIMD sha512crypt.
	Bump nt-opencl to max. length 27. This adds six additions to each
	  calculation and increases a buffer size with 8 bytes.
	Autoconf: Don't enable CUDA unless user asked for it.
	Autoconf: Change --enable-rexgen -> --disable-rexgen (default is
	  we use it if found; user may want to disable it).
	Oracle12c: The SIMD implementation never worked except for index 0
	  - a whole loop was missing. See #1607.
	CRC32 bugfix: We used a function pointer to crypt_all that was set
	  in set_salt, but cracker.c and others may have already "cached"
	  its dereference. See #1607.
	Fix for non-SIMD OMP Oracle12c.
	Drop old "testpara" make targets (they are obsoleted by
	  testparas.pl). Closes #1297.
	CircleCI forced me into actually testing a non-SIMD build myself
	  and fix the Oracle12c problems.
	Tune lm-opencl for OSX nvidia.
	Emit a warning if CUDA was found but not OpenCL.
	Update README-CUDA.
	Warn if using an 8-bit incremental mode with a 7-bit format.
	  Closes #1619.
	-enc=raw (or -enc=ascii) disables CPstoreUTF8 option. Closes #1633.
	Document the fact --loopback now defaults to using rules. See #1655.
	Change %zd to %zu in a number of files. Silly.
	Regard GPU temp readings of < 10°C or > 125°C as invalid.
	Change all code to use our AES-NI (run-time detection)
	  implementation (with fall-back to OpenSSL). Heaven knows why we
	  didn't do this ages ago.
	Fix aes/ legacy Makefile for recent AES changes.
	Revert Office, LastPass and GPG formats to use OpenSSL AES since
	  our run-time-detecting AES-NI code only handles CBC mode. Closes
	  #1683.
	7z-opencl: New kernel, optimized similar to RAR3. About 65% boost and
	  now faster than oclHashcat.
	Boost 7z formats' many-salts speed a *lot*, it's KDF is effectively
	  unsalted as long as the iteration count doesn't change. Closes
	  #1679.
	Emit a warning if "many salts" benchmark did not test the full
	  BENCHMARK_MANY number of salts.
	Bitcoin: Drop OpenSSL EVP high-level crap in favor of our own AES.
	  Hopefully fixes #1667.
	RAR3 formats: Stop using OpenSSL EVP, see #1686. This ought to
	  give a noticeable boost, especially for OpenCL.
	Add missing header protection wrapper (wtf is that called?) for
	  aes.h.
	7z: Add a missing OpenMP pragma for non-SIMD and fix algorithm names.
	Add a bunch of test vectors to 7z formats.
	Fix bug in 7z for SIMD: Max supported length seem to be 27. Also fix
	  my own bug with OpenMP allocation. There are still some SIMD
	  problems so the '#undef SIMD_COEF_32' stays.
	Re-write the "extra pot files" code to use a list section. See #1623.
	doc/CONFIG: Replace a line that got lost from its section, and add
	  a bit more details/examples.
	Drop an unused variable from encfs_common_plug.c.
	OpenCL PBKDF2-HMAC-MD4/5 contrived formats: Use 2x interleaving on
	  nvidia Kepler.
	pass_gen.pl: Add a -vectors option for test vector "source code"
	  output.
	Drop silly warnings from pass_gen.pl
	md5crypt-opencl: Prepare for supporting length > 15.
	formats.c: Use strcasecmp for checking (most) format names. Also
	  trim/fix some error output.
	pass_gen.pl: Refactor a sub for checking (surrogate) UTF-16 length.
	7z: Bugfixes for SIMD. Buffers were not sufficiently allocated for
	  worst-case scenario. Also move more code into "if (new_keys)".
	  Closes #1692.
	7z: Fix for non-SIMD builds.
	Add a macro for detecting "nvidia sm_32 or better" and use it for
	  enabling Solar's inline PTX for md5crypt format.
	OpenCL NTLMv2 & SHA1crypt: Run 2x interleaved on Kepler.
	OpenCL shared pbkdf2-hmac-sha1: Tweaks for reducing GPR pressure.
	Update Catalyst major/minor -> "version" list.
	Drop pufferfish format. Closes #1702.
	Don't use __attribute__((max_constant_size())) on OS X, it's not
	  supported (emits warnings). Closes #1657.
	Loopback mode: Never assemble LM halves when target format is
	  descrypt. Closes #1654 (or so I hope).
	Tweak "recommended"/"not recommended" output for AMD versions.
	7z: Canonical fix for the confusing alloc formulas. See #1692.
	Single mode: Re-write Jim's patch for retesting guessed plains
	  against all other salts. See #1706.
	Use fewer test-vectors in 7z-opencl unless -DDEBUG - it takes too
	  long to self-test.
	Tweak for new auto-tune, fixing problem with some formats.
	Shared OpenCL code: Drop obsoleted functions.
	New OpenCL auto-tune: Print nanoseconds in human format.
	OpenCL autotune: Drop obsolete functions get_task_max_size() and
	  get_default_workgroup().
	Add ability to read all pot files in a directory. See #1623.
	EditorConfig: Use a tab width of 8 for core files.
	Break out the Jumbo additions to single mode rules to a separate
	  section (but do include that section where it was located, so
	  this is a no-op).
	SessionFileProtect: Adopt to coding style, simplify code and fix
	  error messages. Closes #1710.
	Try to address #1711. I have no idea why this doesn't work.
	Logic bug with SessionFileProtect.
	OpenCL: Change BENCH_CLERROR so it can always be used in crypt_all().
	  This reduces the risk of auto-tune aborting the process if
	  hitting a limit.
	More output from auto-tune: Show LWS when tuning GWS and vice versa.
	OpenCL: Change some %zu to portable macro.
	Add a global variable telling if we're currently auto-tuning.
	Change default (LWS == NULL) to a device query for warp size. But
	  also include other alternatives in a ladder of #if's.
	RAR-opencl: Use the new ocl_autotune_running variable to get rid
	  of the crypt_all_benchmark() function.
	WPAPSK-opencl: Use the new ocl_autotune_running variable to get
	  rid of the crypt_all_benchmark() function.
	7z-opencl: Use the new ocl_autotune_running variable to get rid of
	  the crypt_all_benchmark() function.
	Office OpenCL formats: Drop the separate crypt_all_benchmark().
	encfs-opencl: Drop the separate crypt_all_benchmark().
	krb5pa-sha1-opencl: Drop the separate crypt_all_benchmark().
	sha1crypt-opencl: Drop the separate crypt_all_benchmark().
	rar5-opencl: Drop the separate crypt_all_benchmark().
	pwsafe-opencl: Drop the separate crypt_all_benchmark().
	OpenCL PBKDF2 formats: Drop the separate crypt_all_benchmark().
	Bunch of OpenCL formats: Replace unreadable code with an existing
	  macro.
	Many OpenCL formats: Speed up autotune and make it more reliable.
	OpenCL: Make a macro vector-aware.
	RAR-opencl: Autotune fix just for good measure. I saw no problems.
	OpenCL: Drop local v_width, use the global one. Refactor
	  opencl_v_width to ocl_v_width.
	Tweak BENCH_CLERROR macro.
	Workaround for OS X weirdness with CPU OpenCL device.
	OpenCL bugfix: BENCH_CLERROR got the logic backwards after change.
	Tweak error output during autotune.
	OpenCL: Add a global variable holding the max LWS of *all* kernels.
	  For this to work, format's get_task_max_work_group_size() must
	  be correct.
	OpenCL: Don't show a build log only containing warnings/notices,
	  unless verbosity is bumped. This was the case for release builds
	  already.
	OpenCL kernel functions: Never use static, always use inline.
	GET_MULTIPLE_OR_BIGGER macro must not be vector aware. Add another one
	  instead.
	Add john.conf option for auto-tune initial LWS enumeration.
	OpenCL RAR formats: Bugfixes for LWS=0.
	md5crypt-opencl: Add a pragma needed for amd_bitalign with older
	  drivers.
	Change some exit() to error() for proper logging and easier
	  debugging. See #1714.
	Add a header to win32_memmap.c needed for error().
	Update dependencies in Makefile.in
	7z and RAR: Trim the waste-space allocation for length sorting.
	  Closes #1692.
	Correct dependency for error() is misc.h.
	7z: Missing paren. I did say it was tricky.
	Undocumented hack: If you give the benchmark time as a negative
	  (eg. -test=-1) it will be minimum that time, but will also wait
	  for completion of "many salts" test.
	Keccak formats: Stop lying about SIMD support. There is none.
	  Closes #1712.
	SHA-3 format: Stop lying about SIMD support. There is none. See #1712.
	Fix 1711: Correct detection of whether we're restoring or not.
	Fix a logic bug that made (currently) impossible things like
	  "-markov -rules" not bail out with error. Closes #1697.
	Revert exit() -> error() for a CUDA file.
	OpenCL: Move Solar's bitalign macros to opencl_misc.h.
	OpenCL: Drop the fragile nvidia_sm32plus macro in favor of
	  separate SM_MAJOR and SM_MINOR definitions supplied to the
	  kernel.
	Handle partial NVML (missing nvmlDeviceGetIndex() function).
	  Closes #1630.
	Minor tweaks to --list:cuda/opencl-devices output (stop using
	  tabs, for a starter. Looks bad when pasted)
	Bugfix for the many-salts extra test.
	OpenCL: Ensure self-test and autotune does not involve changing
	  length of test vectors' plaintext. Some formats have too big a
	  penalty for that so we need to let the format decide (by means
	  of what test vectors it declares).
	OpenCL autotune: Rework keysetting a bit more (and fix a bug that
	  lead to irregularities).
	formats.c: The fmt_set_key() wrapper now has its buffer SIMD-
	  aligned. Also fixes a few callers that did not use the wrapper.
	Fix --format option when -DDYNAMIC_DISABLED. Closes #1722.
	Change a format expression in dynamic.con so we don't end up
	  seeing "peoplesoft" when gripping out primitives. See #1716.
	Tweak format descriptions for dynamic Cisco formats so we don't
	  end up seeing "cisco" when grep'ing out primitives. See #1716.
	RAR-opencl: Minor optimization, 5-10% boost.
	RAR OpenCL: allow less work per loop-kernel call.
	OpenCL auto-tune: log resulting work sizes.
	Minor 7z-opencl optimization.
	Tweaks for .editorconfig
	Suppress an erroneus comment about UTF-8 with -enc=raw.
	Add FMT_TRUNC format flag. This is set for formats that originally
	  truncate at our max. length (eg. LM, DEScrypt) but not for formats
	  where our max. length is limited (usually due to optimizations),
	  eg. NT and MD5crypt. See #1724.
	Lotus5-opencl bugfix (segfault in some situations). Closes #1726.
	If BF_X2 is already defined (eg. CFLAGS), don't change it. See
	  #1199.
	Retire the "md4-gen" format, just like "sha1-gen" (they both live
	  in unused/ for a while). It was obsoleted long ago.
	If BF_ASM is 1, don't allow redefining BF_X2. See #1199.
	--list=build-info: Show salt hash size.
	Separate --log-stderr from --nolog. Now the former does not imply the
	  latter, but both can be used.
	Salt sort: Allow user to disable the default fallback to "most used
	  first" (it was hard-coded until now).
	Lower default iteration count for pbkdf2-hmac-sha2 OpenCL formats,
	  for easier testing. Use -cost:10000 to get the old figures.
	Unify SHA-1's H() a.k.a F3() a.k.a SHA-2's Maj() as well as
	  SHA-2's Ch() implementations, using better optimized ones.
	  OpenCL and CUDA formats. See #1727.
	Unify SHA-1's H() a.k.a F3(), a.k.a SHA-2's Maj() as well as
	  SHA-2's Ch() implementations, using better optimized ones.
	  Intrinsics formats. See #1727.
	7z-opencl: Bugfix for keeping within workgroup limits.
	DMG-opencl segfaulted on super because of OpenSSL thread safety
	  issues with EVP. Disable OpenMP for now. See #1686.
	raw MD5 flat format (experimental): Drop bogus header dependency
	Intrinsics: Use vandnot version for vcmov, if available (currently
	  always). Both versions are 3 ops but the andnot one has
	  parallelism.
	Pseudo-intrinsics: Comments (no-op).
	OpenCL: Ensure auto-tune plaintext length is within limits.
	OpenCL: Add an alternative SHA-2 Ch() a.k.a MD4/5 F() for archs with
	  and-not instruction. And stop defining USE_BITSELECT for
	  Maxwell.
	OpenCL: Fix definition of OLD_NVIDIA. It was always intended for
	  sm_1x.
	DMG formats: Drop use of EVP in favor of low-level API and
	  re-enable OMP support for the OpenCL format. See #1686.
	Several formats: Use shared PKCS padding-check function. See #1686.
	OpenCL shared MD5: Use Solar's newly found or-not bitselect.
	Dynamic: Drop a couple of spurious space characters.
	opencl_misc.h: Do not define HAVE_ANDNOT for GCN. This is a no-op
	  though since it'll use bitselect instead anyway.
	Re-enable use of bitselect instructions for Maxwell. The previous
	  tests seem to have been invalid due to kernel binary caching.
	Add a "kernel-clean" make target, dropping nvidia's cached
	  binaries in ~/.nv/ComputeCache as well as our own cache for
	  other vendors. Neither of them is safe from a change in just a
	  header file included by a kernel.
	7z formats: Add a salt_compare function so we are sure to exploit
	  any same-iteration-count weakness. Closes #1728.
	Update --list=format-methods with missing methods. Change ordering
	  to same as in the struct. Do not output get/ binary_hash methods
	  that are NULL.
	OpenCL: Work around an Apple driver bug for Intel HD Grahpics. See
	  #1723.
	Recent change to keychain formats increased number of FP.
	Intrinsics: Sourcing of misc.h was trying to abandon the pack.
	Intrinsics: Change Solar's "#if 0" around MD4/5's SSEi_FLAT_OUT to
	  "#if USE_EXPERIMENTAL" and add comments on why it's left out.
	mem_align function: Require power of 2 alignment, and use faster
	  code. See #1731.
	Change stack allocations of MEM_ALIGN_SIMD to be safe. Closes
	  #1731.
	Intrinsics: Pacify a compiler warning on XOP where PARA >= 3.
	Drop support for "icc precompiled intrinsics". We keep breaking it and
	  apparently no-one is using it nowadays anyway.
	XOP builds: Use 2x interleaving for SHA-256.
	NTLMV1/MSCHAP2 bugfix (for currently unused code path).
	testparas.pl: Finish with printing a complete suggested command
	  line for ./configure. Also add a second optional parameter for
	  number of cores (for make -j option).
	Document testparas.pl (very briefly).
	Ensure all PBKDF2 formats have 10K test vectors. To bench them,
	  use "-test -cost:10000"
	Optimization for emulated vloadu/vstoreu for the case address is
	  already aligned. See #1731.
	testparas.pl: Bug when run with no args.
	The "-test=-1" hack for testing all 256 "many salts" did not work
	  for 2nd or later formats in a test run.
	The "-test=-1" hack for testing all 256 "many salts" still wasn't
	  quite OK. Took too long for some raw formats. Closes #1738.
	New canonical code for "format class" selection. If you say something
	  like -format=@rc4 you will only get formats that has "RC4"
	  within its algorithm name. This can also be combined with
	  rejecting dynamics. Examples:
	Trying to beat Jim to fixing a free() <-> MEM_FREE() problem in
	  john.c that I very recently introduced.
	Format-class selection: Allow rejecting OpenCL formats.
	Ensure unsigned divisions (optimized to shifts) in various index
	  calculations.
	Dynamic compiler: Add max-length and zero-length test vectors.
	Dynamic compiler: Bugfix for mixed-case plaintext test vector.
	Add missing parens in dynamic_compiler_lib.c. Add missing
	  dependencies for dynamic_compiler.c and dynamic_compiler_lib.c.
	Fix all dependencies in Makefile.in. Closes #1745.
	Do not consider lc() and uc() for SALT_AS_HEX. See #1748.
	Pull back Myrice's OpenCL SHA-512 formats (to unused, they need
	  some updates before you can build them).
	Face-lift for Myrice's formats, still in unused. They need the
	  shared auto-tune, and things moved from init() to reset().
	Drop interim formats, so next commit get the "moves" right.
	Put Myrice's formats back in business.
	Add a config option WordlistMemoryMap, defaulting to Y but letting
	  user disable use of mmap in wordlist mode.
	Auto-tune had a really silly bug for picking plaintext length,
	  resulting in always zero.
	Found Myrice's XSHA512 kernel. Its removal was hidden in an
	  unrelated commit (b0f1fad4).
	Add autotune to Myrice's SHA-2 formats.
	Address some test vector length issues in dynamic compiler format.
	  See #1751.
	Add some debug output for CircleCI. See #1751.
	Fix for non-SIMD dynamic='md5($p)' max-length test vector. See #1751.
	Drop the "#pragma GCC optimize 3" from simd-intrinsics.c, and the
	  XOP workaround that was needed when we had it.
	Revert some mem_align() uses. Closes #1735.
	AVX-512: undef VCMOV_EMULATED when using ternary intrinsics to
	  emulate it (it's just as good as the vcmov instruction).
	Re-introduce the mmxput3() switch alternative (but ifdef'ed out).
	Use some shared OpenCL code for Myrice' SHA-512, and optimized
	  SHA-2 subfunctions, but keep the actual SHA functions for now.
	Dynamic: Drop the phrase "(MD5_body)" from non-SIMD MD5 algorithm
	  name. It made no sense anyway (it's just a function name) and it
	  screwed up dynamic compiler format's parsing of algorithm_name
	  vs. label. Closes #1763.
	Intrinsics: Add missing curly braces around initializer.
	Add "Best64" rules from Hashcat. Some rules are not working in JtR so
	  was commented out, and one 'f' rule was added to end up with
	  exactly 64 rules.
	Stop defaulting to "ReloadAtCrack = Y". It hurts performance when a
	  lot of hashes are cracked very fast, and the remaining pot sync
	  alternatives will take care of the important business anyway.
	Centralize reversing/unreversing of (scalar) binaries, for easier
	  maintenance of code. And re-implement source() for raw formats using
	  reversed steps (SHA-1 still to-do).
	Drop the john.conf default for DefaultInternalEncoding.
	Do NOT lock potfile during pot sync.
	Implement source() for raw-SHA1 format.
	Fix SessionProtect for forked (or MPI) sessions, as well as for
	  JOHN_SYSTEMWIDE builds (Jim had hard-coded the session name).
	  Closes #1764.
	Move the logic for "Disabled Formats" out of loader.
	Do not define CRK_PREFETCH in cracker.c (it's defined in
	  params.h).
	Reverse three steps for SHA-2. 4-5% boost. Closes #1758.
	Replace 0x7ffffff in all binary/hash_6 functions with PH_MASK_6 which
	  is defined as (PASSWORD_HASH_SIZE_6 - 1) in params.h.
	mssql12 non-SIMD bugfix.
	Change all binary/hash function masks to params.h macros.
	Dependency tweak for plugins. See #1767.
	Prince mode: Pure formatting.
	Prince mode: 8x speedup for rules.
	Prince mode: Optimization for when rules are used but no rules
	  were accepted (or eg. --rules=none).
	Introduce macros for telling that vloadu or vstoreu are emulated.
	Bugfix for -DDEBUG.
	Change wordlist memory buffer default threshold to 1 GB, and use
	  that default unless -save-memory >= 2. Also tweaks some other
	  related things.
	Fixes for generator/amplifier logic for mask and regex. Closes
	  #1756, see also #1757 (more work needed there).
	Mask mode: More rigid parsing of ranges/placeholders. Closes #1765.
	Mask mode: Allow '??' as literal '?'.
	Make -stdout "FMT_TRUNC" so we can chose at run-time whether to
	  truncate (-stdout=N) or reject (-max-len=N).
	Loader: Fix a bug where a loop depending on signed behavior was using
	  size_t.
	Revert "john-huge-loader-mt.diff, splitting initialization of bitmap"
	mem_calloc: Actually use calloc().
	Fix a few bugs not caused by, but triggered by, the recent loader
	  allocation tweaks. See #1769.
	Ensure ShowUidOnCrack is turned off when --save-memory is active.
	More tweaks for --save-memory.
	Raw MD5 non-SIMD bugfixes.
	MSSQL: Fix for reverse steps: We have to uppercase.
	Add a config note about --save-memory vs. ShowUIDinCracks.
	Refactor a variable to match its john.conf name.
	Minor optimization for loader.
	  http://www.openwall.com/lists/john-dev/2015/09/16/32
	Re-write code that used comma separator so it's easier to read.
	Drop code that was obsoleted by fd3c440.
	Fix a bug with hybrid mask used with wordlist + rules when an internal
	  encoding is active.
	Mask mode: Use fmt_null_key instead of creating our own.
	Minor overhaul of regex hybrid mode. See #1678.
	Fix bugs introduced in previous commit and close #1678.
	Add the cool rexgen example from #1678 to our arsenal of presets.
	Allow external filters even with Hybrid Mask. The logic was there
	  already.
	Disable CRK_PREFETCH for now, segfaults seen.
	  http://www.openwall.com/lists/john-dev/2015/09/20/6
	Linkedin format: Bugfixes for reading {SHA}-style pot entries.
	Disable UTF-8 checks when -enc:raw.
	Optimization for registering dynamics. Shaves the number of calls to
	  dynamic_IS_VALID() by half (from 10,000).
	Print hash counts to stderr for --show=invalid. See #1773.
	Update INSTALL-UBUNTU (after I did just that).
	Drop summary line from -show=invalid - it's not populated at all.
	Add parsing of 1800.11 -> Catalyst 15.9.
	Fix and improve OpenCL logging.
	OpenCL: Force saving of kernel "binary" with env DUMP_BINARY. This
	  will have kernel's name with ".bin" extension added, stripped
	  from any path (so will end up in current directory). It will
	  also over-ride the caching we sometimes do for non-nvidia
	  devices (the nvidia driver caches for us).
	OpenCL bug fix (or just rigidity fix) for auto-tune.
	Add full Unicode/codepage support for NT-opencl, including for mask
	  mode with --internal-encoding. See #1037.
	Mask mode: If mask contains UTF-8 characters, require
	  --internal-encoding so we don't get false negatives from
	  improper use. See #1037.
	--show=invalid counted incorrectly. See #1773.
	Add full Unicode/codepage support for mscash-opencl, including for
	  mask mode with --internal-encoding. See #1037.
	New DEScrypt OpenCL code: Portability macros for %zu.
	Comment out the silly "Get key error!". I have only ever seen false
	  alarms and Sayantan wont even comment it. See #1037.
	Fix a bug in all UTF-8 conversions on GPU. We are processing strings
	  that are not NULL-terminated, yet checked for NULL in some
	  places instead of checking length. The result was a performance
	  drop.
	OpenCL: Add one more instance of "spinning wheel" cursor for slow
	  benchmarks with --test=-1 (force all "many-salts" test).
	Mask mode debug stuff.
	Code style: Don't write pointers as multiplications.
	OpenCL autotune: Fix bugs when LWS is required to be a power of 2.
	NT-OpenCL: Use shared auto-tune.
	OpenCL auto-tune fixes. And a hack: If mask mode is active, we
	  decrease max duration to a tenth.
	AC: Change AC_CHECK_LIB tests from "!= no" to "= yes".
	Put OpenCL UCS-2/UTF-16 support selection under the wings of
	  ./configure. Closes #1779.
	DES-opencl cleanup, and a tweak in shared code. Closes #1778.
	MSCash-OpenCL: Use shared auto-tune. See #1037.
	Revert "MSCash-OpenCL: Use shared auto-tune. See #1037."
	MSCash-OpenCL: Use shared auto-tune. 2nd try, see #1037.
	mscash-opencl: Unicode salt support and test vectors. Closes #1781,
	  see also #1780.
	Bump SALT_HASH_LOG from core's 12 to 20.
	Makefile.in: Add recent loader.o dependency for base64_convert.h.
	OpenCL: Unicode/codepage fixes (edge cases, even literally) for mscash
	  & NT formats. Both formats now pass systematic testing (TS).
	Workaround for AMD problem with mscash-opencl. Closes #1780.
	gcc-4.4.7 complained about me breaking strict aliasing rules in
	  mscash-opencl. I agreed to disagree but had to fix it anyway.
	Fix some mis-match between mask mode and its documentation. Also
	  deprecate ?h and ?H in favor of ?B and ?b since ?b is used by
	  Hashcat.
	Mask mode fix: If a custom mask placeholder was defined containing
	  UTF-8 characters, we bailed out for "internal encoding required"
	  even when that placeholder was not actually used.
	OpenCL common code: Ensure use of portable basename().
	Drop spurious file add by Jim
	Fix bug when using default (from john.conf) mask, and some other cases
	  of hybrid/pure mask & regex modes.
	Mask: When iterating over length, optionally emit a status line after
	  each length is done.
	SHA-256 intrinsics: Reverse 4 more steps for another 3% boost. This
	  can't be done for SHA-224.
	Mask mode: Tweak an error message for easier understanding.
	SHA-512 intrinsics: Reverse 4 more steps. This can't be done for
	  SHA-384.
	MSSQL12: Reverse seven steps.
	MSSQL12: Non-SIMD fixes after last commit.
	Mask mode: Change "internal encoding" error output to be more
	  specific.
	Deprecate -internal-encoding in favor of -internal-codepage, for
	  clarity. Change corresponding john.conf option
	  DefaultInternalEncoding to DefaultInternalCodepage. The old
	  option names are still supported (and will be for a long time).
	  Also refactors the related variables.
	OpenCL auto-tune: Tune with GPU-side mask, when applicable.
	Autotune: Print Gp/s instead of a wall of digits.
	Pacify an idiotic warning.
	Revert most of the recent auto-tune-with-mask patch. Regression-tests
	  revealed it already happened, LOL.
	Cross-compile fixes for 'ar' and 'strip', and for using DESTDIR for
	  bash (and zsh) completion. See #1783.
	Change most opencl_build() calls from Sayantan's formats to
	  opencl_build_kernel() so they cache like the other formats.
	OpenCL: Use a hash of parameters when deciding a cached kernel file
	  name, instead of creating filenames that exceed all sane limits.
	  And since the hash also includes the actual full source, we get
	  extra "security".
	Bugfix in our implementation of RC4.
	NT-opencl: Use our optimized MD4 macros. See #1729.
	mscash-opencl: Use our optimized MD4 macros and the rotate function.
	  Closes #1729.
	hmacmd5.h "bugfix": do not depend on caller including md5.h.
	krb5-tgs: Major cleanup, code-style, stop re-inventing the wheel, fix
	  major and minor bugs, add proper Unicode conversion, add OpenMP
	  support, much less promiscuous valid().
	OpenCL NT & mscash: Copy-paste bug of sorts.
	Further boost for krb5-tgs format.
	Cosmetic fixes in kirbi2john.py.
	Complete the implementation of FMT_REMOVE. Closes #1793.
	Minor enhancement of FMT_REMOVE code. See #1793.
	Update docs for OS X 10.11 "El Capitan".
	OpenCL bug fix. 57a6cce change a buffer to alloced memory but we
	  were still using sizeof() on it. Closes #1797.
	Fix a bug in --reject-printable for split formats.
	Revert "mask: ETA was 1/x the correct time in -fork=x mode"
	Try to get rid of the Travis CI failures occurring ever since
	  09f7f91.
	Bugfix for --test-full
	Revert "Try to get rid of the Travis CI failures occurring ever since"
	Myrice's OpenCL formats: Hopefully fix intermittent failures on
	  CPU devices.
	Implement LOP3.LUT as inline PTX, but do not enable it (not yet
	  seen doing any good - only tested for md5crypt).
	DUMP_BINARY environment variable over-rides any normal binary
	  caching.
	CUDA WPAPSK: Bugfix after get_hash macros was introduced.
	Common OpenCL: Fix a potential memory leak.
	lotus5-opencl: Drop that weird "PADDING" thing. This alone seemed to
	  fix all problems - closes #1726.
	Revert "configure: changed != xno to = xyes for some display results
	  (crypt, mmap)"
	Bump dynamic's DYNA_SALT_HASH_BITS to same as SALT_HASH_LOG.
	Add proper logic for enabling LOP3.LUT (although we still don't
	  actually enable it because only regression was seen).
	Minor CUDA fixes.
	Tweaks for LOP3.LUT. Refactor the function to lut3() like what
	  Roman used in published DES BS s4. Always expose that function
	  (if available).
	Add kernel filename to "Options used" when building OpenCL kernels.
	DES & LM bit-slice OpenCL: Implement DeepLearningJohnDoe's LUT3
	  s-boxes, but with s4 replaced with Roman's published one (one
	  less gate).
	Shared OpenCL MD4, MD5, SHA-1 and SHA-2 code: Optional explicit
	  LOP3.LUT.
	Stop mis-using the "warn" parameter of opencl_build_kernel. It's for
	  kernels that take like over 10 seconds to build.
	Stop mis-using the "warn" parameter of opencl_build_kernel (one last
	  format that was missed).
	Use Makefile logic to copy/update OpenCL stuff to run/kernels.
	Tweak Makefile logic for OpenCL stuff in run/kernels.
	Tweak Makefile logic for OpenCL stuff in run/kernels.
	Revert recent Makefile changes. They are problematic.
	I seem to have a bad hair day.
	Fixes for generation of Makefile OpenCL dependencies. Also updates
	  most other dependencies (auto-generated with plugin_deps.pl)
	Fix a mis-leading notion in list=build-info.
	Mask mode: Default to emitting status when switching length. And fix
	  some progress reporting issues.
	Use __FUNCTION__, not __func__.
	Some no-ops while trying to work out what's wrong with lotus5. Looks
	  like an nvidia driver bug. Intermittent failure when not
	  auto-tuning. See #1726.
	Yet some tweaks required for OpenCL dependency generation.
	Extra pot-file feature: When traversing directory, only consider
	  files with extension of ".pot". This is how the Windows code
	  path already handled it. Also, accept symlinks. And clean up
	  code, moving this to its own function to avoid indenting off
	  screen... Closes #1623.
	Windows fix for extra pot files. Windows does not grok symlinks.
	Using S_IFLNK applies to lstat(2), not stat(2).
	john.conf comment grammar fix.
	Unicode core files overhaul: Code-style fixes and tweaks.
	--stdout: Allow using a codepage output encoding.
	External mode: Optionally support handling UTF-32 characters,
	  converted to target encoding just before crk_process_key(). This
	  speeds up things like -external:dumb32 with 4x and opens up for
	  plenty of other tricks.
	Dumb16/32 and Repeats16/32 external modes: Use new UTF-32 external
	  mode feature. 4x boost (or even more if target encoding is a
	  codepage).
	Implement a proper lut3_64() function, using two 32-bit ops.
	OpenCL: Use bitalign for ror64() in shared code and in Myrice's
	  formats. See #1819.
	The bitalign-rotate can't be used with vectors.
	opencl_mask_extras.h: Pure whitespace clean-up.
	Missed tab in whitespace clean-up.
	Pot sync tweak for split OpenCL kernels.
	Add a trivial script for calculating truth table for
	  _mm512_ternarylogic_epi32 or LOP3.LUT. Example:
	Some mostly no-ops and whitespace noise while trying to nail the
	  nvidia LOP3.LUT bug.
	LOP3.LUT bug fixes. Wasn't a driver bug... was PEBCAK!
	Bugfix in the example in comments of truth.pl...
	Enable LOP3.LUT for SHA-1 formats.
	Stop using cl_nv_pragma_unroll for detecting nvidia; it does not
	  work on OS X. Also update mscash2-opencl with optimized functions.
	truth.pl: Optionally show all alternatives for LOP.LUT3 (or AVX-512
	  ternary) truth tables.
	Regression fixes for LOP3.LUT. We can't use that inline asm function
	  with vector variables.
	Add SaltLen to new dynamic_1034. See #1825.
	Poke a little at Myrice's formats to get rid of intermittent failures.
	Usage blurb tweaks. Thou shall not hit 80th column (not even
	  counting from 1, due to Windows' silly terminal).
	Allow "-test -mask" for benchmarking GPU-side mask mode
	  performance. Currently, self-tests are not performed when this
	  is used. Mask can be given or the default one from john.conf
	  will be used. See #1822.
	Enhance the "-test -mask" feature. See #1822.
	Tweaks for --test --mask. See #1827.
	Auto-tune tweak for mask mode. See #1827
	Mask mode ETA bug fix: mask_tot_cand is supposed to hold total
	  multiplier *including* GPU-side. Parent modes' progress
	  reporting depend on it.
	Some refactoring of mask mode global names, per code style.
	Mask mode: Decrease max. number of placeholders from 255 to 127.
	  This still supports the global core max length of a plaintext
	  and should help footprint and locality.
	Implement a shared OpenCL function to get a very rough "speed
	  index" for an OpenCL device, and use it to tune mask mode.
	  Closes #1831.
	Global tweaks to recent mask mode tuning logic. See #1831.
	Print our "speed index" estimation in --list=opencl-devices. See
	  #1831.
	More tweaks for mask tuning. See #1831.
	Mask benchmark tweak. We won't generate candidates longer than
	  format's first test vector.
	Hack fix for #1828.
	Put a max-length test vector first in LM-opencl for better
	  auto-tune.
	mscash-opencl: First test vector should be length 8 or so and
	  definitely not a null-string. This is for shared auto-tune
	  reasons.
	Bugfix for building non-OpenCL.
	Reduce default logging for rules and incremental mode. Now -verb=4 or
	  higher is required to get gigabyte size logs.
	Have -stdout call log_init() but imply --nolog. See #1774.
	NT & mscash OpenCL: Avoid double auto-tune for "-test -mask".
	--list=opencl-devices fix. Do not print SIMD width as "stream
	  processors" (although we count it as such for other purposes).
	PBKDF2-HMAC-MD4/5: Allow VLIW5 to use native vector width. The
	  register pressure limitation doesn't apply to these formats.
	krb5tgs format: Bump MAX_EDATA_SIZE, see #1838.
	Implement a function that creates a "struct db_main" from test
	  vectors, and a destroyer for it. See #1835.
	Allow changing or dropping the UTF-8 degree sign in GPU temp
	  printouts.
	Bug fix for the shared check_pkcs_pad() function. This surfaced in
	  form of false positive in dmg (header version 1).
	AMD bug-workaround for SHA-512 formats when using bitalign for
	  ror64(). Closes #1840. Also closes #1834, adding a related
	  pragma needed for older drivers.
	AMD bug-workaround for oldoffice-opencl. Closes #1497.
	Mask mode: Change ?a to frequency-ordered, from Rockyou data.
	  Closes #1842.
	Mask mode: Change ?l, ?u, ?d and ?s to frequency-ordered, from
	  Rockyou data. See #1842.
	Improve handling of UTF-8 "degrees" character in case terminal is
	  not UTF-8. If we know how to output it, do. Otherwise just skip
	  that character. Closes #1841.
	Fix a cosmetic problem with speed figure calculations overflowing
	  32-bit integer under GPU-side mask mode. I already wrote code
	  for it but it was defined out.
	Mask benchmark: Pure mask mode should send a NULL key.
	OpenCL: Cosmetic. Move "speed index" adjacent to its source
	  parameters.
	Copy/paste bug in raw/x-sha512-ng-opencl.
	Tweak the use of setlocale(). We now query the "terminal locale" and
	  store it, but then reset LC_CTYPE to "C" so to not change
	  behavior. See #1841.
	Implement a minor optimization for SHA-512 sigma's, from Intel's "Fast
	  SHA-512 Implementations on Intel Architecture Processors"
	  whitepaper.
	Mask mode: Enable a sanity check that was disabled for
	  backward-compatibility.
	RAR: Mute an irrelevant warning when loading pot entries.
	Decrease log chatter from single mode, like was done with others.
	Fix an autoconf problem resulting in the CPU detection in john.o
	  wasn't enabled when it should be.
	Add CPU detection for AVX2.
	Fixes for AVX2 detection.
	Another fix for AVX2 detection.
	Mask mode: Fix incorrect use to CTYPE macros, so ?W will case-
	  toggle according to our active encoding - not just ASCII.
	--list=build-info: Show fallback binaries.
	Bugfix for MPI vs. fallback binaries. We must not initialize MPI until
	  we are running the "final" binary.
	OpenCL shared header bugfix: OLD_NVIDIA was defined on all
	  non-nvidias too.
	Add cpuid tests for SSSE3, SSE4.1, SSE4.2, AVX512F and AVX512BW.
	CPU detection fixes. We drop the check for SSE4.2 because only one
	  format needs it - that one should have a run-time check instead.
	More CPU detection fixes. A bit more thorough.
	Require AVX for CRC32C intrinsics (only SSE4.2 is needed but we
	  don't want to add another CPU fallback case). Closes #1856.
	Minor fixes to Myrice's formats.
	Salt cleansing bugfixes.
	Bugfix for plugin_deps.pl, do not recurse autoconfig.h file.
	  Closes #1860.
	oldoffice-opencl: Move benchmark logic out of salt.
	pkzip: Fix a problem caused by the format changing the salt after
	  get_salt. We still do so, but leave that part out of the active
	  "dynamic salt" part for compare purposes. Otherwise we get
	  problems with pot sync and other things. Closes #1862.
	Mask mode: Fix a problem with resume sometimes missing candidates.
	  This should now be 100% safe. Closes #1859.
	Exclude Myrice's formats from Travis CI testing. It's got to be a
	  driver bug causing all trouble with them. Also ditch the
	  Formats_base thing, it was just confusing. Better learn the
	  difference between putting [Disabled:Formats] vs.
	  [Local:Disabled:Formats] in your john-local.conf! The former
	  replaces the original list while the latter adds to it.
	Add some safety in dynamic parser code. See #1863.
	Do not assume that char is signed. See #1863.
	Mask mode: Ensure that things like ?l?u (eg. the default mask)
	  only produces a single case for case-ignoring formats.
	AC: Do not use \b with sed, apparently it's not POSIX and it
	  doesn't work with OSX. Closes #1867.
	Fixes for OSX El Capitan and CUDA 7.5. Closes #1868.
	Enable showing memdbg summary with MEMDBG environment variable.
	  See #1872.
	Fixes for our local stdint.h. Add intmax_t and uintmax_t as we now
	  use them in Jumbo. Also use compiler macros like __INT32_TYPE__
	  if available. Finally, remove a clash in math.h from core.
	arm32le.h: Do not define SIMD_PARA_* when we don't have NEON. See
	  #1874.
	Assorted signed/unsigned bug fixes. See #1874.
	Drop unused Blake2 functions. See #1874.
	Move the nefarious LUKS test vectors to a separate file. #1861.
	Split lines of luks_insane.tests.h so not to break havoc.
	Add filename to cisco2john output, in id field.
	Fix algorithm name of Azure AD format.
	Fix algorithm name of Azure AD format, this time to the correct
	  one.
	Simplify OpenCL SHA-1 (unsplit) kernel a little.
	Add a john.conf option AbortGraceTime for tweaking behavior of
	  --max-run-time=N option. Closes #1638.
	Add Truecrypt-opencl format. First cut, only RIPEMD-160 yet and
	  for some odd reason it's only a quarter the speed of Hashcat's
	  as of now. See #1344.
	Optimizations for Truecrypt-opencl format.
	pass_gen.pl: Honor -loops when generating bitcoin
	Assorted hybrid resume fixes. Closes #1859.
	Do not call wordlist's hybrid fix_state unless we are actually
	  running wordlist as parent mode.
	Fix SessionFileProtect for batch mode. Closes #1774.
	Consider the "Extra potfiles" not only when loading hashes, but also
	  for other things like -show and -loopback. Closes #1808.
	Revert "Have -stdout call log_init() but imply --nolog. See #1774."
	Revert "Hack fix for #1828."
	List:Extra.Potfiles bugfix for --loopback (allow using loop_db).
	john.c: Comment on a non-obvious line of code.
	Log the command line used for session. It will be expanded from
	  abbreviations and unified to using '=' and not ':' as option
	  separator.
	Finally, fix the Jumbo options-reset problem (when resuming)
	  canonically.
	Fix a nasty bug in oldoffice-opencl where type 4 would never crack.
	  Closes #1881.
	Change dyna salt formats to use fmt_default_dyna_salt(). Also
	  assorted fixes for dynamic salts, including OpenCL support.
	AC: Test for hyperthreading, if available - define HAVE_HT. Set
	  BF_X2 according to the result. Closes #1199.
	AC: The HAVE_HT test was only done for AVX or higher, having bcrypt
	  in mind. But we might want to use it for other things too so this
	  commit makes it unconditional.
	Set BF_X2 to 3 for non-OMP builds, regardless of CPU. See #1199.
	Allow using OMP or CPU fallback without using SYSTEMWIDE.
	Allow using CPU fallback without using SYSTEMWIDE (bug fix, the
	  previous commit only fixed OMP fallback).
	Better fix for #1881. The previous fix worked fine but affected
	  performance.
	Enable oldoffice's source() function, printing mitm hash in case
	  user wants to search for alternate keys. The use of MITM calls
	  for using dyna_salt. Closes #736.
	Bugfix for dyna_salt in OpenCL: Bitfields are not allowed but we
	  actually only need the right size.
	Show different output telling FMT_NOT_EXACT from --keep-guessing.
	Fixes for CPU detection. See #1855.
	[john.c] Clean-up from Jim's constant breaking of code style.
	Disable cpuid checks if CPUID_DISABLE environment variable is
	  defined (at all). See #1855.
	Bug fixes and easier-to-follow code for CPU detection.
	Add 32-bit checks for AVX2, SSE4.1 and SSSE3. The AVX2 check is
	  very quick and dirty, not using leaf 7 nor extended flags but it
	  should be sufficient for a starter. This is UNTESTED but will
	  hopefully be Good Enough[tm] for #1855 for now.
	Remove LENGTH from --markov mode documentation. Closes #1651.
	Document PRINCE mode. Closes #1428.
	configure.ac is not just a bash script.
	Bugfix for 32-bit CPU detection. See #1886.
	[options.c] Portability fix: Include jumbo.h.
	Another 32-bit CPU detection bug fix. See #1886.
	Safer CPU detect for cross compiles. See #1886. Closes #1855.
	Code style fixes for Markov before doing actual changes. This is a
	  no-op.
	Delete Frank's diary from our source tree.
	Code style fixes for Rexgen before doing actual changes. This is a
	  no-op.
	regex fixes for -max-length.
	Add hybrid regex support to markov mode. See #1445.
	Add hybrid regex support to incremental mode. See #1445.
	Add hybrid regex support to PRINCE mode. See #1445.
	Add hybrid regex support to External [generator] mode. Closes #1445.
	[mask.c] Fix for 32-bit builds not getting prince mode.
	Tweaks for legacy builds.
	Fix for 32-bit SSE2 CPU detection.
	Yet another fix for 32-bit SSE2 CPU detection. How hard can it be
	  to get this right? See #1886.
	Don't just "define" things like JOHN_AVX, set it to 1!
	Remove a wall of 32-bit build warnings. The majority were due to a
	  silly macro that was sprayed all over the code base instead of
	  put in one place. Closes #1891.
	Allow using external (generator) mode as hybrid parent. Closes #1889.
	Allow using regex mode as parent to hybrid mask. See #1890.
	Allow hybrid regex *and* mask, using a third mode as parent. Mask is
	  last since it can accelerate GPU. Closes #1890.
	Update documentation of Jumbo cracking modes with regex, stacking and
	  some other details.
	More updates on documentation and usage blob.
	Mask mode: Avoid internal key buffer being thrashed by external
	  filter. Closes #1893.
	PRINCE had same external filter bug as mask mode, see #1893.
	john.conf typo.
	Stupid bugfix for CPU detection. I did not notice that SSE2 flag
	  was in EAX while SSSE3 and SSE4.1 flags are in ECX, so I ended up
	  erroneously checking the xsave flag (and testing would not reveal
	  the problem when cross-compiled on newer machines...
	CPU detection: Cosmetic (comments, and rename a confusing label).
	Bugfixes for -test -mask.
	OpenCL SHA-1: Concentrate an AMD workaround to within the SHA-1 header
	  only.
	MPI bugfix for OMP fallback.
	[pass_gen.pl] allow specified -salt shorter than 8.
	Bugfix for vectorized use of OpenCL SHA-1 after recent change.
	Much nicer code for previous commit: Use __typeof__() keyword.
	WPAPSK-OpenCL: Revert to using AoS, for working around AMD bugs.
	  Closes #1905.
	Fix a couple of problems with --pipe mode when using tty for input.
	Windows fix for "label at end of compound statement".
	HMAC-SHA256: Support up to 183 characters of salt. Closes #1904.
	Reduce (default) chatter from descrypt-opencl.
	Allow muting status output for GPU temp, utilization and fan
	  individually.
	Fix a bug in loopback mode that caused a segfault in case the
	  assembled LM halves alone would crack 100% of the hashes.
	SAP G bugfix. See #1917.
	SAP G, add headroom for 4-byte UTF-8. Closes #1917.
	[listconf.c] Move --list=opencl-devices to listconf_parse_late()
	  so we can get things from john.conf.
	Bugfix in NTLMv1/MSCHAPv2 naive formats. Closes #1923.
	Scrypt (Jumbo-specific input format) and PBKDF2-HMAC-MD* formats:
	  Avoid using dupe test vectors. They triggered false positives in
	  the Test Suite. Closes #1913.
	Fix a rename in 9215a07e that ended up incorrect.
	  cryptsha512_kernel_GCN.cl was renamed to "unused" instead of
	  moved to "src/unused/".
	Fix a clash between mscash2-opencl multi-device support and "Poor
	  man's multi-device support". Closes #1920.
	Allow LDAP-style raw MD5. See #1613.
	Drop nsldaps-opencl and unify salted-sha1-opencl with shared code.
	  See #1613.
	Drop nsldap-opencl and unify raw-sha1-opencl with shared code. Closes
	  #1613.

JimF (905):
	configure: removed many function checks (for #910)
	phpass: non-OMP builds were no SIMD, fix #916
	configure: Added arm-NEON instruction detection logic, #911
	change execute bits
	configure: removed many size checks per #910
	bleeding-jumbo version. Set to 1.8.0-jumbo-1+bleeding-jumbo
	bleeding version: changed per magnum
	configure: added LARGEFILE_SUPPORT to many 32 bit systems which were
	  missing it
	configure: LARGEFILE_SUPPORT, added a check for 32 bit systems
	configure: broken case statement
	wrap all include limits.h which were not prior wrapped
	wrap all include locale.h which were not prior wrapped
	haval: failure to build after HAVE_TYPES_H code added
	sph hashes: failure to build after HAVE_TYPES_H code added
	configure: header wrappers for termios.h and sys/params.h
	autoconf: updated logic for _LARGEFILE64_SOURCE, added -DEBUG to ASan
	  added -BSD to 32 bit freebsd ASFLAGS
	autoconf: Removed the header includes that were not needing wrapped
	MODES: document. Added Markov/Mask. Fixes #904
	base64_conv: fixed length is get_len where mime has trailing =
	pass_gen: added sapH
	New POC format, sapH, still very slow
	pass_gen: some debugging stuff left in sapH, removed it
	sapH: added OMP, still only oSSL
	sapH: added cost and did some small speedups reusing buffers better.
	pass_gen.pl: added SIP hash
	sip: added new test vectors made with pass_gen.pl
	SIP: changed to use proper binary, vs the cracked way.
	loader: fixes #930 dynamic hex not being removed from .pot load
	Makefile.in some defines needed. Problem showed up in #933
	cygwin: Fixed #932 fseeko link fail GetFileSizeEx
	SIP: Fixes #923 Format now actually works
	SIP: a bit faster, and smaller salt. Preload CTX
	SIP: wrong buffer size used
	listconf: format-tests. If nothing can be output, then do not output
	loader: incresed number of parms being loaded from file, for scrypt
	scrypt: ScryptKDF.pm data was NOT loadable from a file. #938
	scrypt: fixed 938
	scrypt: changed ScryptKDF signature to be a single field
	truecrypt: fixed unified format. Fix #941
	rsvp: fix #937 Caching had to be for each type
	rsvp: use array for new-keys, and made more extensible
	rsvp: depending upon clearkeys does not work for self test code
	pass_gen: added RSVP hash
	dyna_salt: Fix salt_smash_check. Fix #920
	Bugs in split and FMT_SPLIT_UNIFIES_CASE fixed
	self-test, always call clear_keys before adding new keys
	gost: needed split-unifies-case
	Added FMT_SPLIT_UNIFIES_CASE to these are formats with hex hashes
	places ishex() and other helper functions into common.[ch]
	moved include from .h to .c after 4770e4c
	blackberry-es10: added UC only validation of hash
	HDAA: added proper valid
	IKE: improved valid to only accept lc hex
	LUKS: improved valid to only accept lc hex
	PDF: improved valid to only handle lower case hex
	rawsha512_opencl: fixed split non-case issue
	base64_convert: added upcase/locase to length of hex. Reformatted .h
	  file
	removed execute bits
	HDAA: fixed dupe salt detect logic. fix #951
	HDAA: stop silly memory usage, and free things up, during salt()
	autoconf: added a couple echo statements for plug processing
	autoconf: added probe and check for perl before usage
	formats.c: salt dupe logic working for dyna_salts also
	kwallet: fixed salt dupe problem (#953)
	formats.c: some helpful commentted out code for tracking down salt
	  dupe problems
	base64: reduced memset overhead. Only clear bytes when needed
	dynamic_21: removed this format hash totally
	Build: hopeful fix for aes.a always built, #957
	pfx: added comment about salt
	build: fixed circular autoconfig-stamp-h problem, got auto-autoheader
	  working again
	dynamic: disable a lot of dynamic hashes
	formats: allow OMP_SCALE modification at runtime, in john.conf
	OMP_auto_scale: I had not left the multiplier at 1.0, my bad.
	blockchain: OMP_SCALE 2.3x increase on AMD, please check on Intel
	crc32: OMP_SCALE 42% increase on AMD, please check on Intel
	crc32: scale not set on last commit
	EPI: added OMP, and OMP scaling
	Fortigate: better handling of OMP_SCALING
	gost: OMP_SCALE tuning
	dahua: OMP_SCALE tuning
	hmacSHA2: OMP scaling
	mongodb: OMP scaling
	mssql12: OMP scaling
	mysqlna: OMP scaling
	postgres: OMP scaling
	racf: OMP scaling
	sapB: OMP scaling
	ssh_ng: OMP scaling
	omp_scaling: added comments on a couple formats
	sapH: changed OMP scaling computation for later in SIMD
	oldoffice: OMP Scaling
	VMS: OMP scaling
	tcp_md5: OMP SCALING
	gost: OMP_SCALE, was wrong scale
	mss1l12: wrong OMP_SCALE used in ad8faae
	mysqlna: wrong OMPSCALE used in 2221cbb
	postgres: wrong OMPSCALE used in 3524196
	IPB2: changed how OMP_SCALE is built in init, and adjusted scale a bit
	EPI: forgot to add FMT_OMP to flags
	sapB: valid() fix #959
	sapG: valid() fix #960
	base64_convert: fix #968
	base64_convert: pure formatting difference, no code change
	mediawiki: fix #961
	added element to gitignore after fixing makefile
	formats.c: handle possible floating point rounding issue
	unicode: overflow, fix #963
	zip format: enhanced valid, fix #966
	7z: fixed valid() bug: fix #962
	base64_convert: handle to_len. Fix #965
	configure: plugin_deps.pl skip warning about autoconfig.h fix #970
	plugin_deps.pl: autoconfig.h was not output if not there. File needed
	  closed also
	base64_conv/lastpass_sniffed: last buffer overread problems fixed.
	  Fix #964
	base64_conv: finished up mods. Now all converts honor to_len
	encfs: fix bug #971
	HDAA: fix #972
	pkzip: fix #973
	pdf: fix #974
	office: valid fix #975
	KRB4: bug fix (realm buffer too small), and valid() fix #976
	pbkdf2-hmac-sha512: prepare bug: fix #977
	KRB4: removed a warning
	pbkdf2-hmac-sha512: fix #977
	office and opencl: created a office_common set of functions
	office-common: removed execute bit
	office-common: comment and eol at end of file. NO code change
	encfs and opencl: created an encfs_common set of functions
	md5ns: Converted to thin dynamic format. OMP/SIMD benfits
	md5ns: warning of unused variable
	cryptmd5: created an cryptmd5_common set of functions. Added {smd5} to
	  GPU, but not working
	luks: Here is a version that is twice as fast, and does not have ASAN
	  errors
	LUKS: added SIMD code
	md5ns: changed so that native hashes get written to .pot file
	md5ns: improved ALGORITHM text
	bcrypt / opencl: created a BF_common set of functions / data
	dragonfly: OMP_SCALE adjustments
	sha1crypt / opencl: added sha1crypt_common functions and data
	dyna_salt memory leaks, reported on #980'
	memdbg: added 4 new information getters for memory blocks
	dyna_salt: Updated. Changed dyna_salt_create to actually do something,
	  in memdbg mode
	cuda_cryptmd5: fix #984
	dyna_salt: removed redundant code
	pass_gen.pl added dyna types: 1013 1016 1400 1401 1501 1502 1503 1504
	dynamic: larger hashes. Fixed max PLAINTEXT length, as found by test
	  suite
	dynamic_2010/2011: fix #987
	dynamic flat hashes. Same issue as fixed in 3494a53
	cryptsha512: was not cleaning its salt buffer
	dynamic: flat SIMD buffer cleaning bug fixed
	ssh-ng: add #debug compile switch to new type2 bcrypt hash. Fixes
	  -test time to execute
	zip: retuned OMP_SCALE, and -test wallclock is much better, and c/s
	  are same
	rawsha256-cuda needed a wrap
	cryptsha256: added tests into common code. Fixed a couple of failure
	  to zero out salt issues
	pass_gen: a couple fixes after last change adding all the dyna, to get
	  -tstall to work properly again
	cp737 encoding fix for greek lower final epsilon. Fix #993 fix #994
	cp737 lower. There is a LOW_ONLY field. That is what should have been
	  used, and now is
	additional fix needed after d33e727
	rar: propre fix for #1000 and #1001 ASAN read issues
	rar: removed debugging line
	removed comments no longer required, and set allocation back to what
	  it was
	autoconf: check buildability of asan. fix #1006
	list=build-info: output memdbg, DEBUG and ASAN status
	rawmd5u: fixed overflow bug, found by ASan
	small edits listing user number on hash
	mscash1: changed to allow standard OMP_SCALE adjustments
	mscash2: changed to allow OMP_SCALE, improved performace a bit
	pass_gen: allow unicode input and base64 output, by splitting out
	  unicode input as a new function
	dynamic: better base64 handling. Added peoplesoft hash
	pass_gen: added dyna_1032, peoplesoft hash
	dynamic: fix to get phpass working. It uses CryptBS layout
	mediawiki: thin dynamic, now store hashes in the native format into
	  the .pot file
	phpass: changed thin format to store native hash in .pot file
	mediawiki: small clean up after .pot output format change
	phpass: cut/paste coding bug
	PHPS: thin format now outputs raw original hashes
	base64_conv: problems handing NULL data, for crypt conversions
	rar: ASan bug, #1010
	wordlist: unfreed memory block in -pipe mode
	bench_cost: got dyna_salt remove working properly
	dynamic: now fully handles base-64 of MIME, Crypt and CryptBS types.
	  Fix #1007
	dyna_1033: changed expression shown on screen output
	dynamic_1033: hide this format. It is only a fake testing format
	dynamic documentation: #874. There may still updates to be made
	IKE: fixed salt-dupe failure problem, #953
	SSH: added dynamic salt. Removed salt-dupe problems. #953
	PFX: dyna_salt. removed salt-dupe problem. #953
	dyna_salt.h: needed a #define wrapper
	pkzip: converted to dyna_salt. Removes dupe-salt problem. #953
	pkzip.h: had some code left for an earlier tried method, that was not
	  needed
	relbench: [handle the new speed for cost] message ignored. Fix #1013
	PRINCE: make sure to disable in john.c if no GMP
	ecryptfs: error, valid not getting only the $1$ signature
	ecryptfs: completed fix #1017
	dyna_salt warning correction. Fix #1021
	removed DOS line endings
	prince: removed warning, AND better handle this in non-memdbg and
	  memdbg modes
	pass_gen: added 2 new pbkdf2-sha1, fixed line wrap problem in base64
	  code
	pass_gen: changes for rsvp processing
	pass_gen: added aix-smd5, and some -mode=xx to allow certain formats
	  to share salts
	wowsrp: This format was broken. It only handled even 64 byte binary,
	  but for modular math, this will NOT be the case
	pass_gen: added sha1crypt, tiger, whirlpool. Modified pp_pbkdf2 to
	  also do pbkdf1
	pass_gen.pl: pbkdf1 caused bug in pbkdf2. Fixed
	chap: enhanced valid
	pass_gen.pl: added, hsrp known-hosts chap and dynamic_1010
	wowsrp: small changes. There should have been cases still not
	  correctly finding values, even though they did not show in the TS.
	  Lack of memset for nonGMP, the todo length was wrong on GMP, and
	  likely would have caused ASan overread errors.
	pass_gen.pl: added blackberry-es10, citrix-ns10 and clipperz-srp
	  hashes
	clipperz: Fixed this SRP format. Fix #1028
	wowsrp and clipperz: added split and proper canonization code. Fix
	  #1027
	dahua: it is a raw format, but we were treating it salted in tests
	added dahua. Some cleanup on clipperz-srp
	pass_gen.pl: added fortigate, lp and lastpass
	lastpass_sniffed: salt-dupe code was broken. #1031
	lastpass_sniffed: Wrong (WIP) code left in non SIMD section
	scrypt: salt-dupe problems. #1031
	truecrypt: #1031. Only a comment, since this format does not have
	  duplicate salts.
	Added hashes for: rawmd2, mdc2, mongodb, mysqlna, o5logon, postgres.
	  Added get_username() but not heavily used yet
	pass_gen.pl: added pst format
	pass_gen.pl: added raw-blake2
	luks: fixed dupe salt problem (dyna salt). #953
	added keccak (512-256), siemens_s7, skein (256-512, BUT they are not
	  compatible), ssha512 and tcp-md5
	prince: portability stuff
	pass_gen.pl: fixed small bug found in dupe-salt script running
	mozilla: fixed dupe salt problem. #1031
	pass_gen.pl: some changes needed help in the salt-dupe finding project
	SKEY: fixed salt dupe bug. #1031
	pass_gen.pl: added strip format
	pass_gen.pl: ns-md5 was nto working any more. Fixed
	wpapsk: salt dupe removal fix, remove binary from salt. #1031
	pass_gen.pl: code changes to allow some formats to use the same salt
	  values
	pass_gen.pl: added stub functions for ALL current JtR formats not yet
	  handled
	Salt Dupe removal code broke format due to salt hashing
	dynamic_fmt: big bug in NON SIMD builds. Found from warning messages
	  on a MIPS-64 build
	dynamic: changed location of min-plaintext-length
	sha1crypt_common.c: Error compiling on BE systems
	hmacSHA384/512: Fixed failure on 64 bit BE systems
	formats.c: added some additional debugging information when we have
	  hash/binary failures
	krb5-18: BE64 port, and some simplification
	dynamic_17: fixed be issue on mips64 build: #1032
	unicode.c: E_md4hash fixes on BE allowing unaligned access, mips64be
	EPI: fixed core on unaligned systems (salt hash accessed 4 byte align)
	md5ns: fixed core on unaligned systems
	truecrypt: fixed BE problems with this format
	cloudkeychain: BE failures fixed
	LUKS: BE fixes
	EFS: fixed BE problems
	added strrev function to configure and supporting code
	mpz_int128: removed recursion from in128tostr and about 4x faster
	PRINCE: problems when building using GMP
	configure: ARCH_ALLOWS_UNALIGNED moved to static headers. Fix #1034
	pass_gen: comments only
	scrypt: corrected pointer alias issues causing scrypt to fail on
	  MIPS64. #1032
	formats.c: Added some debugging code, to help in porting to BE, or
	  finding other errors
	pp.c: 32 bit issue, and GMP issue fixed
	removed spurious file. This header is in escrypt, and somehow an old
	  version was put into src root
	sybase-prob (feal8), fixed on 64 bit BE, #1032
	another spurious header from escrypt folder
	formats.c: inadvertant code removed in 131064f
	formats.c: re-enabled extra debugging for get_hash failures
	office_2007: salt dupe logic. We decrypt now, vs encrypt.
	pass_gen: phase1 of rewrite, to unify output. #1039
	Makefile.legacy: added a couple newer objects
	pass_gen.pl, updated to allow Lophtcrack type hashes to work with
	  unified output
	pass_gen.pl: added bitcoin
	dynamic: some length problems in the preloads. x86 shorter than SIMD
	Dynamic: changes made to thin formats. Set plaintext length(if thin
	  sets it to 0). Also, salt_compare function was missing
	mediawiki: upgraded thin format for better linkage to dynamic
	dynamic.conf: comment about dynamic_1033 missing
	pass_gen: dynamic_1033 was missing
	md5-NS: upgraded thin format for better linkage to dynamic
	formspring: upgraded thin format for better linkage to dynamic
	asaMD5: upgraded thin format for better linkage to dynamic. NOTE,
	  broke before. plain-len was set to 32, but max should be only 12
	osc: upgraded thin format for better linkage to dynamic.
	pass_gen.pl: dynamic_17 was totally busted, trying to set specific
	  salts
	phpass: upgraded thin format for better linkage to dynamic.
	pixMD5: upgraded thin format for better linkage to dynamic.
	pass_gen.pl: recent change, the unified output, broke PHPS
	PHPS: upgraded thin format for better linkage to dynamic.
	options/listconf: added asAN and unified version string. Fix #1005
	crypt-descrypt: for length-13, we never disable, since they are in ST
	  code
	added UID to crack outputs (optional). Issue #517
	wpapcap2john: placed bssid into uid field, we had the connecting mac
	  in that field before
	hmailserver: converted to dynamic_61 thin format. Now has OMP, and
	  SIMD usage
	sapG: improved OMP scaling (slight, only 10% or so improvement)
	XSHA512: improved OMP scaling
	logger: helps with -fork multi process screen overwrites. DOES NOT
	  fix, just makes better
	changed _asAN to _asan for JtR version string
	dynamic: FLAT and not-sse2safe salted formats extended length of salt
	  and passwords
	john.c: in cygwin, some aborts leave tty input in unstable state.
	  CYGWIN only
	cygwin: -fork updates. Also improved logger.c LOCK_DEBUG logging
	cygwin: removed prior jtr stty echo at exit.
	logger.c: added fcntl locking (ONLY for cygwin at this time), vs flock
	pp: mute some warnings
	dynamic_1505: was crashing on travis for clang builds
	dynamic_1505: input length fix, (again)
	dynamic_1505: converted to flat format only. Non flat could only have
	  11 byte password, with 12 byte salt. Just too small
	john_bashcompletion: Update to handle new usage screen that does not
	  list formats
	options: remove format list from normal usage string
	options: usage string slightly changed
	pass_gen: added agilekeychain
	pass_gen: agilekeychain code was not properly saved. a few changed
	pass_gen: added blockchain
	blockchain: improved detection and eliminated FMT_NOT_EXACT
	blockchain: first check was looking over too much data.
	blockchain: Now handles the V2 hashes. We may want to work more on
	  this, and use native mime hashes, etc
	blockchain-opencl: Added v2/iteration changes to opencl version
	cryptsha512: changed comment to match actual code
	cryptsha256: same comment problem as seen on cryptsha512
	cryptsha256: got SIMD code working
	memory: added dbg funtions for 8 byte SIMD not doing byte swapping,
	  i.e. SHA512, but flat buffer
	cryptsha256: some tweaks done when porting code to cryptsha512
	cryptsha512: added SIMD. Also moved test vectors to common code
	cryptsha512: bug in non-OMP builds
	cryptsha512: error, any 2 limb hash was broken. All passwords over 15
	  bytes were failing
	cryptsha256 and 512: fixed for 32 bit cygwin OMP builds (worked around
	  compiler bug)
	cryptsha: removed debugging code. These formats are working fine now
	cryptsha512: added more test vectors, and found bug for length 32 and
	  48 hashes
	hmac-SHA256/224: added SIMD
	hmacSHA256/224 some small fixes, found when porting SIMD to sha512
	  algorithms
	hmacSHA512: added SIMD
	hmac-sha512/384 would not compile in non-SIMD mode without this change
	hmac-SHA384: added SIMD. Some debug code still commented out, for now
	hmac-sha256/224, use PAD_SIZE for the prep_ipad. It is the correct
	  size
	hmacSHA512: removed some DOS line endings. Switched to using PAD_SIZE
	  for size of prep_[io]pad
	hmac-SHA2 stuff: Removed debugging commented out code. Changed
	  OMP_SCALE for sha512 formats, SIMD
	xsha512: added SIMD
	removed DOS line endings
	hmacSHA384: bug fix and a couple changes trying to find the OMP bug
	  #1063. Still a problem
	ssha512: added SIMD
	ssha512: error building/running NON SIMD
	hmac-md5: change to prior commit. #1067
	configure: removed memdbg-ex from configure. That mode was written as
	  a last resort, hail marry attempt to find memory bugs. It does not
	  work for all formats, and should not be used that way.
	XSHA512: inc needed added to pragma for non-SIMD. Not sure why it did
	  not complain on SIMD builds, but I added it there also
	XSHA512: fixed bug for passwords under 4 bytes, in SIMD code. Key was
	  not cleaned properly
	base64-conv: fix for input text length being more than actual
	  available input text. Fixes #1071. A new -l test added also
	base64-conv: some fixes for last commit
	base64-conv: some fixes for last commits
	base64-conv: switched from strlen to strnlen
	drupal7: Added SIMD logic
	drupal7: minor text editing
	office_2007: SIMD code added
	office-2007: removed the crypt buffer, was not really needed
	office-2007. Changed interface to non MMX function to simplify
	  crypt_all code. Same type logic will be used for 2010 and 2013
	office2010/2013 added SIMD. Debugging code still there, commented out
	office2010/2013 debugging stuff removed
	office simd formats. Some simplifications
	office: lengthened plaintext length and removed a couple of warnings
	office: added max length password test cases
	ecryptfs: added SIMD (debugging code still there, commented out)
	ecryptfs: cleaned up comments
	pwsafe: Added SIMD code. 4x improvement
	keyring: added SIMD instructions
	SAP-H: added SIMD logic
	sse-intrinsic: SHA formats, added SSEi_FLAT_RELOAD_SWAPLAST flag. Fix
	  #1082
	Sybase-ASE: added SIMD logic
	blackberry-es10: added SIMD instructions
	pass_gen.pl: added ability to do shorter salts for sha256crypt
	cryptsha256: handle shorter salts on SIMD code.
	pass_gen: special code got left in
	sha512crypt: added SIMD ability to handle shorter salts
	cryptsha2: added code to help easily build withing SIMD (for testing)
	net-[md5|sha1]: Salt align problems on clang. #1081
	cryptsha2: mute warnings. Fixes #1080
	sybase-ase: unify case, and improve valid. Fixes #1087
	dynamic: SHA384/SHA512 added SIMD instructions
	(magnum:) Re-applied Jim's "bcrypt / opencl: created a BF_common
	  set of functions / data" (but updated to current core). Original
	  commit 8c0a72f.
	siemens-7 had 2 $ in the hash.
	siemens: only validate a 1. Since we now have split, a 0 should not
	  be valid any more
	dynamic: in a debug build, we do NOT disable any dyna format. #956
	dynamic: calls dynamic_FIX_SALT_TO_HEX if hash is dyna on --show=left
	  fixes #986
	MMX_COEF_SHA[256][512] changed to SIMD_COEF_[32][64]. Also changed
	  PARA for SHA2 functions
	cryptsha[256][512] a little cleanup of MMX name tags, also goes with
	  #1099
	dynamic:sha384. Some typo corrupton
	SIMD: #1099. Switched from (SIMD_COEF_32>>1) to SIMD_COEF32_BITS.
	  Added that define to x86-sse.h and x86-64.h
	SIMD: #1099. Changed define name of MMX_TYPE to SIMD_TYPE_STR
	after const added to count, gcc at times in the pragma omp
	blockchain: fixed promiscuous valid issue once we change to strtokm
	django_scrypt: issue seen when switching from strtok to strtokm
	SKEY: do not use strtokm at this time.
	gpg: change to work with strtokm, skipping over prepended delimiter
	kwallet: fix for promiscuous valid when switching to strtokm
	mozilla: fix to skip prepended delimiter, strtokm
	ssh-ng: fix to work properly with strtokm
	strip: Fix to work with strtokm
	memdbg: Try to maintain 16 byte alignments, since we are using allocs
	  now for crypt/input buffers
	dynamic: Regression problems (32 bit and memdbg) in dynamic after
	  3b6727f
	dragonfly: we missed a done
	dragonfly: we missed a done
	net-md5/sha1. Quasi thin format. We have to call dynamic.methods.done
	  by hand here, since we overloaded it
	memory.c: alignment versions of mem_alloc and mem_calloc
	dynamic: redone, to use the aligment versions in memory.c
	dynamic: redone, to use the aligment versions in memory.c, prior patch
	  was incomplete
	dynamic: redone, to use the aligment versions in memory.c, prior 2
	  patches were incomplete
	dynamic: redone, to use the aligment versions in memory.c, prior
	  patches were incomplete
	mssql12: buffer alignment with new mem_calloc for SIMD code
	many formats. Fixed 32 bit builds for SIMD after moving to calloc
	many formats. Fixed 32 bit builds for SIMD after moving to calloc
	many formats. Fixed 32 bit builds for SIMD after moving to calloc
	memdbg: got this working with new mem_aligned code. Also got VC ported
	  over
	memdbg issues and a memory leak found in VC port
	cygwin. Do not add _XOPEN_SOUR=600 define for _posix_memalign. It
	  causes tons of warnings, and cygwin works without it
	memdbg.h missing from these 2. Also a memory leak found and fixed once
	  memdbg was there, in office
	raw-sha512-ng: fixes crash in 32 bit builds, alignment
	VC port, without memdbg with new _malloc_aligned
	VC port, _malloc_aligned. Hopefully last fixes
	VC portability issue (_malloc_align)
	misc.[ch]: added new strtokm function, and a #define to switch all
	  strtok to use it
	Mute warnings about different parameter types in function declaration
	  vs definition
	memdbg: mute warning, size_t vs long param issue.
	VC compiling in jumbo.h
	plugin.c: added a comment about very suspect looking code
	config.c: switched to using strtokm
	markov: use strtokm and now start and end can be empty, with just the
	  : chars
	raw2dyna switched to using strtokm
	raw2dyna: revert strtokm change
	markov: level is now an optional param
	Some SHA512 formats were getting failures on VC debugging builds
	memory.c: bug in non-aligned arched for alter_endianity_w64.
	mask_ext: added missing memdbg.h include
	dynamic: binary align to 8 bytes
	cygwin build problem fixed. #1250
	dynamic: fix #1208 warning about pointer bool conversion.
	regen-lost-salts problem. Fix #1154
	dynamic format honors --disable-omp-for-fast-formats. Fix #1334
	dynamic disable OMP was not right. It always was disabling. Now it is
	  controlled by configure, and can be turned on
	-stress-test problems for thin dynamic formats. Fixes #1135
	required changed to get MSVC to build again with SIMD
	dynamic: work to get SIMD_PARA working for dyna with multiple hash
	  types, where the para do not match
	dynamic: fix problem where including dyna headers could turn off OMP
	  in john.c
	dynamic PARA problems fixed core crash for PARA=4 md4. #1127
	rar2john. Removed warnings seen on 32 bit builds
	dynamic. After 3e0b41d 32 bit builds where we had MD5 asm were failing
	  at link. #1334. NOTE, dyna 1401 and 1503 core and I do not know why,
	  yet
	MSVC issues with OpenMP build.
	dynamic: honor --disable-omp-for-fast was broken.
	dynamic: removed MD5_Go code. #1298
	changes needed to at least compile on my sparc
	pufferfish. jumbo.h required for VC to build (no snprintf)
	has-160: fixed BE failure
	dominosec8: ported to work for BE systems. #1345
	dominosec8: memdbg found a memory leak
	stribog: memory leak
	PO: removed MD5_go logic, replaced it with oSSL
	dynamic: Dos line endings
	md5_go: removed this module. Fixes #1347
	strcasestr: added to autoconf for systems without this function. Fix
	  1366
	small fixes to b383434
	has160: required memdbg.h being added
	many source files missing memdbg.h
	pomelo: after adding memdbg.h, the format was crashing in memdbg_on
	  builds
	memdbg: allow greater than 16 byte alignment. Fix 1200 Never align
	  better than requested Fix 1195
	aix_ssha: This would not build on non x86 systems
	memdbg: added memory.h include to the memdbg header
	memdbg: improved test code in john.c by adding the memdbg checks on
	  exit
	hmacSHA384: fixed core on non-aligned 32 bit systems
	XSHA512: would not build on non x86 systems
	memdbg: bug fixes in EXTRA checks, after recent changes
	XSHA512: fixed failures in non SSE builds
	dynamic: updated todo comments with items which have been completed
	memdbg: the dereference of uint32 data for fence post checking is no
	  longer done, so remove those unused defines
	sse-intrinsics: wrap the sha256 and sha512 in #define logic
	x86-64 non-SIMD build help. #1370
	x86-64 added -mno-mmx to the ignored list. #1370
	john.c: setvbuf portability issues. Likely there are other
	  portability issues using that function
	final status line in --wordlist mode did not contain percentage. Fix
	  #1372
	markov: fix core if force run where level is too small
	PHPS: address sanitizer found bug. This format requires 3 byte salt
	  (legacy code build). Fix #1261
	dynamic: removed some older todo comments. Allow better debugging
	  within VC
	dynamic_1506: remove the StartInX86Mode flag
	memdbg: mute warnings seen on 32 bit compilers from recent changes
	pseudo_intrinsics: pure SSE2 could not be built
	oracle12: Fixes to make work on BE system
	Some changes needed to get current MinGW64 to compile
	testparas.pl: perform the testing longer.
	testparas.pl: added seconds param, and extra information to final
	  table
	Mingw64: strip needs to use the proper cross compiler strip
	django-scrypt: if N too large, the kdf aborts, but we were not
	  trapping it. Fixes 1413. This probably should be in valid also
	pbkdf2-hmac-sha1: stack overflow possibile: Fix #1411 and #1412
	pbkdf2-hmac-md5: added proper valid() Fix #1388
	configure: removed warning messages about Expect not found
	scrypt lib code: validation checking. Fix #1385
	ssh: Improved valid, checking whether we can get the salt properly or
	  not
	vtp: buffer overwrite. Fix #1391
	vtp: domain_name length check in valid. Also, fixed overwrite problem
	  where we had an array of pointers, and not an array of chars.
	gpg: improvement to valid(). Fix #1417
	gpg: Handle a default algorithm. Fix #1418
	keepass: fixed valid(). Fix #1419
	luks: improved valid. Fix #1386
	base64_conv: handle binary or whole files with the utility. Fix #1423
	crc32c: changed test vector to be proper for ripper12345 starting
	  from ripper
	crc32: added crc32c to the format. Fix #1422
	crc32c: improved performance of non-SSE4.2 code. crc32, reduced
	  complexity of crc32c setup code
	base64_conv: mute warnings
	crc32: Unified all CRC32 / CRC-32C function into crc32.[ch]. This DOES
	  change the core files (crc32.[ch]), but was given the go ahead to do
	  this. Fix #1379
	pass_gen.pl: Fixed dynamic parsing that uses a negative salt length.
	  Added dynamic_1017
	pufferfish: added proper valid checks. Fix #1390
	oldoffice: Improved valid to fix ASAN found buffer read overflow. Fix
	  #1410
	office: improved valid. ASAN buffer read overflow. Fix #1409
	wbb3: Segment fault. Fix #1434
	opencl_pkbdf2_sha1: Same fix as done to core. Fix #1411 Fix #1412
	opencl_gpg: Same fix as done to core format. Fix #1417
	oldoffice-opencl: same fix as on core. Fix #1410
	Add support for more NTP hash types. Partly reverts 4556eb4
	django: buffer overflow. Fix #1408
	clipperz: buffer overflow. #1407
	MinGW64 warnings. MinGW64 can no longer handle %I64 modifier for long
	  long
	MinGW64. %I64 reverted.
	bitmap-perf-test: attempt to correct MinGW64 build on CirclCI
	MinGW64 warnings. and modification to all %ll* to LL* and %zu to Zu
	  within printfs. #1439
	opencl-rawmd4: fix warnings for sprintf parms #1441
	MinGW64 warnings muted. #1439
	--list=format-all-details, added more details to A $ format line
	MinGW install doc. Missing package
	Small debugging change to the build script to see Makefile
	CircleCI debug take 2
	CircleCI removed debugging for now
	pbkdf2-hmac-md5: attempt to quiet CircleCI until we figure out problem
	Missed another ctx reference
	MD[45].[ch]: make the structures appear closer in binary layout to
	  oSSL
	md4.c: fix is a global cut/replace screw up
	configure.ac: fixed oSSL search for cross compile
	CircleCI-MinGW.sh: no longer requires OPENSSL_LIBS after fixes to
	  configure
	dynamic-thin: Enhanced so a temp dyna script can be PART of the thin
	  format file
	dynamic_thin updates. A couple fixes and warning muting
	thin-dynamic: made changes to allow native test hashes in test script
	dynamic: added 2 new flags, for pre-compute in sha1/sha256
	dynamic.conf: added missing comments, and set coldfusion salt-len to
	  64
	pass_gen.pl: updated with 3 dynamic formats from dynamic.conf
	configure.ac: OpenSSL issues between no-pkg-config and cross compile,
	  etc. #1451
	NETLMv2: Buffer overflow. #1405 #1406
	django: fixed core dump. Fix #1397
	NETNTLM buffer overflow. Fix #1405 Fix #1406
	uint_xx cleanup: Fix #1457
	MIN/MAX code cleanup. Fix #1456
	SKEY: proper valid. Fix #1396
	salted_sha1: Improved valid. Fix #1395
	pomelo: improved valid() Fix #1389
	dynamic: #1453. Added all hash types to the crypt() and crypt()
	  optimizations
	dynamic: some optimization of types md5(md5(....)...))
	dynamic_1501 optimization
	dynamic: Added true dynamic expression building format
	updated copyright notifies in dynamic_compiler
	pfx: fixed memory leak
	pfx: fixed memory leak fully. Fix #1246
	dynamic_compiler. Remove the @ chars from expression. added memdbg.
	  Added a testing main() function
	gpg: mem leak. fixed #1245
	gpg: missed a big-num memory leak
	pass_gen.pl: updates to get_token function, to match what is being
	  done in the dynamic_compiler code
	hmacMD5: fixed core. Fix #1472
	dynamic_compiler. Some rename, and moved a function into
	  dynamic_compiler_plug.c. #1477
	renamed dynamic_compiler_plug.c to dynamic_compiler.c. Fix #1477
	dynamic_compiler: real working. Still much work to do, but many
	  hashes ARE fully working
	dynamic_compiler: error, md4/md5 salt-as-hash were getting 40 byte
	  length for the salt
	pbkdf2-hmac-sha1: buffer overflow in prepare. Fix #1478
	dynamic_compiler: Handles more expressions, still more work to do
	dynamic_compiler: added gost, ripemd, tiger and whirlpool types
	dynamic_compiler: had to add MGF_INPUT_xx_BYTE for hashes not 16 byte
	  long
	pass_gen: fixed a bug in gost processing for dynamics
	dynamic_compiler: added unicode. initial gost tables properly. logic
	  for salt length
	dynamic: unified $salt/$pass to be $s/$p
	dynamic_compiler: added todo list, changed salt logic. Some pure
	  whitespace editing
	pass_gen: removed all _64e hashes and replaced with _64c. _64c will
	  use crypt alphabet
	-list=build-info: lists SIMD information
	opencl and cuda wrapper defines not present
	load_one_format (john.c). Do not lower case format name IF it is a
	  dynamic= hash. They are case sensative
	pass_gen: fixed some errors in constant validation checking. Removed
	  all md5u() types. Now utf16() must be used instead. It gets same
	  results, but removes this ambiguity
	dynamic_compiler: many fixes and enhancements
	dyna_compiler: static added to many functions. Some md5u() stuff was
	  still left and removed
	dyna_compiler: removed or commented out unused or not yet used static
	  functions. Fixed a couple bugs in ripemd256
	dynamic: normalized unicode() -> utf16() for dynamic expression
	  strings
	dynamic: fixed wrong comments. Fixed bug in dyna_85. Fix #1488
	dyna-big-crypt: removed spurious comment (not implemented hash)
	dynamic_compiler: Starting work to hook in the compiled dyna back into
	  existing dyna hashes
	dyna-compiler. SALT_AS_HEX was not properly building test strings.
	  f6aef52
	dyna-comp: got the padding functions working properly
	dynamic: Fixed problem loading test strings (example was dyna-29)
	  if the array of test strings had any types not loaded, then all the
	  rest were not being used. Now we properly pack them into the
	  array, and use them
	dyna-comp: fixed 2nd-salt not working
	dynamic: bigcrypt-md4 was broken. Fixes #1479
	dynamic: got uc() and lc() working properly in both the format and
	  compiler
	dyna-preloads: incorrect comments fixed
	dyna-big-crypt: Fixed issues in many types. Wrong length for
	  md5-overwrite for outputs other than hex. Key clean problems
	  switching between BE/LE formats (or 32bit to 64 bit). Issues
	  mentioned in #1463 and #1491
	dyna-compiler. Fixed mem leaks and SHA512 was not working (mentioned
	  in #1463)
	dynamic-preloads: comments about flags used
	dynamic: Fixed big problem caused by new self-describing thin dynamic
	  which is a LATE loading format. They get loaded and initialized
	  AFTER john has called init(), and the working set of data for
	  the dyna format was mangled. This patch keeps it. Also, looking
	  at buffer over flows for dyna-39 Asan problems (#1489 #1490)
	dyna-compiler: we have only consts from 1 to 8, not 1 to 9 Always
	  output max key-length, so that we get 110 bytes. hexify
	  constants (convert : into \x3a)
	dyna-compiler. 2 script output issues. Buffer overflow on
	  convert_old_to_new. #1490
	ishex() and other hex stuff from common.c Changed to only work with
	  even number of characters. #1494
	ishex() additional fixes. #1494
	dynamic_big_crypt.c: this file has been REMOVED, and is now
	  autogenerated by ./configure. #1491
	dyna-big-crypt: some cosmetic changes to last checkin
	dynamic_big_crypt: Fixes build problems
	dyna-big-crypt: still build problems on clang and cirleci
	dyna-big-crypt: echo some debugging, to try to figure out why they can
	  not compile
	dyna-big-crypt: hopefully this will fix circleCI build. I really do
	  not know why it can not build/run dynamic_big_crypt_chopper.c file
	dyna-big-crypt: last change to try building early, was not building a
	  new dynamic_big_crypt.c at all
	dyna-big-crypt: changes to the .c and .sh to hopefully at least get
	  Travis functional again
	dynamic: added haval256_3 and haval128_4 hash types to dynamic
	dynamic: haval added to compiler, and some other bugs fixed
	dynamic: modifications to get dynamic-big-crypt.c building properly
	  even on cross compiled systems.
	PHPS2_fmt_plug.c: chmod to 640
	2 more source files with wrong mode (set to 640)
	dyna-compiler: Now ALL internal formats that can work with
	  dyna-compiler, DO properly work
	dynamic: LARGE change. Added all HAVAL hashes (15 varient)
	  Converted large hash type linkage code into #define macros (in all
	  but 2 spots in dynamic.h) Removed deprecated *_base16 flat hash
	  functions
	dynamic: some more define macro repetative code reduction for large
	  hashes
	dynamic: haval fully integrated, and fully working. Found numerous
	  other areas where I could use macros to reduce source size using
	  macros.
	dynamic_big_crypt.c: produce this file in Makefile #1491. Still
	  work to do. The chopper file will be ported to Perl
	dyna-preloads.c quiet 2 unused var warnings. Added new format
	  type: -format=dynamic-all That type will test all dynamic,
	  including any disabled dynamic formats
	dynamic_big_crypt_chopper: ported to perl. Changed make process some
	dynamic-big-crypt-gen: changed how script is executed in makefile.
	  removed a comment left in from debugging development
	dynamic_big_crypt.c generation, changed commenting
	Dynamic: Added MD2, Panama and Skein hash algorithms
	dynacomptest target added (builds the thin test engine for dynamic
	  compiler this tool is a decent parser test engine, and I also
	  use it to create dynamic large hash test strings
	dynamic_compiler: added lc($p) and uc($p) syntax
	dynamic: added lc() and uc(). Better format label
	dyna_compiler format: label string had last byte missing
	dyna-compiler: space pad string pasting macros. Added lexical
	  error handling for mixing p, uc(p) and lc(p) (and u)
	Compile fix for nt2/rawmd4 for 1032054 for any non SIMD build
	dyna-compiler: Fixed upper case hex hashing in inner functions like
	  md5(MD5())'
	some plugged hash files unplugged. Fix #1525
	base64 length for valid usage. Returns -1*len if string not pure
	base64. last change had bug in the check for pure string logic
	dyna-compiler: added symple function exponentation such as
	  md5($s.$p)^4 which is md5(md5(md5(md5($s.$p))))
	silence a couple warnings
	dyna-compiler: set BENCHMARK_LENGTH properly
	dynamic_compiler_fmt: was not showing proper label if expression ended
	  with exponent
	pix/mdc2. Fixed benchmark length. Fix #1536
	fixed salted dyna hashes listing no salt len. Fix #1535
	dynamic salt length. Needed to be negative in this one
	configure: target for dynacomptest needed CPPFLAGS
	dynamic: bare hashes with but no additional salt work if user in
	  field 1
	sse-intrinsics: recent changes in 9783278 totally broke my VC builds
	md4.c: undid some changes in abe2cdb. #1526 references this also
	dynamic: fix salt crash problem. Fix #1545
	dyna-compiler: handle both and (and , , )
	pufferfish: fixed bug in valid. Fix #1546
	sapH: fixed bug where there were spaces in the hash. Fix #1547
	base64_convert: bug in new return -len for non pure strings. Fix #1551
	dynamic: salt buffer read of invalid data. Fix #1554
	wow-srp: handle odd length hex and better validation. Fix #1553
	openssl-enc: valid() problem. Fix #1550
	BE issues (missing johnswap.h) and problems building with HAVE_SHA256
	  false, but using oSSL
	Fixed crash on !ALLOW_UNALIGNED systems. Change required when dyna
	  flags went from 32 to 64 bit integers
	dynamic problems on BE due to recent optimizations
	dynamic a couple tweeks for big crypt building
	removed link for pwsafe2john from legacy makefile
	dynamic problems under BE systems with the set_input2_len32 function
	dynamic: had to add set length_32 with clearing back into the command
	  list, crashes on SSE 64 bit (but not on my AVX2 64 bit??)
	dynamic_compiler. magnum fixed $u handling on raw hashes. Fix #1541
	dyna-compiler: change prepare to always call expr_normalize
	dyna-compiler: rolled back 1c9f842
	dyna-compiler: corrected prepare always normalizes hash
	dyna-compiler: removed commentted out code
	dyna-compiler: prepare adds dyna= signature to all valid raw hashes
	dynamic: increased buffer count for MIC
	dynamic_types.h: auto scale size of arrays based upon with of
	  SIMD_COEF
	sha3: fixed Asan overflow in input string. Fix #1492. Whenever using
	  Keccak functions we need to round up to next even by 8 offset
	dyna-compiler: some salt_as_hash types were missed
	dynamic: big crypt 64 bit SIMD hashes had key cleaning problems. Fix
	  #1563
	pass-gen: dynamic expression was not handling upper case hashes
	  properly
	dynacomptest removed from default target. It still can be made,
	  but must be explictly requested. (request from @magnum)
	dyna-big-crypt: 64 bit SIMD cleaning for more cases
	Added -format=dynamic-all to tests for the CI builds
	dyna-compiler: Computing max length of input password was not
	  taking into account hash type, or length of sub hashes.
	dyna-compiler: improved test shell. fixed a couple bugs turned up by
	  the test shell
	dyna-compiler documentation. VERY thin, but it is a start
	wrong file attributes
	dynamic_big_crypt.c in unused was way out of date
	dyna-compiler: Track length of both input buffers independantly,
	  to compute max input length allowed. Also, distinguish between 64bit
	  SIMD, 32bit SIMD and non-SIMD in length computations, because
	  they each have a different max length allowed
	100% white space cleanup. no code change
	dyna-compiler: added a library of pre-built scripts. It is sparse
	  ATM, but I will be able to add formats which the compiler does not
	  optimize well
	dyna-compiler: added a ,nolib flag to the expression to force NOT
	  using the lib scripts
	dyna-comp: added debug dumping of scripts read in from the compiler
	  lib
	dyna-compiler-test.sh: switched to ksh. Ran on my cygwin before, but
	  when I tried on ubuntu, it was no go
	dyna-compiler: Added some hashes to the optimized lib. Fixed a couple
	  bugs
	dynamic: Added dup flags, Tiger and TIGER
	dyna-preloads: Removed some depricated flags
	dyna-parser: added TIGER flags, fixed bug in MD5 flags
	dyna-compiler: additional optimizations. Speed same or better for
	  almost all dyna types
	dynamic was not building properly unless building SIMD
	dyna-compiler: Had some bugs for RIPEMD128 and the HAVAL hashes in
	  picking right key-hex and salt-hex length
	dyna-compiler: pretty print the script in ,debug mode
	fixed trailing whitespace problems. #1567
	dyna-compiler: Fixed ASan error, when we walked backwards past our
	  buffer
	simd build problems under VC
	dyna-comp-test: changed from /bin/ksh to /bin/bash. Use local .pot
	  file so the logic will work properly
	dyna-compiler: added O=# flag to control optimization
	dynamic: renamed some flags. Fixed bug where pass to offset other than
	  32 was failing
	dynamic: added a specific comment at each point where we need to edit
	  the dynamic files when adding a new digest type into the code
	added a .editorconfig file (see editorconfig.org). This is just a
	  start. We may want to change this
	.editorconfig. LOL, Saved before I updated Notepad++ with the plugin
	  and had no trailing lf
	dyna-compiler: added first -O2 optimization (post script creation
	  pinhole optimizations) Currently only 1 optimization, but there
	  will be more (and the 1 is a pretty good one). Optimization is
	  MGF_KEYS_INPUT, and will only be done if the script allows it
	adjusted file attributes
	dyna-compiler: added O=3. This optimization level tries to build a
	  script in intermixed SIMD. It is not perfect yet, but does work
	dyna-comp-test.sh had rm commented out for some debugging
	dyna-compiler. Better mixed SIMD code. Parse more complex expressions
	  properly
	dyna-big-hash: added 4 temp vars. had to adjust simd code also.
	  This is early WIP code. Right now, there is no way to use these
	  vars, just write to them.
	crypt: failing to build right, and coring on legacy build. Fix #1471
	Removed all FMT_MAIN_VERSION defines. Fix #1185
	stray source got inserted in last update
	pkzip/zip: switched internal code to use strtokm and ishexlc. Cleaned
	  up a bunch of crap because of using unsigned chars all over the
	  place. Fix #1123
	more formats changing mem_calloc_tiny to calloc/free. #1110
	more formats changing mem_calloc_tiny to calloc/free. #1110
	more formats changing mem_calloc_tiny to calloc/free. Fix #1110
	64 bit raw sha formats were not aligned properly for 32 bit builds
	x86-sse.S: changes from last core merge which needed to be mirrored
	  in our jumbo specific code
	raw-sha384: fix buffer overwrite. Fix #1577
	depricate john.local.conf. added new include syntax and a new
	  john-local.conf file can be made, both in the $JOHN directory
	  and in the local directory. #1495
	.gitignore updated with john-local.conf found anywhere in the tree
	dynamic: MGF_SET_INP2LEN32 was not working since adding the @dynamic=
	  hash type. Fix #1579
	more work deprecating out john.local.conf file. #1495
	I had C on the mind, and used wrong include type for john.conf
	mssql05: buffer overflow (ASan error) found with jtrts
	putty: buffer overwrite. #1582
	files would not compile in non-SIMD builds
	bug in non-SIMD builds
	non-SIMD compile failure
	dyna-big-crypt: fix crypt_only code. Fix #1585
	trip: would not build in non-SIMD mode" ;
	removed last traces of kwallet2john.c
	dynamic was failing for any MD5_X2==1 build, i.e. many non-SIMD
	added non-SIMD build to Circle-CI. #1598
	added non-SIMD build to Circle-CI. #1598 (try 2)
	added non-SIMD build to Circle-CI. #1598 (try 3, likely to fail,
	  since sudo could not run)
	added non-SIMD build to Circle-CI. Fix #1598
	added non-SIMD build to Circle-CI.
	circle-CI. Added 32 bit-any and 32 bit-sse2 build/test
	CircleCI. I think the script was not properly exiting upon errors for
	  many cases
	configure: if fmt_externs.h or fmt_registers.h fail, then bail and
	  reset makefile back to the stub. #1590
	changed link for windows pre-build
	dynamic: problems building on non LE systems
	build on sparc failing. ar -s by itself was not valid. But -s can be
	  combined with other options (looking at gnu ar)
	dynamic: commented out a slow hack, as it appears to no longer be
	  needed
	make process had problems under Solaris
	mask.c: Added ?W which is ?w with case switched for all characters.
	  #1612
	mask: updated document to match new behavior
	mask: ETA was 1/x the correct time in -fork=x mode
	dynamic: base64 input was not properly validating in all cases. Fix
	  #1625
	dynamic: fix problem where salted dyna format requires saltlength
	  to be set by the designer of the script, but it is not set. Fixes
	  #1611
	pass_gen: output error message if a NON supported or mistyped hash
	  name is tried. Fixes #1639
	pass_gen: if testing just 1 format, do not output the ^D message.
	config: Could not .include [section] which did not have a colon char,
	  such as [Options]
	HAVE_BIO_NEW: disable some items if that function is not available:
	  #616
	Fixed busted Makefile.in from last commit
	Makefile.in: extra space left when moving PROJ stuff out of main
	  asignment
	pseudo_intrinsic.h: failed to build with MSVC after 3884f8f
	recovery.c: created config var to protect restore files. Default is
	  off. Fix #1635
	external: The error file was using the global file name, not the file
	  name for the external object. Fix #1650
	dynamic_compiler: bug, first character of constants was not being
	  picked up
	dyna_compiler: fixed core if an empty constant value provided in the
	  expression
	dyna_compiler: Building test strings before validating the hash fits
	  in our SIMD buffers could cause a crash
	loader.c: ldr_in_pot var useful for more than just builds with
	  HAVE_CRYPT
	base64_convert.c: some stack overwrite conditions fixed
	has-160: rename the fmt_main structure so it is found after raw-sha1
	Merge of raw-sha1 and nsldap, and start of common raw-sha1 code for
	  GPU
	non-thin phpass-md5. This needs LOTS of work, but will compile/run
	phass-MD5 thick: Rewrote. Now with SIMD and OMP. #1672
	phpass: scrubbed thin format stuff. Will rename fat file when I know
	  things ae happy.
	phpass-MD5: made format label, and output string compatible with older
	  thin version
	dmg2john.c: Removed headers (ossl/evp and hmac, and gladman). These
	  were not needed, code not in this file
	cq: busted cmp_all
	added new file, just a header, to easily do hmac-sha1. For removing
	  gladman code. #1686
	hmac_sha1.h: added digest length, so that a shorter than 20 byte
	  buffer can be used
	all gladman code REMOVED. The only thing it was there for was
	  hmac-sha1. We now have that function of our own making. #1686
	Opps, missed this for gladman code removal. It was done just was not
	  in last git commit
	failures on travis? Does not have problems in cygwin, but hopefully
	  this fixes the problem
	hmac_sha1: new code was failing on 32 bit builds
	bitcoin: was not building on my sparc box
	luks2john: removed oSSL BIO_base64 junk. #1686
	Luk2john was not building correctly
	Legacy build: luks2john
	hmac_sha1: port for VC
	openbsd-softraid: removed evp_hmac_sha1, replaced with hmac_sha1
	changed name of hmac_sha1.[ch] to hmac_sha.[ch] to make it more
	  generic and so I can add more sha* hash types
	2 files missed in header name change
	fixed some warnings in certain builds. Also added wpapsk-opencl to
	  self_test_full_body function check
	hmac_sha: added sha256 and sha512 hmac
	encfs: removed oSSL hmac-sha1, replaced with JtR code. #1686 still
	  have AES to work on to complete
	rawSHA1-ng: added new common code, including {SHA} handling
	7z, recent changes needed fixed for VC to compile
	raw-sha1-linkedin: updated to use common interface and {SHA} signature
	  into .pot file. #1613
	formats: added some commented out code to help find out why a source
	  would be different
	salted-sha1: created common code for use in CPU/GPU code to keep
	  validation code the same
	attributes
	dmg: replaced oSSL hmac-sha1 with our own code
	.pot: allow multiple .pot files to remove already cracked items. Fix
	  #1623. Also document john-local.conf and removed references to
	  john.local.conf
	encfs_common: Obviously chainedIV is not being tested. We need to add
	  a test vector for that type
	encfs: right or wrong, this sets the logic back to original. The h[]
	  array is not preloaded in the ChainedIV now. Not sure if that is
	  right or wrong way
	new single mode rules found
	hmac_sha: if a system did not have SHA256/512 in openCL it would fail
	  to build
	single rules: improvements to the recent group of new rules
	luks: fixed non-inline processing. Was reading 0 bytes from file. Fix
	  #1696
	single: added configuration for guessed_keys->count extra work.
	  Default is to do this work (like core). but we can now override it.
	  #1706
	single: added logging of two configuration set items
	.pot extra load. Ported to mingw and msvc
	MSVC, .pot reload. Changed to a do{}while
	agilekeychain-opencl: added test vectors: #1637
	added test vectors to bbes10, luks and sha3-512. #1637
	pass_gen: simplified the large hash dynamic macros. Will be adding
	  more soon so wanted it simpler
	dynamic: added 4 SHA3 hashes and 2 Keccak hashes
	dynamic: Moved disabled dynamic formats over to their own conf file
	dyna_compiler: Bug in keccak-512 outer function
	pass_gen: added sha3 and keccak dynamic formats, and added these
	  hashes to the expression parser
	pass_gen: added MD2 to the dynamic hash types
	dynamic: lowercase for -list=subformats. #1717
	created error_msg() function. #1714
	fixed usage of pexit to error_msg. Fix #1714
	missed file in last commit (pexit to error_msg change)
	dyna-compiler: invalid parsing. using *_b64 in function search. Should
	  have been *_64
	dynamic: fixed issues found with fuzzer, base-64 encoding and re-crypt
	  problems
	pre-built dyna-big-crypt.c: base64-recrypt and keccak fixes
	dynamic: normalized case of all hash functions. Fix #1717
	pass-gen: normalized case of hash names of unused dynamic expression
	  hashes
	mem_align. Fixed globally, and no performance hit, Uses proper define
	  macro
	formspring: force valid to honor the 2 byte salt.
	several formats needed format flag bits set
	added FMT_SPLIT_UNIFY_CASE
	format.c. Calls to free() changed to MEM_FREE(). VC was crashing,
	  since all allocs are done using the _aligned_malloc, thus the native
	  free() can not be used
	formats: make fmt_case_unify tests happen against every test case
	removed deprecated code. This was only there for VC, and now we handle
	  this differently in memory.[ch] for VC
	PHPS/PHPS2: fixed to properly unify case in split
	formats.c: Added additional logic in the unify-case function which
	  will be required to properly handle compiled dynamics
	formats.c: eliminate false positive failure to unify case happening in
	  mysql
	dyna-compiler: for now, disable FMT_SPLIT_CASE. In the end, this
	  format may need to be setup to handle split_case, but until I figure
	  it out, this allows it to pass -test-full
	nuked clan (nk) input hash case bug (#1472)
	fixed split-case bugs. Some for #1742
	dynamic_big_crypt: better handle larger SIMD alignment issues
	fixed split-case bugs. Some for #1742
	split case bugs. #1742. added upcase hex to common
	revert 56d5b15
	common.c: Added some common defines for types. Added a length variant
	  to the ishex*() functions. Added u and l variants to hexlen
	IPB2, fixed bug. We can not treat itoa16 as a string. Fixes #1766
	Start using the common defines for HEXCHARS, base-64, etc in common.h
	dynamic: removed deprecated, unused internal function. Fix #1768
	recent calloc change (9e100b4) boned VC builds
	fixed new common hexlen function. DMD5 format, properly ignore case.
	  #1742
	dynamic: sph_ripemd spelling error
	krb: adjusted for case/split issues
	added a --show=invalid command. #1773
	some tweaks to --show=invalid and dox.
	dynamic_IS_VALID now preloads on first call. subsquent calls are
	  instantaneous
	dynamic loading. Improved the isValid function to FULLY cache, and
	  only do the real work 1 time
	enabled display of count of valid and invalid hashes for a
	  --show:invalid usage
	several formats: corrected many split/case issues. #1742
	numerous formats. Fix salt-case bugs. #1742
	rawsha512-ng. New problems on my VC builds. THis code moved into
	  psuedo-intrinsics, but was left in this file also.
	configure: changed != xno to = xyes for some display results (crypt,
	  mmap)
	many formats. Fixes for split-case bug. #1742
	many formats: fixed salt-case bug. #1742
	enhanced check for FMT_SPLIT_CASE problems. There still are formats
	  left to be found but this patch finds a large class that can be
	  found automatically
	split-case bug. Last push had issues in opencl-o5logon format
	simd-intrinsics: removed non-portable debugging crap
	fixed numerous compiler warnings from recent split-case improvments.
	  #1785
	memory leaks fixed in new -test-full code (dyna salts)
	mssql-* fixed split/case bugs. These changes must have been missed
	  with committing all the files last week
	split-case bugs: The last of the known bugs are fixed. Also 2 new
	  methods added for finding these, but they still need more work to
	  get right
	travis-CI and CircleCI. Changed from -test to -test-full. Not 100%
	  sure this was done right, we will see
	-test-full fixed memory leak in salt for a test
	some -test-full missed on circle. Add a john-local.conf to have no
	  formats disabled
	some changes in handling of Disabled:Formats, to make easier better CI
	  testing
	problems with travis.yml, not sure what the problem is, possibly echo
	  can not be used ???
	jumbo.h: we had a VERY busted header wrapper. OMG, failure to set
	  the define, lol. I think this was my F-up
	add jumbo magic define, so we KNOW when code is being built jumbo or
	  not. This allows better merging of john master code, whichc we do
	  not control
	merged -test and -test-full into 1 function. Removed flag for
	  -test-full. It was not needed. -test-full is now a required
	  numeric param that tells the level to test. formats.c reworked,
	  to make a simpler merge from master branch, and it documents
	  differences between master branch and bleeding. #1792 and
	  #1795
	jumbo.h. Recent proper header wrapping was causing problems with VC
	  builds
	4th split-case bug test, full generic. But has some bugs and
	  whitelisting to do. Only runs at -test-full=1 level
	rar (fixed split-case bug). bcrypt, white-listed split-case check 4,
	  #1742
	EPI, chap, openssl-enc. split-case problems. #1742
	wbb3, putty, lotus5-opencl. split-case problems. #1742
	revert changes from 399217f
	last of the split-case bugs. Fix #1742
	split-case test-4 is now to be run at level 0
	fixes and code clean up for inline vs _inline for _MSC_VER builds
	formats.c: memory leak in -test-full mode, found with memdbg
	foramts.c: fixed asan read problem, and memory leak for -test-full
	  mode
	keystore. remove memdbg warning by switching to tiny_memory
	  allocation
	asn1 changed mode to 644
	pem: remove salt clean warning.
	asn1_plug: include required for VC build
	PEM: core crash found by fake CI on my sparc system
	rawSHA1. Fixed BE problems. #1861
	nt, raw-md5, raw-md4: Fixed BE problems. #1861
	nt: BE problem. #1861
	Keccak: BE problems: #1861
	dyna-big-crypt: put SIMD wrapper around a couple functions. #1874
	Azure AD added to pass_gen.pl
	AzureAD format added. (CPU only)
	AzureAD execute permissions
	Azure AD: removed FMT_OMP_BAD. this one is not bad
	luks: BE issue. #1861
	pass_gen.pl: start to normalize the -loops param
	rollback changes from da7d26a
	pass_gen.pl normalized adjustable loop counts for all formats, using
	  -loop= value
	pass_gen.pl: -loops= default for django was wrong. Changed it to 10k
	pass_gen. Help screen for dynamic was not always being displayed
	dyna-compiler. Auto-Escape constants with colon char in them
	dyna-compiler. Handle ) char in constant strings
	dyna-compiler. Allow @ char in constants
	bcrypt performancce improvement on AVX/AVX2 systems. Fix #1199
	john.c: correctly handle * char for dynamic= format: Code by
	  @magnumripper. #1747
	add config var to disable runtime-CPUID checks
	revert john.c changes to CPU_detect code location
	reverted other CPUID-ignore code. Left as commented out
	revert ignore-CPUID logic
	asa-md5: handle salts from 1 to 4 bytes, not fixed at only 4. Fix
	  #1887
	john.conf: removed left over traces of the IgnoreCPUID stuff
	dynamic-self describing documetation update
	hmac-SHA256: New larger salt logic was busted for salts of varied
	  sizes
	hmac-SHA256: changed the SIMD salt structure

Sayantan Datta (266):
	DEScrypt OpenCL: Use a "safer" kernel for some devices (drivers)
	  that could not cope with the goto's.
	mask.c: fixed stretch_mask buffer overflow bug
	descrypt-opencl: limit max LWS to 64
	descrypt-opencl: Limit LWS to 64.
	descrypt-opencl: proper handling of cpu devices.
	descrypt-opencl: Force LWS to 1 for cpu devices on AMD platform.
	descrypt-opencl: remove stray output.
	descrypt-opencl:set default LWS to 64 for Intel CPU on Apple.
	relocate reset() after mask_init()
	device mask
	work-in-progress:mask mode internal candidate gen
	work-in-progress:mask mode internal candidate gen: #2
	work-in-progress:mask mode internal candidate gen: #3
	work in progress: gpu mask commit 4
	Raw-md4-opencl: partially working gpu password generation
	Raw-md4-opencl: password generation on GPU(in alpha stage)
	self-test: reworked
	self-test tweak
	Raw-md4-opencl:unified kernel for self-test, mask mode and other
	  modes.
	Raw-md4-opencl: Fixed incorrect atomic update.
	Raw-MD4-opencl: better get_key()
	Raw-MD4-opencl: increased internal key count.
	self-test: re-enable max-length test.
	clean debuuging outputs.
	fixed self-test for bfegg, HMAC-SHA1 and mysql.
	Raw-MD4-opencl: reduce max kpc for mask mode.
	fixed broken mas-mode
	descrypt-opencl: reorganized code for new self test.
	descrypt-opencl: properly release used kernels.
	descrypt-opencl: leaner code
	descrypt-opencl: better compare on gpu
	descrypt-opencl: removed unnecessary code.
	descrypt-opencl: better compare on gpu
	descrypt-opencl: efficient hash loading on to GPU
	descrypt-opencl:safer get_key, better hash loading code.
	descrypt-opencl: efficient key transfer.
	descrypt-opencl: remove unnecessary parameters form key struct
	descrypt-opencl: faster set_salt()
	descrypt-opencl: process keys only when it is changed
	descrypt-opencl: seperate kernel file for finalize keys kernel
	descrypt-opencl: process keys only when changed
	descrypt-opencl: remove redundant and unnecessary code
	descrypt-opencl: removed extra memory allocation
	descrypt-opencl: consolidate redundant lines
	descrypt-opencl: cleanup
	descrypt-opencl: cpu-fix
	descrypt-opencl: Successful kernel compilation on MIC(self-test still
	  fails).
	descrypt-opencl: performance optimizations.
	descrypt-opencl: save hardcoded kernels on disk and cache them
	  quickily on next run.
	descrypt-opencl: hardcoded kernel Nvidia/Intel optimisations.
	descrypt-opencl: passes -test=0
	descrypt-openc: all kernels tests for max usable LWS.
	descrypt-opencl: select kernels at runtime
	descrypt-opencl: reduce static memory use.
	descrypt-opencl: cosmetic changes
	mask mode: Fixed memory corruption by GPU mask.
	Avoid byte addressable store on AMD gpus.
	Use private memory for Nvidia GPUs.
	raw-md4-opencl:Use host defined macros in kernel.
	Fix progress reporting when GPU mask is used.
	raw-md4-opencl: fixed potential memory bug.
	mask.c: fix template key buffer overrun.
	Build tables.
	raw-md4-opencl: prepare for new hash checking
	raw-md4-opencl: new hash checking.
	raw-md4-opencl: use perfect hash table.
	raw-md4-opencl: optimize when gpu mask locatations are fixed.
	raw-md4-opencl: bitmap performance test
	build-table:fix openMP issues for older comilers.
	raw-md4-opencl: fix issues with opencl 1.1
	raw-md4-opencl: fix issues for Juniper.
	device info: add check for gcn 1.0, 1.1 and 1.2
	raw-md4-opencl: hash checking optimized upto 10k hashes.
	raw-md4-opencl: finalize.
	raw-md4-opencl:cosmetic changes.
	raw-md4-opencl: reduce GPU memory use.
	raw-md4-opencl: proper use of multi_profilingEvent[] and update war[].
	raw-md5-opencl: new hash checking.
	raw-md4/md5-opencl minor performance improvements.
	raw-md4/5-opencl: remove leftover debug code.
	raw-sha1-opencl: new hash checking.
	raw-sha1-opencl: compute hash without changing key.
	generate hash tables: suppress warnings.
	raw-sha1-opencl: add license info.
	raw-md4/md5/sha1 -opencl: bypass pinned memory allocation when unable
	  to allocate page locked memory.
	build tables: use more latest openMP.
	raw-md4/md5/sha1-opencl: fix constant cache use.
	build_table:resolve memdbg issues.
	fix memory leaks and memdbg issues with new hash checking stuff.
	raw-md4/md5/sha1: fix bug where mem object is queried before it's
	  created.
	nt-opencl: rearrange kernel.
	nt-opencl: use key transfer similar to md4 kernel.
	nt-opencl: gpu mask update.
	new format:mscash-opencl and bug fix for other gpu mask enabled
	  formats.
	mscash-opencl:gpu mask update.
	gpu mask format use constant cache more aggressively.
	mscash-opencl: pass parameter using kernel args instead of -D
	mscash-opencl: remove unnecessary parameters.
	mscash-opencl: new hash checking.
	mscash-opencl: seperate create_clobject
	opencl-mscash: new auto tune.
	mscash-opencl: finalize autotune.
	mscash-opencl: remove warnings.
	opencl-mscash: fix multiple memory object release.
	mscash-opencl: fix opencl compiler warning.
	mscash-opencl: more stringent limit checks.
	nt/raw-md4/md5/sha1-opencl: auto-tune update.
	use better alternative to clFillBuffer conforming with opencl 1.0.
	nt-opencl: bugfix.
	lotus5-opencl: probably should fix cpu device errorsgit add
	  opencl_lotus5_fmt_plug.c
	nt/raw-md4/md5/sha1-opencl: do not use local memory when device is
	  cpu.
	loader.c: fix sequential_id calculation.
	loader.c: additional checking for sequential_id calculation.
	mscash2-opencl: new multi-gpu code.
	mscash2-opencl: delete previous files.
	mscash2-opencl: add copyright info and fix include braces.
	mscash2-opencl: add opencl flags.
	mscash2-opencl: improved multi-gpu scaling.
	mscash2-opencl: autoTune chooses LWS more accurately.
	mscash-opencl: fix valid bug.
	Temporary Bug fix large hash collisions.
	lm-opencl added.
	lm-opencl: prepare for new auto_tune().
	lm-opencl: cosmetic changes.
	build-tables: bug fix for large hash collisions.
	lm-opencl:new auto tune.
	lm-opencl: device autotune.
	lm-opencl: accurate LWS tune.
	lm-opencl: auto tune finalize.
	common-opencl: add missing macros.
	lm-opencl: auto tune bugfix.
	lm-opencl: more bug fixes and cleanup.
	lm-opencl:verbosity control.
	descrypt-opencl: better alternative to clearing buffers inside kernel.
	bt(build_table):add 64bit hash type and qualified file names.
	lm-opencl: new hash checking.
	lm-opencl: use hash table.
	lm-opencl: remove extra kernel parameters.
	silence compiler warning for non-omp builds.
	re-introduce changes removed by commit 5bad3f1a203
	lm-opencl: add bitmaps for hash checking on GPU.
	lm-opencl: bug fix.
	lm-opencl: extract only required number of bits.
	mask-mode resume problem bug fix.
	lm-opencl:full unrolled kernel.
	lm-opencl: faulty amd opencl compiler workaround for full unrolled
	  kernel.
	common-gpu.c: fix memory leak.
	mscash2-opencl:allocate memory only MAX_GPU_DEVICES.
	mscash/nt/raw-md4/md5/sha1-opencl: auto tune bugfix.
	mscash-opencl: many salt optimization and auto tune bugfix.
	nt/raw-md4/md5/sha1-opencl: more auto tune bugfix.
	lm-opencl: merge finalize keys with main kernel.
	lm-opencl: finish merging finalize keys kernel with main kernel.
	lm-opencl compiled only when opencl 1.2 build is detected
	add ifdef CL_VERSION_1_2 before cheking its value.
	lm-opencl: mask-mode test
	lm-opencl:gpu side mask supports only one placeholder.
	lm-opencl: gpu side mask bugfix.
	lm-opencl:mask mode enabled.
	lm-opencl: optimization when mask placeholder positions are static.
	lm-opencl: use const cache to store gpu side mask keys.
	lm-opencl: select full unroll kernel for gpus.
	lm-opencl: patch missed with commit 04da2a
	nt/raw-md4/md5/sh1-opencl: bugfix.
	rebuild tables when 10 percent of hashes are cracked.
	lm-opencl now conforms to CL 1.0 standards.
	lm-opencl: remove remaining cl 1.2 stuffs.
	lm-opencl: fix constant cache issue.
	lm-opencl: add end of file LF.
	lm-opencl:autotune bugfix.
	lm-opencl: more autotune bugfixes.
	lm-opencl: minimize use of global variables.
	mscash2-opencl: init kernels and autotune in reset.
	lm-opencl: 40 percent performance improvent on AMD GPUs with cat 15.5.
	lm-opencl: do not release uninitialized buffers.
	mscash2-opencl: do not release uninitialized buffers.
	lotus5-opencl: more stringent limit checking.
	lotus5-opencl: bugfix, doesn't fix #1505.
	lotus5-opencl: possibly fix #1505
	lotus5-opencl: some optimizations and cosmetic changes.
	added new format nsldap-opencl.
	descrypt-opencl: optimizations.
	prepare to adjust nsldap with raw-sha1-opencl.
	mask-mode: ?W bug-fix. It didn't update mask_num_qw used by other
	  modes.
	mask.c: fix when mask contains characters > than 0x7f.
	added new format: salted-sha1-opencl.
	salted-sha1-opencl: bugfix in loading hashes.
	build tables: signal handler bugfix.
	mask.c: fix bug in truncate_mask/save_restore.
	descrypt-opencl: changes required to support better auto-tuning.
	descrypt-opencl: more changes.
	descrypt-opencl: new host code
	descrypt-opencl: more leaner code.
	descrypt-opencl: code cleanup
	descrypt-opencl: seperate kernel for hash checking.
	descrypt-opencl: prepare for new hash checking.
	descrypt-opencl: bugfix.
	descrypt-opencl: merge functions.
	descrypt-opencl: unify hash checking for all kernels.
	descrypt-opencl: put common functions in separate file.
	descrypt-opencl: common hash checking for all kernels.
	descrypt-opencl: cosmetic changes.
	descrypt-opencl: new hash checking.
	descrypt-opencl: new hash checking.
	descrypt-opencl: support for very large number of hashes.
	descrypt-opencl: added bitmaps for hash checking.
	descrypt-opencl: put key processing in common file.
	descrypt-opencl: restrict frequent buffer updates.
	descrypt-opencl: mask-mode init.
	descrypt-opencl: support more placeholders on GPU side.
	descrypt-openc: non-static gpu side mask bugfix.
	descrypt-opencl: correctly report c/s rate.
	descrypt-opencl: suppor mask mode for all kernels.
	descrypt-opencl: use constant cache if possible.
	descrypt-opencl: get key mask mode.
	descrypt-opencl: build kernels in reset instead of crypt_all
	descrypt-opencl: more compact code.
	descrypt-opencl: use -D build opts to hardcode salt.
	descrypt-opencl: rearrange kernels.
	descrypt-opencl: improve basic kernel.
	descrypt/lm-opencl: bugfix and other modifications to support auto
	  tune.
	descrypt-opencl:auto-tune for fully unrolled kernel.
	descrypt-opencl: save LWS parameters.
	descrypt-opencl: re auto-tune only when using meask mode..
	descrypt-opencl: use device name instead of gpu_id and include all
	  kernels to determine lws limit.
	descrypt-opencl: new auto-tune bugfix.
	descryp-opencl: hardcode only kernel autotune.
	descrypt-opencl: prepare basic kernel for auto-tune.
	descrypt-opencl: auto-tune for basic kernel.
	descrypt-opencl: get key bug fix.
	descrypt-opencl: set hash_ids[0] to 0 before self test.
	descrypt-opencl: more auto-tune bugfixes.
	descrypt-opencl: code cleanup.
	descrypt-opencl: remove stary output.
	descrypt-opencl: format details bugfix.
	descrypt-opencl: basic kernel tuning.
	descrypt-opencl: bugfix.
	descrypt-opencl: fine tune hardcoded and fully unrolled kernels.
	descrypt-opencl: auto-select suitable kernel.
	descrypt-opencl: match suitable kernels with devices.
	update amd device codenames.
	lm-opencl: add more debug code.
	lm-opencl: limit bug fix.
	descrypt-opencl: use basic kernel for all apple.
	add FMT_REMOVE parameter for formats that access the salt->list during
	  cracking.
	lotus5-opencl: fix possible issues.
	descrypt-opencl: implement FMT_REMOVE.
	build tables: throw overflow warning instead of error and show file
	  and line.
	build-tables: reduce memory consumption for upto 50 mil hashes.
	descrypt-opencl: fix auto-tune for non-amd/nvidia gpu.
	thread safe opencl_build() and opencl_build_from_binary() assuming
	  certain conditions.
	fix issues missed in 0dbaf3a5bacbd34.
	opencl_read_source is now thread safe.
	descrypt-opencl: bugfix.
	descrypt-opencl: fix thread safety issues for parallel build.
	descrypt-opencl: parallel build.
	descrypt-opencl: parallel build bugfix.
	descrypt-opencl: make enc_salt thread safe.
	descrypt-opencl: remove all critical sections.
	unify hash checking for rawmd4/rawmd5/nt-opencl.
	bugfix for last commit.
	put create/release object in common file for 128 bit hash checking.
	use qualified names to prevent name clashes.
	more common functions for 128bit hash checking.
	reduce number of global extern variables for common 128bit hash
	  checking.
	bugfix for d2a0668

Frank Dittrich (168):
	korelogic.conf: fix month name in [List.Rules:MonthsFullPreface]
	korelogic.conf: split some rule definitions for dupe suppression
	submodule update
	opencl_sxc_fmt_plug.c apply Alexander Cherepanov's sxc format fixes
	  from 2013 to the opencl implementation (improved valid())
	  Without these fixes I was able to trigger segfaults with fuzzed
	  input files.
	asan documentation fix
	office_common_plug.c: add a comment from the CPU version that got
	  lost when separating code that is common for CPU/opencl
	Add tests formatted in exactly the same way as the hashes in john.pot
	  May be I'm too paranoid, but I wanted to make sure each format
	  "understands" the hash format it uses for john.pot
	osc format: use a hash without trailing spaces for the canonical
	  hash representation ($dynamic_4$) that is used in john.pot. The
	  original hash caused trouble because of the trailing spaces.
	dynamic: use $HEX$ for ciphertexts ending with ' ' or '\t' when
	  storing them in the pot file.
	sha512crypt: unify test hashes for CPU and GPU formats
	osc format: add one more self test
	sha256crypt: unify test hashes for CPU and GPU formats
	relbench: avoid "Use of my $_ is experimental at ./relbench line 82."
	Bash completion for file name in --prince=*, 	fixes #1020
	john.bash_completion: fix typo in a comment.
	bash completion: enable the --prince=FILE workaround for -prince=
	Fix bash completion for --format=
	siemens-s7: unify hash "versions" 0 and 1
	Revert "siemens-s7: unify hash "versions" 0 and 1"
	Revert "Revert "siemens-s7: unify hash "versions" 0 and 1""
	siemenss-s7: valid() did still accept invalid hashes like
	  $siemens-s7$$1$599fe00cdb61f76cc6e949162f22c95943468acb$002e45951f62602b2f5d15df217f49da2f5379cb
	  instead of
	  $siemens-s7$1$599fe00cdb61f76cc6e949162f22c95943468acb$002e45951f62602b2f5d15df217f49da2f5379cb
	gpg and gpg-opencl: rename 1st tunable cost, iteration count ->
	  s2k-count
	Fix legacy builds for 32bit Linux
	Fix oracle format breakage caused by commit
	  eaaf00625c2af421736b1e69dfaad3939cd4fb0f cmp_one cannot be a
	  dummy function (returning 1) if cmp_exact is a dummy.
	Fix legacy build after some plugins have been converted into
	  non-plugins
	Makefile.legacy: change object file name sequence to match Makefile.in
	  and keep the core john files at the top of the list
	Corrext a stupid typo I made in commit 682d60e, fixing legacy builds
	Avoid some scan-build false positives by adding
	  __attribute__((__noreturn__))
	misc.h: reformat changes made in commit
	  05754f018aa785a2f646861be38556ec7cd3ad65
	Sybase-PROP format: fix undefined behavior (signed integer overflow)
	benchmark-unify: sort -f of mappings (for better readability)
	Fix memory leaks for ./john --test=0 --format=tc_*
	Fix memory leaks for ./john --test=0 --format=Snefru-128
	Fix Memory leaks for ./john --test=0 --format=HAVAL-128-4
	Fix memory leaks for ./john --test --format=whirlpool*
	Fix a problem with "salt dupe checks" for unsalted formats. Closes
	  #1229.
	benchmark-unify: add mapping NT-old -> NT
	Report glibc version with --list=build-info
	listconf.c: define _BSD_SOURCE and _DEFAULT_SOURCE for OpenCl builds
	Fix some memory leaks for ./john --status[=NAME]
	Add build timestamp to --list=build-info
	Add Microsoft compiler version info to --list=build-info
	Revert second part of commit 03404dfd88c6fcc8aa8fa7dd31b72bbc060cc200.
	  Otherwise, --list=build-info would would produce a segfault.
	Report glibc version with --list=build-info
	WoWSRP format: fix memory leaks (GMP) detected by ASan
	Clipperz format: fix memory leaks (GMP) detected by ASan
	john.c: replace exit(0) with error() for invalid encoding options
	  in john_load_conf_db() and in john_init()
	opencl_rawmd4_fmt_plug.c: replace exit(0) with error() in case of
	  error
	regex.c: replace exit(0) with error() in case of error
	pkzip_fmt_plug.c: Fix issue #1232 (signed int overflow) for real
	pkzip_fmt_plug.c: fix -fsanitize=undefined runtime errors
	For FMT_NOT_EXACT, printwarning for main process only
	Improve hdaa format's valid(). Closes #1262
	Fix scrypt's prepare(), dont pass NULL pointers into
	  base64_valid_length Closes #1259
	Fix scrypt's prepare(), dont pass NULL pointers into isdec()
	pfx format valid(): call atoi(p) after isdec(p), avoid undefined
	  behavior
	Fix "binary() returned misaligned pointer" for HMAC-SHA384 (32bit
	  Linux clang)
	Fix "binary() returned misaligned pointer" for HMAC-SHA512 (32bit
	  Linux clang)
	keepass_fmt_plug.c: avoid "Warning: salt() returned misaligned pointer
	pbkdf2-hmac-md5_fmt_plug.c: Fix reporting of tunable cost (iteration
	  count)
	pbkdf2-hmac-md5_fmt_plug.c: fix syntax error caused by typo
	bsdicrypt: report iteration count as tunable cost
	Fix bash completion for --show= after --show=types had been added
	For --regex=alpha, '.' and '?' need to be escaped
	regex.c: escape backslash inside words.
	truecrypt_fmt_plug.c: fix memory leak for ./john --test=0
	  --format=tc_*
	truecrypt_fmt_plug.c: fix whitespace error
	ssh_fmt_plug.c: fix memory leak in valid(), fixes #1247
	Revert "ssh_fmt_plug.c: fix memory leak in valid(), fixes #1247"
	Fix segfault in dyna_salt_remove_fp() when called from valid()
	Revert "Revert "ssh_fmt_plug.c: fix memory leak in valid(), fixes
	  #1247""
	mkvlib.c: improved sanity checking of Markov stats file, fixes #1467
	mkvlib.c: adjusted sanity checking of Markov stats file
	Add version.h.new to .gitignore and `make distclean`
	detect.c: fix for `make -s -f Makefile.legacy generic
	Remove detect.o build target from Makefile.in It is not needed for
	  autoconf builds.
	unrarhlp.c: include "jumbo.h" to fix legacy build
	genmkvpwd.c: inclcude "jumbo.h" to fix legacy build errors
	wpapcap2john.c: include "jumbo.h" to fix legacy build
	wordlist.c: fix legacy build warning
	pp.c: fix error: assignment to expression with array type which,
	  for some reason, only occurred in legacy builds
	john.c: fix legacy build warning
	Makefile.legacy: add the JTR_GIT_VERSION logic
	Makefile.legacy: `make clean` now removes version.h and version.h.new
	XSHA512_fmt_plug.c: fix "warning: unused variable" for legacy generic
	  build
	listconf.c: fix "warning: unused variable" for legacy generic build
	Enable OpenVMS format for legacy little endian legac builds
	Enable pkzip format for legacy builds
	Makefile.legacy: fix librexgen detection (new path of librexgen.h)
	Replace use of rm and mv in Makefiles with $(RM) and $(MV)
	Adjust rexgen build instructions
	options.c: avoid warning for legacy opencl builds
	mscash2_fmt_plug.c: fix memory leak Found when testing ./john
	  --fuzz from
	  https://github.com/loverszhaokai/JohnTheRipper/tree/fuzz_option
	  with an --enable-asan build
	Add --enable-ubsan (UndefinedBehaviorSanitizer)
	Makefile.legacy: fix -j handling for generic (best.sh) and other
	  targets
	Finally fix memory leak in ssh format (get_salt) #1247 for real
	listconf.c: add UBSAN_STRING to --list=build-info output
	RAR3 (CPU and OpenCL): warn just once for pack_size or unp_size > 1 TB
	  (helps reducing noise when fuzzing these formats)
	gpg-opencl: warn just once about currently unsupported hash algorithm
	  (helps reducing noise when fuzzing this format)
	Add UBSAN_STRING to john's usage output
	Replace "-autoconf" with "-ac" in JOHN_BLD definition
	Adjust scope of some recently introduced warn_once variables
	mozilla format: improve valid()
	dmg format: improve valid()
	vtp_fmt_plug.c: improve valid()
	7z_fmt_plug.c: improve valid()
	encfs_common_plug.c: improve encfs_common_valid()
	gpg_fmt_plug.c and opencl_gpg_fmt_plug.c: improve valid()
	opencl_7z_fmt_plug.c: apply recent CPU format fixes to OpenCL format
	Improve valid() in agilekeychain and agilekeychain-opencl
	Add run/custom.chr to .gitignore, fixes #1501
	opencl_rar_fmt_plug.c: Fix valid() after ishex() changes
	blockchain_fmt_plug.c and opencl_blockchain_fmt_plug.c: improve
	  valid()
	cloudkeychain_fmt_plug.c: improve valid(), fix undefined behavior
	androidfde_fmt_plug.c: improve valid(), fix undefined behavior
	keystore_fmt_plug.c: improve valid(), avoid undefined behavior
	kwallet_fmt_plug.c: improve valid()
	putty_fmt_plug.c: improve valid()
	rar5_common.h: improve valid()
	ssh_ng_fmt_plug.c: improve valid()
	bitcoin_fmt_plug.c: improve valid()
	chap_fmt_plug.c: improve valid(), avoid undefined behavior
	improved valid() for pwsafe (CPU/GPU), avoid undefined behavior
	django_fmt_plug.c: improve valid(), avoid undefined behavior
	efs_fmt_plug.c: improve valid()
	eigrp_fmt_plug.c: avoid undefined behavior in valid()
	Makefile.in: specify path for dynamic_big_crypt_generator.sh
	  avoiding this error: /bin/sh: dynamic_big_crypt_generator.sh:
	  command not found
	bench.c: fix segfault introduced in commit ac6a0ea
	keepass_fmt_plug.c: improve valid(), avoid undefined behavior
	Fix segfault for ./john --list=subformats caused by commit ac6a0ea
	Generate more test output for `make check`, for Travis build clues
	Makefile.legagy: avoid --make_check usage because it fails in jumbo
	More undefined behavior fixes in keystore format's valid()
	LUKS format: improve valid(), avoid undefined behavior
	mongodb_fmt_plug.c: improve valid(), avoid undefined behavior
	office_common_plug.c: improve valid(), avoid undefined behavior
	openbsdsoftraid_fmt_plug.c: improve valid()
	wbb3_fmt_plug.c: avoid undefined behavior in valid()
	add run/dynacomptest to .gitignore
	With isdec(p), atoi(p) will not return values < 0, so drop some tests
	Makefile.legacy: define HAVE_LIBSSL While legacy builds always
	  used -lssl, autofonf changes made including openssl includes
	  depend on HAVE_LIBSSL. This should also fix
	  https://github.com/magnumripper/JohnTheRipper/issues/1526#issuecomment-120008446
	Fix comments in ike-crack.h: s/HAVE_OPENSSL/HAVE_LIBSSL/
	sapH_fmt_plug.c: avoid memleaks on invalid hashes
	Adjust sap2john.pl comments
	Make dyna-compiler-test.sh work with dash and some cleanup
	.gitignore: add some dyna-compiler-test.sh temp. files that might
	  remain when dyna-compiler-test.sh was interrupted.
	Bash completion: complete --regex= to --regex=alpha: and provide
	  completion of --regex=alpha: (using the existing
	  [List.Rexgen.Alpha:*] section names.
	regex.c: make debug output depend on #if DEBUG and use stderr
	  instead of stdout.
	Move "plaintext" format further down the list of formats
	Move dummy format down the list
	Makefile.legacy: repeat the Makefile change done in af07c69
	Makefile.legacy: fix for opencl builds
	options.c: Fix compiler warning for legacy opencl builds
	doc/MASK: improve ?W example to make it clear that it toggles case
	sapH format: set FMT_CASE and FMT_UTF8 flags
	Fixes in comments: s/definded/defined/, s/defind/defined/
	Bash completion: For --restore= and status=, ignore .[1-9][0-9].rec
	Fix build without plugins (renamed some Keccak*_plug.c files)
	Makefile.legacy failed after making some Keccak* iles non-plugins
	dynamic_compiler.c: avoid segfault for expressions that neeed user
	  name or constants, but no salt. Example:
	  --format=dynamic='md5(lc($u).$c1.lc($p)),c1=::'
	Add a SingleSkipLogin config variable
	fuzz.c: fix a copy&paste error introduced in aeff562
	Add LogFileProtect config variable
	logger.c: remove extra empty line introduced in previous commit
	bash completion for --show=invalid
	blake2b-ref_plug.c: drop unused blake2b_clear_lastnode()
	Fixes for legacy generic builds (make -f Makefile.legacy generic)
	options.c: Fix compiler warning for legacy non-opencl builds

Zhang Lei (107):
	Resolve issues encountered when building for MIC.
	Patches needed to build some libraries for MIC.
	Update mpz_int128.c to refer to the bug of icc
	Restore the lost two lines in config.sub
	Use tab instead of spaces as indentation.
	Put variable binding after './configure'
	some fixes in the building system
	syntax correction
	OMP_SCALE tuned for MIC
	Correct some indentations
	some bug fixes
	revert a mistaken fix
	Add special compiler flags for MIC
	use LibreSSL instead of OpenSSL for MIC
	fix MIC intrinsics in sha256-ng & sha512-ng
	distinguish the SIMD_TYPE name of MIC from AVX512
	remove some trailing spaces
	Add MIC support in raw-sha1-ng
	Remove some trailing spaces
	some minor fixes for MIC
	fix sha256crypt & sha512crypt for MIC
	fix other non-dynamic formats on MIC
	minor error fix
	further tune OMP_SCALE with MIC
	Use gather instruction to optimize some code
	Refactor code that uses __AVX512__
	Some optimization with gather/scatter
	append 'ULL' to some int64 literals
	tune OMP_SCALE in SybaseASE
	unify the interface of vcmpeq_epi8
	fixing typos
	some small fixes
	several bug fixes for _mm512_cmpeq_epi8
	remove the emulation of _mm512_cmp_epi8_mask
	wordlist.c: a minor fix
	mic.h: tune interleaving factors
	add OpenMP support to sunmd5
	sunmd5: simplify the OpenMP clause
	sunmd5: rearrange code for OpenMP support
	sunmd5: include <omp.h>
	sunmd5: add OMP_SCALE
	add interleaving to SHA512
	Add interleaving to SHA256
	fix interleaving in SHA512
	set SIMD_PARA_SHA256/512 to 1
	sse-intrinsics.c: fix a few indentations
	mic.h: add missing help macros
	fix interleaving bug in sapH
	sse-intrinsics.c: use scatter instruction for AVX512 & MIC
	sse-intrinsics.c: a few fixes for the use of scatter
	README-MIC: add instructions for building OpenSSL
	mic.h: conditionally define interleaving paras
	configure: no need to set LIBS for MIC
	tune a bunch of OMP_SCALEs for MIC
	pbkdf2_hmac_sha1.h: disable vectorization of a loop
	byteorder.h: replace strange int types with normal ones
	fix configure.ac for 64-bit Power
	Add AltiVec intrinsics support.
	Add AltiVec intrinsics
	ppc64.h: a few minor fixes
	sse-intrinsics: clean up a few temporary changes
	A few fixes for AltiVec intrinsics
	pseudo-intrinsics: a few optimizations for AltiVec
	pseudo_intrinsics.h: fix errors in last commit
	pseudo_intrinsics.h: fix some indentations
	fix an error introduced in commit 9783278
	pseudo_intrinsics.h: optimize vtesteq & vtestz
	dynamic: hopefully fixed MD4 problems on MIC. #1437
	ignore *.dSYM files on OS X
	rename sse-intrinsics to simd-intrinsics
	mic.h: tune SIMD_PARA_MD4 & SIMD_PARA_MD5
	Add ARM NEON intrinsics (untested).
	Refactor pseudo_intrinsics.h
	Add further support for NEON
	Polish NEON's int64 intrinsics
	Fix a few intrinsics for NEON
	Include simd-intrinsics.o in a ARM build
	Use NEON's vbsl to implement vcmov
	Disable raw-sha1-ng for ARM due to a compiler bug
	Optimize vroti implementation for NEON
	mic.h: tune SIMD_PARA_MD4 & SIMD_PARA_MD5
	Use SIMD SHA1/2 functions for episerver
	Fix bugs in episerver
	Add UTF8 support to episerver's SIMD build
	Fix a bug in episerver
	Add SIMD support to 7z
	Revise ALGORITHM_NAME of episerver
	7z: optimize SIMD performance
	7z: optimize SIMD performance
	7z: fix a bug that makes trouble when para > 1
	7z: fix ALGORITHM_NAME
	7z: cleanup after merging in magnum's code
	7z: fix a bug introduced when merging code
	Avoid unaligned access for some archs
	7z: fix a bug in SIMD code
	7z: alter PLAINTEXT_LENGTH for SIMD build
	Avoid strcpy if key is already aligned in set_key()
	Replace some `uint64_t`s with `ARCH_WORD_64`s
	Add SIMD support to rar
	7z & rar: use global array as vector buffer
	Optimize MD5_I() for NEON and AVX512
	Introduce more ternary logic instructions
	Fix indentations in the previous commit
	Fix a few untested code for AVX512
	Use AVX512's ternlog instruction to emulate vcmov
	Tune interleaving paras for ARM
	Rename vtesteq_epi32 to vanyeq_epi32

Dhiru Kholia (101):
	Add jtrTestSuite as a submodule
	Update MinGW stuff
	Drop a couple of old formats from the unused/ folder
	blatant attempt to increase my patch count
	Support TGS-REP hash extraction, based on Kerberoast
	Don't ignore non-inlined keepass hashes without giving a reason
	Use sane inlining defaults in keepass2john
	Update olefile to 0.41, add ACCDB support
	Add support for cracking Inno Setup hashes
	Revert "Add support for cracking Inno Setup hashes"
	Add sample Inno Setup hash
	Add support for md5($p.$s.md5($p.$s)) scheme
	Add support for cracking HSRPv2 hashes
	Add some HSRPv2 test vectors
	A blast from the past!
	Make SSH format actually crack Superfish key
	Give credit where it is due
	clean up /doc, #1
	Stop wasting time in maintaining the legacy build system
	Revert "Stop wasting time in maintaining the legacy build system"
	Stop wasting time in maintaining the legacy build system
	Emit a scary message when Makefile.legacy is used
	Respect PEP8 a bit
	Recommend PGPCrack-NG for cracking symmetrically encrypted PGP files
	Add support for Notes/Domino 8+ H-hashes
	Add support for SHA3 hashes (unify with Keccak stuff)
	Fix the build failure caused by the recent SHA3 patch
	Add support for hmac_pbkdf2_md5 hashes, v2
	Add credit for SHA3 stuff
	Remove unused function from the SHA3 format
	Fix description in dominosec8 format
	Add support for HAS-160 hashes
	Add HMAC-GOST (currently broken for unknown reasons)
	Add a test vector for HMAC-GOST
	Add support for POMELO hashes
	Add non-SSE implementation of POMELO as backup
	Add support for Pufferfish hashes
	Add support for Stribog hashes, v6 (SSE4.1 enabled)
	Tweak README.MinGW a bit
	HMAC MD5 cleanup, fixes #1324
	Fix ASan crash in the new Keccak code
	Add support for new Oracle Database 12c password hashes
	Add support for Oracle 12c "H" hashes
	Port truecrypt_volume2john.c to Python
	Add support for keyfiles in TrueCrypt format, #1
	Add support for keyfiles in TrueCrypt format, #2
	truecrypt_volume2john.c is dead now
	Create index on aes.a library, MinGW fix #1
	Stop overwriting AR variable, MinGW fix #2
	Simplify linking for luks2john.c, MinGW fix #3
	Fix uaf_encode.c compilation, MinGW fix #4
	Fix sshng2john.py, fixes #1374
	Restore a new, robust version of krbpa2john.py utility
	Remove broken krbpa2john stuff from pcap2john.py
	Generate new hash format in krbpa2john.py
	Make krbpa2john.py a bit more robust
	Restore salt extraction "feature" in krbpa2john.py
	Unify, and cleanup keystore2john stuff
	Make krbpa2john.py a bit more robust, #3
	Make krbpa2john.py a bit more robust, #4
	Add support for MinGW builds, with <3 from JimF!
	dynamic_1016 never did md5($s,$p), it does md5($p,$s) instead!
	Use CircleCI for MinGW builds instead of Travis CI
	Make CI testing configuration saner
	Show CircleCI build status in README.md
	Add support for more NTP hash types
	Fix copying stuff in MinGW builds
	Suppress wine warnings in CircleCI environment
	MinGW build filenames now include short commit hash
	"download" badge now downloads latest MinGW build
	Start cleaning up *2john tools
	Add support for vBulletin > 3.8.5
	Use "dynamic_2006" for vBulletin!
	Fix issue #1595
	Update olefile to 0.42.1 (released 2015-01-24)
	Make CircleCI testing more robust
	Update blockchain2john.py to handle v2 hashes, fixes #1050
	Make blockchain2john.py work with Python 3 too
	Simplify kirbi2john.py utility
	Add a test vector in blockchain format
	Remove a debugging statement from the HSRP v2 parser
	Improve handling of "special" blockchain v1 wallets
	Remove testing dictionary, WTF?
	[ssh] advertise ability to crack PEM files
	[ssh-ng] add support for EC private keys
	[ssh] add a PEM test vector
	Fix downloading of Windows builds
	Fast PEM cracker
	[pem] fix errors in pem2john.py
	[pem] make the format more robust
	[pem] false positives shouldn not happen now
	[pem] add support for dsa keys
	[pem] add a better format description
	[ssh-ng] advertise support for new "OPENSSH" format private keys
	[keychain] tested on OS X El Capitan
	Add support for cracking files using GPG symmetric encryption
	make gpg format slightly more robust
	Add support for cracking Apple iWork '13 files
	Add support for iWork '09 files
	GPU support for cracking Apple iWork files
	Add partial support for KWallet 5 files

Claudio André (92):
	OpenCL: AMD devices have some weird bug when using pinned buffers.
	  Forgotten file: see ec080119f45ffef07f7f1dd36e120ee56d5d6734
	OpenCL: Updates to get_processor_family().
	Inform the user if (s)he is using a recommended driver. Also, it is
	  possible to warn if a crappy driver version is detected.
	Be more user friendly using a better README file in Github main
	  project page.
	Change the comment of sha512crypt-opencl PLAINTEXT_LENGTH.
	Cosmetical changes to OpenCL SHA256 formats: PLAINTEXT_LENGTH
	Update copyright and contact information in SHA2 OpenCL.
	Remove any OpenCL output when running JtR --show.
	Mute a TestSuite error message caused by an OpenCL message.
	Mask mode implementation in raw-sha256-opencl.
	Correct mask mode behavior when GWS is supplied. We'l use the figure
	  as-is but we still print a message about internal generation.
	  See 5980618088329ea3820c226887e62a4b6c779c5b.
	Small tweaks (clarify a few comments and remove a TODO).
	OpenCL share code with CPU formats in RAW-SHA512.
	Move OpenCL auto tune code to reset() in raw-sha256.
	Mute auto tune warnings on default verbosity. Closes #1146.
	Try to make things clear to the OpenCL compiler.
	Adjust c/s for mask mode benchmark.
	This changes might produce better binary code for GCN (unfortunately,
	  the ancient drivers on super cannot produce a final prove).
	Keep this senseless change in sha256 OpenCL in history, but remove it
	  from source.
	Used shared code between CPU and GPU formats for raw-SHA256. (No
	  static method in header).
	Use only mem_calloc_tiny inside shared code.
	Used shared code between CPU and GPU formats for raw-SHA512. (No
	  static methods in header file).
	Mask mode implementation in [raw/x]-sha512-opencl.
	Handle the salted format for the GPU mask mode.
	SHA512 OpenCL 130% performance gain on Tahiti (I see no reason for it,
	  but AMD does).
	SHA256 OpenCL follows the SHA512 recent changes (> 1Gc/s on Tahiti).
	SHA512 crypt OpenCL follows the recent pattern.
	Share more code inside OpenCL driver detection.
	I forgot a define for other platforms.
	Refuses to run the kernel if the driver is known to be a disaster.
	Optimize SHA512 crypt OpenCL for Nvidia.
	Fix a possible bug in xsha512 OpenCL format.
	Small tweaks.
	Fix for the intermitent mask error on CPU. - see:
	  https://github.com/magnumripper/JohnTheRipper/issues/1037#issuecomment-71936052
	OpenCL raw-SHA256 and raw-SHA512: Do not compile kernel in init(). It
	  slows things down.
	OpenCL SHA256crypt and SHA512crypt: Do not compile kernel in init().
	  It slows things down.
	Reinitialize formats after any execution.
	Add new AMD drivers to common-opencl.
	Initialize OpenCL environment on init(), otherwise john's output
	  became a mess.
	Protect macro parameters.
	Fix to get the Omega driver performance using 6770.
	Deprecate the 'dual' autotune_run interface.
	OpenCL sha2crypt: Drop the separate crypt_all_benchmark().
	Remove a duplicated initialization function call.
	Improve error output when no OpenCL devices available.
	Move Claudio's SHA2 file to be a '-ng' format.
	Use a maskless version for raw-sha512.
	Small tweaks in SHA2 OpenCL files.
	Fix for sha256crypt running on AMD 15.5 driver.
	Previous fix for sha256crypt is necessary for Catalyst 15.7 too.
	Remove unnecessary code.
	Send a sorted plaintext list to GPU in sha256crypt.
	Remove the unnecessary stress applied to OpenCL device in sha256crypt.
	For recent AMD drivers, select the new OpenCL sha512crypt kernel.
	Fine tune the OpenCL sha512crypt kernel for GCN on super (15.7
	  driver). It is 2x-3x faster now.
	Fine tune the OpenCL sha512crypt kernel for Nvidia sm_5x on super. It
	  is 50% faster now.
	Fix: while testing (tuning) LWS values, it is not possible to use a
	  GWS value bigger than the buffer memory available.
	Send a sorted plaintext list to the GPU device in OpenCL sha512crypt
	Further tune the OpenCL sha512crypt kernel for AMD driver >= 15.5.
	Fix: waste of memory by forked OpenCL runs. Closes #1707.
	For sm_5x, vector operators does a better job in OpenCL sha512crypt
	  (on super).
	OpenCL: Use bitalign for ror_64() in shared code in Claudio's formats.
	  See #1819.
	Tune raw SHA2 OpenCL Claudio's formats and follow the new pattern.
	Bugfix in ldr_sort_salt(). Last salt did not get hash updated.
	Use lut3 when available.
	Fix a Ctrl+C - Ctrl+V bug.
	Seems to be better to revert to previous statemet (AMD driver still
	  surprises me).
	Adjust Claudio's raw SHA2 formats to deal with GPU mask tune and
	  benchmark.
	Inser a #pragma for old AMD compilers. Closes. #1834.
	Tune only once in GPU mask mode.
	Clean the value of a variable to avoid the error below: gws:
	  3072	  1512Kc/s 1512695 rounds/s 2.030ms per crypt_all()+
	  gws: 6144	272547Kc/s 272547 rounds/s 22.542ms per
	  crypt_all() gws: 12288	  1507Kc/s 1507300
	  rounds/s 8.152ms per crypt_all()
	Split OpenCL SHA512crypt a little bit more.
	New OpenCL SHA256crypt kernel.
	Remove some duplicated code.
	Tweak OpenCL SHA512crypt a little.
	A few tweaks.
	Use MAYBE_CONSTANT for other SHA2 GPU kernels.
	Remove duplicated code.
	Run indent and astyle ONLY.
	Remove unnecessary code in OpenCL sha512crypt.
	Update driver detection to new Crimson.
	Include the last [1] WHQL certified driver for the 2nd generation of
	  legacy hardware [2]. [1] From now on only beta quality software
	  will be provided (if provided, of course). [2] Radeon™ HD 8000 –
	  HD 8400, HD 7000 – HD 7600, HD 6000, and HD 5000 Series.
	Improve recommendations about OpenCL driver versions.
	Allow to calibrate SHA512crypt kernel to any GPU. Gain seen on
	  super: > 3k c/s on GCN > 15k c/s on NVIDIA
	Add some new configuration values to john.conf.
	If exists, use the configuration saved in john.conf.
	Get rid of the specific kernel for GCN (no longer recommended).
	Allow to calibrate SHA256crypt kernel to any GPU. Gain seen on
	  super: > 10k c/s on GCN
	Move drivers and definition of "recommended" to john.conf.
	Fix the misformatted device identification/position message.
	Remove the platform" notation in JtR.
	Select the most powerful GPU as the default one.

Kai Zhao (84):
	Update plugin.c
	change 'int count = *pcount;' to 'const int count = *pcount;'
	add check for hex string and lower case
	Add siemens-s7 hash check in valid(). See #1094
	Add check for get_binary()
	Update siemens-s7_fmt_plug.c
	fix valid bug for 7z_fmt_plug.c
	Dominosec: Fix a typo leading to slight over-allocation.
	Update kwallet_fmt_plug.c
	Update mongodb_fmt_plug.c
	Update nukedclan_fmt_plug.c
	Must check cfg_database->list before cfg_add_line()
	fix bug of androidfde_fmt_plug::valid()
	fix valid() function in src/blackberry_ES10_fmt_plug.c
	fix get_salt() in cq_fmt_plug.c
	fix segfault: --field-separator-char=c
	fix segfault: --markov::default:
	report error message and exit when --input-encoding= a long string
	Return CP_UNDEF when NULL == encoding
	remove the useless parameter for sevenzip_decrypt() function
	remove additional blanks
	Fix spell mistake
	Close #1242
	Close 1230
	StripZeros: Copy as much as ct2_size to ct2 to avoid buffer overflow
	Fix SSH Format get_salt()
	Fix SKEY Format get_binary()
	Fix: 32bit build with GMP fails
	Fix: RAR5 common valid(), change atoi to strtol
	update coding style
	Fix: ssh2john double free or corruption
	Fix: ssh2john.c double free
	Fix: gpg2john.c buffer over flow
	Fix: gpg2john global-buffer-overflow
	Fix: gpg2john global-buffer-overflow
	Fix: gpg2john global-buffer-overflow
	Fix: keepass2john heap-buffer-overflow
	Remove assert(count == 1) by check the return of fread()
	Check the buffer size before fread()
	Check the buffer size before fread(): keepass2john
	Fix: keyring2john remove assert by checking the return value
	Fix: keystore2john remove assert and check buffer size of fread()
	kwallet2john.c: Check the return value of fread()
	luks2john.c: Check return value of jtr_fopen()
	pwsafe2john.c: Remove assert by checking the return value of fread()
	pwsafe2john.c: Remove unused variable
	rar2john.c: Remove assert and check the buffer size before fread()
	Use header.caplen instead of header.len
	Use: warn_exit("%s: Error: read failed: %s.", argv[0],
	  strerror(errno));
	Remove build warning
	Fix: wpapcap2john.c buffer overflow
	Use printf("%zu") to print size_t
	Report error if config file does not exist when '--config=somefile'
	Fix spell mistake, there is no BF_common_plug.c
	Fix misspelled words
	Fix typo: initailize -> initialize
	loader.c: fix segfault introduced in commit ac6a0ea
	Implement --fuzz options to fuzz formats' functions
	Add doc/README.coding-style. See #350 and #1567
	Add coding stlye: Add a blank line after variables declaration
	Add --test-full option which crack max passwords at the same time and
	  can detect FMT_* flags
	Remove build warning. Close #1605
	1. Add FMT_8_BIT: has-160, pomelo, pufferfish, Stribog-256 2. Remove
	  FMT_8_BIT: VNC 3. Do not check FMT_8_BIT of crypt
	1. Add a new test vector for stribog-512 2. Add FMT_8_BIT flag for
	  stribog-512
	Fix test_fmt_8_bit() to handle all the cases
	Add more test vectors for skein-256 and skein-512
	Add test vector for vms
	Move the new test vector to the end
	Add comments for vms
	Fix: is_key_right() ignores the result of get_key() when invoked by
	  test_fmt_case()
	Fix the detects of FMT_8_BIT for crypt and wpapsk
	Fix fmt_self_test_full_body() for dominosec8 and one grammatical
	  mistake
	Add FLG_TEST_FULL_CHK in some cases which need FLG_TEST_CHK
	Add FMT_8_BIT for dominosec8
	Change s_size to err_buf in is_key_right() and fmt_self_test_full_body
	  of formats.c
	Add FMT_OMP_BAD and FAST_FORMATS_OMP
	Add test vectors for agilekeychain and lp
	Add test vectors
	Add test vectors
	Add test vectors
	Fix keyring crypt_all() which causes the cmp_all() always return 1
	Fix the crypt_all() of vnc
	Detect FMT_SPLIT_UNIFIES_CASE error
	Change to 'FAILED' when there is a FMT_SPLIT warning or error

Solar (28):
	Fix a bug in truecrypt for non-x86 archs. Closes #912.
	Early (contest) version of AVX2 support for DES.
	Fix a compile error in dynamic_compiler_plug.c
	Relbench: Fix over/underflow when calculating geometric mean.
	Fix benchmark_length for cq format
	Fix OpenMP performance issue in Sybase-PROP. Closes #1673
	OpenCL md5crypt: Optimizations.
	OpenCL auto-tune improvement: Re-tune GWS with the tuned LWS and
	  considering the queried number of compute units.
	Fix the "max. length in index 1: wrote 55, got 55 back" self-test
	  error seen for raw SHA2 formats after auto-tuning.
	Intrinsics: Use vcmov (if not emulated) for MD5_I and MD4_G.
	  Disable support for SSEi_FLAT_OUT for MD4 & MD5 (currently not
	  used anyway).
	Optimize OpenCL MD4_G.
	md5crypt intrinsics: Optimization for mmxput3().
	md5crypt intrinsics: Use switch in mmxput3 (unless XOP).
	Some fixes for huge input lists.
	  http://www.openwall.com/lists/john-dev/2015/09/15/5
	Avoid ldr_remove_marked() when there's nothing marked for removal.
	Implemented better prefetching, john-huge-prefetch.diff
	john-huge-largehash.diff: Prepare us for larger bitmaps and
	  possibly hash tables and cleaning up our use of integer types a
	  little bit in general.
	john-huge-loader-bypass.diff: Loader optimzations.
	john-huge-loader-mt.diff, splitting initialization of bitmap and
	  hash table into 3 threads.
	raw-md5: Optimize valid() and split().
	Rules: Optimizations for repeated simple commands.
	Correct an allocation bug for the "ShowUIDinCracks" feature.
	  john-loader-mem-save.diff
	john-loader-pw_size.diff: "struct db_password" allocation.
	john-huge-prefetch2.diff: Prefetch tweaks.
	Bump unique's default buffer size.
	Speed up --show.
	john-huge-show2.diff + errata from
	  http://www.openwall.com/lists/john-dev/2015/09/20/3
	john-huge-prefetch3.diff: Fix problems with prefetch. Closes #1771.

campeador (3):
	Change optparse to argparse
	Change optparse to argparse in efs2john.py and openssl2john.py
	Delete comments in efs2john.py

Aleksey Cherepanov (3):
	added --show=types option; renamed m_allow_rawhash_fixup into
	  dynamic_allow_rawhash_fixup and made it global
	removed unused variable in --show=types code
	Add support for "lineage" hashes

Sylvain Pelissier (3):
	Add new version of eCryptfs file
	Copyright Date changed
	New copyright

Stuart Morgan (3):
	Adapted the regex matching to cover the example /etc/security/passwd
	  file provided by IBM
	The parser code did not permit this script to be executed because of
	  the way argparse works. When this was removed, the 'username'
	  matching code was not reliable in the event of trailing spaces or
	  linefeeds. I have replaced this code with a regex and otherwise left
	  it alone (with the exception of swapping .lstrip() and .rstrip() for
	  .strip())
	Fixed command line arguments & added more informative help

philsmd (2):
	pdf2john.py problem, commit efc315e926f521cc41c002742a994776edbacc1d
	  broke it
	pdf2john /Encrypt /Length problem for PDF versions 1.1 - 1.3

Catalin Patulea (2):
	radius2john: support for LINUX_SSL (cooked capture) containing IP
	radius2john: preserve unknown vendor extensions when constructing salt

Christien Rioux (2):
	Bugfix for path_expand_safe() returning offset from allocated
	  buffer (segfaulting when freed).
	OpenCL: The HANDLE_CLERROR macros evaluated its input twice on error

Rémi Dubois (2):
	Adding dynamic_1034 for PostgreSQL MD5 support
	Additional comments for PostgreSQL

Shinnok (2):
	Ignore .DS_Store files on OS X.
	Properly format the .gitignore file.

R. Brenton Strickler (1):
	Explain DBError exception.

Mathieu (1):
	Fix crash when receiving CTRL_C_EVENT on Windows from parent like
	  Johnny.

Alexander Cherepanov (1):
	fake_salts.h: change cp1252 dash to '='

Lukas Odzioba (1):
	Added salt length check

Jan Starke (1):
	Update regex code for working with latest rexgen library from
	  https://github.com/teeshop/rexgen. Older versions of the lib are
	  no longer supported.

Ivan Novikov (1):
	Add support for cracking ColdFusion 11 hashes

Tonimir Kisasondi (1):
	Added keyring2john.py

Dmitri Lapin (1):
	Fixed wrong header (was immintrin.h - AVX header)

c0re (1):
	pdf2john: Fix AttributeError

Dhirendra Kholia (1):
	Make ssh-ng saner by using a tiny ASN.1 decoder

Michael Kramer (1):
	Kerberoast format added

Bernhard Spil (1):
	Replace deprecated des_ methods and calls that were available in
	  openssl/des_old.h with the DES_ counterparts.


The following changes were made between 1.7.9-jumbo-8 and 1.8.0-jumbo-1:

magnum (1889):
	formats.c: Only check binary/salt alignment if not using fmt_default_*
	formats.c: Deliberately use misaligned ciphertext in self test
	formats.c canary for binary/salt buffers
	bench.c fix for salts that copy the pointer in set_salt()
	bench.c: clean up that salt fix a little
	bench.c: call set_salt() before bench_set_keys() (hopefully fixing the
	  last issues with formats having pointers to freed memory)
	Fix compiler warnings for void pointer arithmetic
	trip_fmt: trivial fix for declarations at block starts, for VC builds.
	  This is originally from Jim's patch d91bf42 but I dropped it in
	  bleeding at first due to a merge conflict and because the
	  offending lines are also declarations. However it turns out when
	  this macro is not defined, the lines end up as spurios ';' so it
	  upsets VC nonetheless.
	Revert the last revertion. We only actually wanted it reverted in
	  magnum-jumbo
	Loader.c fix for get_source()
	Fix a silly typo in loader.c
	mscash bugfix for codepage encoding
	GOST fmt_default_get_source
	Enable get_source() to raw_SHA1_LinkedIn_fmt_plug.c, and add
	  fmt_default_get_source to cuda_pwsafe_fmt.c
	Bug fix for the previous patch
	raw-sha1_li: Move key_count update to cmp_one to regain original
	  speed.
	Revert "raw-sha1_li: always store complete (repaired) hashes"
	fmt_default_get_source in Tavis' format
	Fix get_source() for reduced binary in nt2, raw-md5 and raw-sha1.
	  Needed to move the get_source() self-test to after crypt_all()
	  test.
	Added fmt_default_get_source to odf_fmt
	Revert "reduced binary size" from formats that use get_source()
	Revert "Fix get_source() for reduced binary in nt2, raw-md5 and
	  raw-sha1. Needed to"
	Use the "repairing" version of raw-sha1_li.
	LinkedIn: Off by one from ditching key_cound in favor of NBKEYS
	formats.c: Tidy up the binary canary stuff and fix (my) indentation
	-Wdeclaration-after-statement in default CFLAGS
	RAR: make self-test comments more clear about what is what
	params.h had a bad merge at 501c9626, this patch fixes it.
	Fix for fake_salts.c that regains 52MB of BSS
	define REPORT_OPENCL_WARNINGS in bleeding after it was undef'ed in
	  magnum-jumbo
	get_source for radmin_fmt
	Add MGF_FULL_CLEAN_REQUIRED to dynamic_1003
	Damn mis-merge of params.h again. Is it meld or git doing the Wrong
	  Thing?
	Add pfx2john to .gitignore
	Add fmt_default_get_source to a couple of new formats
	Enable source() for NT, NT2, raw-sha1, raw-sha1-linkedin, raw-md5 and
	  dynamic.
	Enable source() for raw-md4
	john-1.7.9.5-align-1.diff
	loader.c: For Jumbo, we must populate up to fields[5] for l0phtcrack
	  to work
	Merge fix for odf_fmt, and new format struct for agilekeychain_fmt
	New format structs for truecrypt formats
	New split() style declaration for hmac formats
	v10 format struct for Dhiru's new formats
	Make sunmd5 handle bleeding FMT_MAIN_VERSION as well as current. Also
	  fix some Linux warnings.
	loader.c: The master.passwd test ate the pwdump format so uid was not
	  loaded properly for pwdump. Also, we accept empty LM but present
	  NT hash as pwdump.
	opencl_gpg lacked forward-compatible format struct
	Dual-version format structs for new cryptsha2 formats
	loader.c: Bugfix for pwdump files when uid is re-inserted in source.
	  NOTE: This bugfix applies to core 1.7.9.6 too!
	loader.c: Honor field_sep_char when rebuilding pwdump format.
	OSX fix for rawSHA512_fmt
	Suddenly, an is_aligned() macro in common.h start to clash with an
	  inlined function in formats.c. This patch undefs the macro
	  before declaring the function.
	Merge branch 'unstable-jumbo' into bleeding-jumbo
	Merge fixes for bleeding
	Bump FMT_MAIN_VERSION to 11
	Temporary move plugins to unplugged/ and fix all non-plugs.
	formats.c Jumbo self-test: use crypt_all(count, salt) prototype.
	Remove all atexit(done)
	Move plugins back from unplugged directory
	Have pwsafe-cuda default to one GPU.
	New interface crypt_all() for remaining formats.
	Update crypt_all() ABI to FMT_MAIN_VERSION 11 in x86-64.S.
	mschapv2 bug fix. All CPU formats working now.
	All CUDA and OpenCL formats fixed. Now builds fine.
	Makefile: Add CUDA header search path
	Regression bug fixes to keychain-opencl and agilekeychain-opencl.
	More regression fixes, mostly to done() functions. We must basically
	  do a normal release_obj() and also release all kernels. Nothing
	  else. Also fixes to SALT_ALIGN.
	More regression fixes.
	More done() fixes to OpenCL formats.
	Regression fixes. Automated editing is error-prone :-P
	Comment out debug prints in pwsafe-cuda
	Fix a bogus merge. In bleeding, we'll show OpenCL warnings.
	Drop all #ifdef FMT_MAIN_VERSION except in dynamic. The latter should
	  probably benefit from new ones added instead, so it can be moved
	  between unstable and bleeding at will.
	pkzip: SALT_ALIGN
	Documentation update (bleeding-jumbo specific)
	Enhance the --mkv-stats=FILE option so it can find a file residing in
	  john's home directory. Plus some other little fixes.
	Regression fix for the valid-killer self-test. It's normally not
	  active so I missed it until now.
	MPI and krb5-18/23 merge fixes.
	SybaseASE salt alignment fix.
	Minor OpenCL/CUDA tweaks. Enable advance_cursor() for CUDA-only builds
	  too. Also some typos: git grep -il tunning | xargs sed -ri
	  's/([tT])unning/\1uning/g' git grep -il plataform | xargs sed
	  -ri 's/lataform/latform/g'
	OpenCL: Change the -DAPPLE for OpenCL build options to -D__APPLE__.
	Bugfix for "make generic".
	Commit 04cf5f1 hurt performance for dynamic because data locality
	  suffered. This patch reverts it and use a union instead, to
	  satisfy the compiler.
	Relbench: Ignore the new "All nn tests passed self-tests"
	Single mode: Optionally load the full GECOS field (before splitting)
	  as one extra candidate. This is controlled with PristineGecos in
	  john.conf (and defaults to disabled).
	Use list_add_unique() for the optional PristineGecos loading.
	Add a john.conf option for over-riding SINGLE_WORDS_PAIR_MAX.
	truecrypt_volume2john had CRLF line endings.
	clang debug target fix.
	Salt/binary alignment fixes.
	BFEgg: Don't convert to base64 in crypt_all(), instead implement a
	  proper binary() that does the reverse. Conflicts:
	  src/BFEgg_fmt_plug.c
	Fix a logic error for some only-once warnings.
	Use correct value of BINARY_SIZE: GPU formats, and a couple Dhiru
	  missed (?)
	Revert "clang debug target fix."
	Alignment fixes in xsha512, nethalflm and sabB.
	formats.c: Never mind binary/salt alignment if size is 0.
	Alignment fixes to WPAPSK/ZIP formats (including GPU versions). And
	  yet some tweaks to XSHA512 (MEM_ALIGN_WORD is wrong for 64-bit
	  when we return ARCH_WORD_32).
	Revert "OpenCL: Change the -DAPPLE for OpenCL build options to
	  -D__APPLE__."
	xsha512-opencl: Alignment.
	formats.c: Salt/binary size self-tests (if -DDEBUG).
	Use -DDEBUG for the clang-debug targets!
	dummy.c: Unify MAYBE_INLINE with core CVS to reduce differences.
	Office OpenCL formats: Better valid(), with CPU format as template.
	RAR formats: Implement a real bastard of a valid(). I will soon start
	  denying having written it.
	xsha512-opencl bugfix. My bad when fixing alignment.
	Allow running an OpenCL binary without having any OpenCL platform
	  active.
	Bwall's pwsafe patch broke builds using CommonCrypto. This fixes it.
	Fix a hideous bug in rar2john introduced by in 216cc57. A variable was
	  declared as just "unsigned" (taken as int) instead of "unsigned
	  char" which lead to incorrect output. Not sure why the compiler
	  did not warn.
	Correct ALGORITHM_NAME of mssql-12, pbkdf2-hmac-sha512 and the
	  Truecrypts. Use sha2.h for a number of formats that depended on
	  OpenSSL 0.9.8 (all but Truecrypt). Bump max length to 125
	  for pbkdf2-hmac-sha512 format. There's absolutely no point in
	  limiting it to 15.
	Fixes for builds using Jim's homebrewn SHA-2.
	Drop a lot of crap from the unused/ directory. Old files can be
	  fetched from git if needed.
	mscash2: Drop no-op HAVE_OPENSSL lines.
	OpenCL bugfix for legacy parsing.
	Move --platform to "hidden" options with a note it's deprecated.
	options.c: Print formats last.
	Warnings from valid() should be suppressed if ldr_in_pot is set.
	Fix for ldr_in_pot.
	Introduce hash functions to hmac-md5.
	Introduce hash functions to hmac-sha1.
	Try to automagically detect and locate NSS, GMP and KRB5 libs, and
	  enable corresponding formats if successful. This is using Posix
	  find/grep and backticks. And pkg-config, if available.
	MPI: Limit scope of an internal variable.
	BLAKE2: Do not "secure zero memory".
	SIPdump fixes (CppCheck). Also revert using MEM_FREE() and mem_alloc.
	  That is not a good idea for a stand-alone.
	(Ab)use bench_running variable for keeping opencl_process_event() from
	  processing events while self-test is running. Otherwise a slow
	  self-test in combination with a short Save interval will thrash
	  the .rec file during start of a resumed session.
	WPAPSK formats has a minimum password length of 8. This patch adds
	  code to john.c that enforces this. We may want to add min_length
	  in the format struct later on, and remove this hack.
	WPA-PSK had a silly ESSID length limit of 14 that was already bumped
	  to 32 (the actual real-life limit) for the OpenCL version.
	  Moreover, it segfaulted on longer names. This patch bumps it for
	  CPU & CUDA too. For some reason the hccap buffer size is 36
	  (from hccap2john) so I kept that. Perhaps it's because it ends
	  up aligned including room for a NULL.
	Decrease PLAINTEXT_LENGTH for all WPA-PSK formats to 64, because that
	  is the spec. limit. More interestingly, the spec. says the
	  characters set must be 0x20-0xfe (printable ASCII) so we also
	  unset FMT_8_BIT.
	Add two WPA-PSK test vectors, including one for WPA (as opposed to
	  WPA2).
	Get DMD5 straight, and add OMP support. This format was seriously
	  broken.
	dmg: Make _memmem() static inline (will hopefully optimised away the
	  switch), enable 64-bit tests on 64-bit arch and disable
	  unaligned checks on platforms that does not support it.
	  dmg-opencl: Same fixes to _memmem(). ssh-ng: Provide an own
	  static inline copy of _memmem() instead of using one from dmg.
	Bump OMP_SCALE for DMD5.
	Format struct bugfix for DMD5 vs bleeding.
	Assorted BINARY_ALIGN & SALT_ALIGN fixes.
	More BINARY_ALIGN & SALT_ALIGN fixes. There a lot still to do.
	Unify Kerberos names.
	DMD5 format should not lowercase nonce hashes. They are used as-is!
	hmac-sha1 bugfix for get_hash().
	Cosmetical changes.
	SAP formats: Minor fix mostly for satisfying Valgrind.
	Fix an off-by-one in dynamic.
	Office: Use calloc instead of alloc, just for muting Valgrind.
	memory.c: When -DDEBUG, we turn mem_alloc_tiny() into a normal alloc,
	  to better track problems.
	Drop some #ifdef DEBUG, or change them to specific ones like
	  RAR_DEBUG.
	Wow-srp: This format is not case sensitive so unset FMT_CASE, and also
	  make the upper-casing in set_key() encoding-aware.
	Wowsrp has a minimum password length of 8, so add it to the hack we
	  did for wpa-psk.
	Get the "weird_fmt" back to unused/.
	Fix V11 interface for the "weird" format. And optimise it a little
	  (lol).
	Adjust a stack buffer after the recent bugfix to Office 2007. This
	  doesn't matter but it makes the code less confusing.
	Get rid of all use of alloca() and dynamic size arrays. Also fixes a
	  bug in keyring format: The "crack array" was not always reset
	  correctly. Makefile: Add OMPFLAGS comments for OSX llvm-gcc.
	  Truecrypt format: Use signed int for OpenMP loop, as required by
	  spec.
	DMG: Another alloca() found and changed to fixed size stack array.
	Dynamic: make sure valid() is looking at de-hexified data if
	  applicable.
	Pwsafe-cuda: Adjust BLOCKS according to count argument. Shaves a
	  minute from self-test and helps Single mode. Verified with the
	  Test Suite. Conflicts: 	src/cuda_pwsafe_fmt.c
	CUDA formats: Adopt to count argument to crypt_all().
	ZIP: Implement a proper cmp_all() instead of returning 1 and relying
	  on cmp_one(). This should be faster due to less function call
	  overhead.
	Office OpenCL formats: avoid false sharing of crack array.
	getopt.c: Allow an option named --foo to coexist with an option named
	  --foobar.
	Minor fixes suggested by CppCheck. Nothing exciting.
	Comment out unused functions in md5_eq.c
	Unify dynamic_fmt.c among branches
	bf-opencl: SALT_ALIGN fix.
	OpenCL: Now that we always init OpenCL, try to be more tolerant
	  against device failures. This is not perfect but it works fine
	  for a situation my MBPr sometimes get stuck in - one device
	  stops working correctly but the other work fine. This is
	  probably not complete, especially if it's device 0 that get
	  stuck and device 1 that works...
	Move WPAPSK test vectors to wpapsk.h and add a length 63 test.
	wpapsk-cuda: Some compilers did not like having the test vectors in
	  wpapsk.h so we define it out when building kernel.
	git grep -l '<stdint.h>' | xargs sed -ri 's/<stdint.h>/"stdint.h"/'
	Fix a bug in dmg formats, and add debug output.
	WPAPSK (CPU and GPU): Exploit same-essid weakness. Huge speedup when
	  applicable. See
	  http://www.openwall.com/lists/john-dev/2013/01/29/13 and on for
	  discussion.
	DMG debug bugfix (duh!), and a new test that seems pretty generic.
	dmg2john error message.
	dmg2john: Temporary fixes to handle large files and iteration count.
	DMG: Support iteration count. DMG-opencl: A bunch of fixes. This
	  format was not up to par with CPU format. Serious flaws fixed.
	  Add a known plain test for 8 consecutive nulls.
	SIMD support for NTLMv1 and OMP tweaks for non-SIMD.
	NTLMv1: Very effective hint to the optimiser in cmp_all(). And
	  benchmark using crippled plaintexts, so we measure real-life
	  performance.
	NT2: Bugfixes to experimental OMP support (defaults to disabled).
	DMG formats: Disable all but the NULL test, but bump that one to 16.
	DMG: Re-enable the other plaintext checks (but not Apple).
	DMG: properly re-enable plain checks, for OpenCL too.
	NTLMv1: Bugfix, and compact the hash functions (before merging the new
	  stuff to mschapv2)
	MSCHAPv2: SIMD support and exploitation of weakness just like NTLMv1
	  (the formats are very similar)
	NTLMv1 and MSCHAPv2: reject hashes in valid() as hinted by Solar.
	Bugfix for Jim's patch. Some debug functions were not static, and they
	  were included several times for GPU builds so the compiler
	  bailed. Also wrap that debug stuff in WPAPSK_DEBUG.
	MSCHAPv2, NTLMv1: After the 3rd DES block check in valid(), cache the
	  indexes so we don't have to loop again in binary().
	loader.c: Support "late reject" from binary(). If binary returns NULL,
	  the line is rejected.
	NTLMv1 and MSCHAPv2: Make use of new late-reject feature, so it gets
	  tested. This means we no longer test the 3rd DES block in
	  valid() but instead return NULL from binary() if it fails.
	Mute some over verbosity in OpenCL, and make the pwsafe format default
	  to auto-tuning.
	pwsafe-opencl: revert a change by bwall that broke auto-tuning for
	  weak devices.
	Truecrypt: replace a dynamic array with alloc/free. The format is so
	  slow this does not hurt performance at all.
	OpenCL: Tweak find_best_gws. It gave up to early: We need to take into
	  account how much work was done. If it took 10x more time than
	  minimum but we had a 1000x higher GWS, we should definitely not
	  stop! This code needs more tweaking.
	pwsafe-opencl: Now that common code doesn't give up too early, lower
	  max time for GWS enumeration to 2.4 seconds (should avoid
	  watchdog problems).
	Revert "NTLMv1 and MSCHAPv2: Make use of new late-reject feature, so
	  it gets tested."
	Revert "loader.c: Support "late reject" from binary(). If binary
	  returns NULL, the"
	Add some self-tests for functions returning NULL.
	NTLMv1 & MSCHAPv2: Use multiple blocks for the SSE version (still
	  single threaded) for bumping "many salts" speed. Actually we
	  bump it to the ceiling of what JtR can report - the output is
	  capped at 4294M c/s.
	bench.c: Support benchmark speeds over 2^32.
	NTLMv1/MSCHAPv2: Use memset for bitmap if more than 200 keys per
	  crypt.
	NT2, NTLMv1, MSCHAPv2 tweaks for experimental OMP+SSE2.
	Dynamic: Bugfix for MMX (I think it's right, I can't link it).
	Raw MD4/MD5: MMX fixes.
	More MMX fixes, including a cludge in the max-length self-test, for
	  MMX formats that use total_len.
	dynamic.c: Bugfix.
	(Alain's) NT format: Adjust x86-sse.S to new ABI.
	Use DO_ALIGN macros in Jumbo .S files.
	Optimizations for keystore format. Sub-percent speedup :-P
	Portability fixes from building on ancient Sparc Solaris 32-bit.
	MSCHAPv2 & NTLMv1: Emit a warning after loading 100 c/r pairs,
	  informing about slow loading and alternative formats.
	  Re-introduce the old versions as mschapv2-naive and
	  netntlmv1-naive. Also fix the DES caching in NETNTLM: it may be
	  called from prepare() so the cache must be checked not only in
	  binary() but also in valid().
	Siemens-s7 format: Trivial improvements, and separate key setup from
	  salts. This made a 30-40% boost.
	o5logon: Minor optmizations.
	CUDA device list: Add PCI id to output, and replace a deprecated
	  parameter with a new, getting more detail.
	Add any_cracked to a bunch of OpenCL formats that use crack array.
	  Conflicts: 	src/opencl_agilekeychain_fmt.c
	  src/opencl_dmg_fmt.c 	src/opencl_gpg_fmt.c
	  src/opencl_keychain_fmt.c 	src/opencl_zip_fmt.c
	Add "naive" to the ALGORITHM_NAME for old load-fast-run-slow versions
	  of MSCHAPv2/NTLMv1, as in [32/64 naive]
	Add wpapcap2john to .gitignore.
	GPG: Optimizations, and bump max length to 32.
	Endianness & alignment fixes from testing on a Sparc32.
	More BE and alignment fixes. Some problems were in shared code in
	  unicode.c and the problems has been fixed backwards until now.
	  Most unicode.c functions convert/process UTF-16LE *regardless of
	  arch* and any endian fixes must account for that (normally none
	  is needed).
	para-best.c fix for core changes.
	Make itoa64 and the likes const.
	Crypt-SHA formats: Use a ROUNDS_MIN of 1.
	pbkdf2-hmac-sha1: Support OSX 10.8 from "the Dave Grohl tool" as well
	  as GRUB hashes, without converting them. We support hashes
	  longer than 64 bytes but we don't calculate/verify past 64 even
	  in cmp_exact() - the chance for such a collision is
	  slim-to-none.
	pbkdf2-hmac-sha1: Do a complete calculation & verify for full binary
	  size, just for good measure.
	pbkdf2-hmac-sha512: Improve the warning messages given for partial
	  matches.
	Endian fixes for BFEgg, wpapsk, pbkdf2-hmac-sha152, pwsafe and shared
	  pbkdf2-hmac-sha1. Also a bugfix for openvms but it still
	  segfaults for me. This is now the only format that doesn't pass
	  self-test.
	Drop run-time version checks for NSS that would be bad if run-time lib
	  is older than build-time one.
	Mscash: Get rid of compiler warnings on linux-ppc32. Conflicts:
	  	src/mscash1_fmt_plug.c
	Alignment fixes.
	Rules.c bugfix for -max-length. Format's max length is already
	  adjusted down to max-length, and the RULE macro would do an
	  unwanted incrementaion.
	Use sha2.[ch] from unstable branch.
	Revert the previous patch and use the SHA2 version that was in
	  bleeding instead, but properly indented. Also try to mitigate a
	  bogus strict-aliasing warning.
	Mute harmless compiler warnings if MIN() already defined.
	Better fix against that alleged strict-aliasing violation.
	Move md5_eq.c to unused.
	Remove md5_eq.o from Makefile.
	formats.c: Stop trying to use system's strnlen(), instead always use
	  our supplied fmt_strnlen(). We could move it to misc.c too at
	  some point.
	Revert SHA2 strict-aliasing fixes. They did not work at all for BE.
	We can force Jim's generic SHA-2 with -DFORCE_GENERIC_SHA2. This patch
	  adds a way to force OpenSSL over CommonCrypto, using
	  -DFORCE_OPENSSL_SHA2.
	Alignment fixes (bleeding only)
	Alignment fixes
	Mute a warning for generic target.
	Merge the current MSCHAPv2 naive format (with FreeRadius support) to
	  Deepika's bitsliced format. Then drop the original format and
	  use BS format as "naive". Lots of whitespace changes, view with
	  -w.
	DES BS plain SSE asm: Properly underscore P if applicable. It works on
	  OSX anyway but I'm not sure it will on others that
	  -DUNDERSCORES.
	Alignment fix for mschapv2-bs
	MSCHAPv2-BS: Merge two loops into one. This made a 5% boost here.
	MSCHAPv2 BS: #ifdefs for FMT_ flags
	Update CHANGES-jumbo.git & CREDITS-jumbo.
	I always end up confusing crypt(3) base64 with MIME Base64: Add some
	  comments.
	Fix a slight bug in sha512crypt binary() that could never surface. It
	  was processing the trailing NULL. Also drop some copy-paste
	  artefacts.
	Some Kerberos libs are not thread safe, but fortunately we can find
	  out using the krb5_is_thread_safe() call. Conflicts:
	  src/krb5-18_fmt.c 	src/krb5-23_fmt.c
	Decrease OMP_SCALE in a number of formats. This number needs to be
	  tweaked for each format, not just copied from a template.
	Alignment fixes to Sybase & pkzip.
	Sort load order of GPU formats so they are easier to find within a
	  full --test.
	Merge branch 'bleeding-jumbo' of
	  https://github.com/bwall/JohnTheRipper into bleeding-jumbo
	listconf.c: Rewrite the formats list function. It was overly complex
	  and buggy.
	Add format groups "opencl", "cuda", "cpu" and "gpu" for use with
	  --test as well as with things like "--list=formats" and so on.
	  Also allow wildcard in the end, as in wpapsk* or krb5*.
	listconf.c: Suppress leading space in benchmark_comment.
	Document --format group aliases/wildcards.
	pwsafe-opencl: Some platforms will complain unless OpenCL functions
	  are static, inline or both.
	Put Sayantan's format last in registration, until they are fixed.
	PWSafe-opencl: Fix a bug where device max sizes were not queried for
	  all kernels (now that we use a split kernel).
	OpenCL DES: Honour device limit for LWS.
	Shave 35 seconds off pwsafe-cuda self-test. I did this before but it
	  was recently reverted by some other patch.
	Revert some previous "CppCheck fixes" that might affect performance
	  (and is not really needed anyway). Not sure what I was smoking
	  that day.
	Drop bogus BE code from MMX path in nt2. It would never be used.
	Documentation updates.
	Add OSX clang-debug target.
	Mute MSCHAPv2 warnings appearing due to valid-killer self-test if
	  -DDEBUG.
	Previous patch made for warnings unless -DDEBUG o.O
	Typo in fix for fix. Time to sleep?
	Various constant arrays made const.
	NT formats: Five percent boost for codepage encoding, from
	  optimizations in set_key().
	raw-md5u: Three percent boost for codepage encoding, from
	  optimizations in set_key().
	ntlmv1/mschapv2: Five percent boost for codepage encoding, from
	  optimizations in set_key().
	mssql05: Optimizations in set_key() for codepage encoding.
	DES-opencl: Safer LWS capping (ensure GWS is still multiple of LWS).
	ODF formats (all three): Handle content.xml sizes less than 1024 bytes
	  correctly.
	ODF formats: Make valid() a little more picky about hex length.
	Add macosx-x86-sse2-opencl (ie. 32-bit) build target.
	More uint64_t fixes.
	Use "stdint.h" in pbkdf2-hmac-sha512 format.
	DMG formats bugfix for "0 iterations" (assume 1000).
	Truecrypt: Simplify cmp_all(), unfortunately for no performance gain.
	dmg2john: bugfix.
	dmg2john: Use base name of file name in output.
	DMG formats: Serious bug fixes for 3DES v1 images. This fixes the
	  problem with false positives as well as an even worse one: false
	  negatives o.O
	uaf2john: Do not support writing to outfile, only to stdout. And add a
	  make target.
	wpapcap2john: Support multiple infiles. zip2john: Use base name of
	  filename for login field.
	MSCHAPv2 & NTLMv1: Smaller hot array. 25% boost for many salts, a
	  couple for one salt. Also enable OMP for SSE2.
	MSCHAPv2 & NTLMv1: Again disable OMP for SSE2 - it works fine on some
	  CPUs but not on others.
	Merge MSCHAPv2_fmt_plug.c and NETNTLM_fmt_plug.c to one file:
	  ntlmv1_mschapv2_fmt_plug.c, sharing much of the code.
	Make odf2john work with python 2.6 (as well as 2.7).
	Change odf2john so we fall back to the deprecated function only if the
	  newer one is not supported.
	Unicode fixes for NOT_JOHN
	unicode.c: Support re-init of encoding.
	mscash2-opencl honours LWS and GWS env variables, des-opencl and
	  bf-opencl honours GWS environment variables, added functions to
	  detect optimal GWS for bf-opencl and des-opencl
	Fix SAVE= timer similar to Costin's patch.
	Fixes for the recent timer changes.
	If OS_TIMER, we only call status_get_time() if --max-run-time or
	  --progress-every was given.
	Update CHANGES-jumbo.git and CREDITS-jumbo.
	Document --request-vector and --request-scalar options in
	  README-OPENCL.
	mscash2-opencl: Fix for forced LWS larger than kernel's max.
	Document the OSX problem with OpenCL kernel header files.
	Wordlist bug fixes: Reject wordlist containing NULL bytes, and handle
	  inconsequent line feeds (eg. spurious CR within a line). This fix
	  will do for Jumbo-8 so we don't introduce new problems.
	Import cisco2john.pl from unstable.
	Fix the postgre format: Rename it to postgres, including the tag. The
	  old format is still supported. Also improve valid().
	Some format name changes to clarify what they are.
	s/Staroffice/StarOffice/
	Add CXX variable to Makefile. Add separate PROJ_ sections for C++ as
	  well as pcap, so John does not fail building even if they do.
	  Also add uaf2john and truecrypt_volume2john to the main targets
	  and move office2john to unused.
	Bugfix in keystore2john.
	uaf2john: Fix an aliasing problem.
	Fix another warning in wpapcap2john (fread return value).
	keystore2john: Fix another fread warning.
	raw-md5-opencl: support max. length of 55 (the max that fits in one
	  round) while minimizing transfers to actually needed size. This
	  is a winner, although the boost is not quite as good as I hoped
	  for.
	raw-md5-opencl: Limit GWS to what is supported by the index size.
	Clean up and simplify the max-length self-test. The previous version
	  was confusing when debugging problems so we now do it after all
	  other tests.
	Revert "Experimental: Let Incremental and Markov modes call
	  format->methods.clear_keys()". This doesn't seem to be of much
	  value, and if it turns out it is, we'll re-introduce it then.
	Fix generic build.
	Fix generic build after the timer fixes.
	Move wpapcap2john from PROJ_PCAP to PROJ - it does not depend on
	  libpcap! Conflicts: 	src/Makefile
	rawmd5-opencl segfaulted due to common-opencl missed calling
	  clear_keys().
	formats.c: Minor Jumbo-specific bugs fixed.
	raw-md4-opencl: support max. length of 55 (the max that fits in one
	  round) while minimizing transfers to actually needed size.
	Revert 8e992e4 and instead bump RULE_BUFFER_SIZE in params.h by 4. We
	  should look into this more closely but this will do for now.
	Makefile: Add a "Done." after building the pcap targets.
	Experiment with error-tolerating crypt_all_benchmark().
	Replace 4 duplicate definitions of _memmem() with a faster
	  implementation in misc.c. I believe the old code was O(M*N)
	  while the new is "somewhat like O(M+N) for most cases" yet is
	  shorter. Also, it is declared so that it's inlined where
	  applicable.
	misc.h: include string.h for memcmp.
	Unicode re-init bugfix.
	NTLMv2-opencl: Use packed key buffer as recently introduced in
	  raw-md4/5. This also enables full-length UTF-8 support (up to 81
	  bytes of UTF-8 for representing up to 27 Unicode characters).
	NTLMv2 kernel: Bugfix for no-byte-addressable code path.
	pass_gen.pl: Support UTF-8 for -salt argument when -utf8 option is
	  given.
	Stop user from trying to use any encoding other than iso-8859-1 with
	  formats that lack support for it. It would just end up in false
	  negatives.
	Drop bogus FMT_UTF8 flag from Truecrypt.
	NTLMv2 OpenCL: Use length 8 for benchmark unless -DDEBUG.
	NTLMv2 OpenCL: Early transfer of keys.
	Change MPI reduction for benchmarks for accurate average speeds. Also,
	  reduce the int64 properly (only affects 32-bit or BE systems).
	Update README-mpi.
	CUDA formats: Tweak default THREADS*BLOCKS so they work on weaker
	  devices.
	NTLMv2 OpenCL workgroup size enumeration tweaks.
	Dynamic: Change name of "salted Cisco PIX" to "Cisco ASA"
	Add thin format for Cisco ASA.
	Copy the improved ZIP valid() to the OpenCL version of same format.
	Refuse to translate \x00 into a null in user classes.
	Add external mode filters for UTF-8 validation. This is slow though.
	Change self-test use of set_key("", index) into something that
	  actually passes a large enough buffer for any use.
	Change self-test use of set_key(current->plaintext, index) into
	  something that actually passes a large enough buffer for any
	  use.
	Bleeding fixes/unifying MSCHAPv2 & NETNTLM (naïve bit-slice versions).
	Sparc fixes. Latest optimization of mschap/ntlm formats broke BE.
	PDF format still used the Bad Idea[tm] version of valid().
	Purely academic bugfix in common-opencl.c. kernel_source was not freed
	  in clean_opencl_environment().
	Add missing deallocations in OpenCL DMG & RAR formats' valid().
	formats.c: self-test tweaks and source formatting.
	SAP F/G: Bump maximum length. We over-ran a buffer with the latest
	  self-tests.
	Fix recently introduced OMP flaws in keyring format. This lifts the
	  limit of number of threads and reduces needed memory per thread
	  by a factor of 128.
	Make raw-sha256-ng a non-plugin
	Another 10% boost in raw-sha256-ng from set_key() optimizations.
	Self-tests that make raw-sha256-ng fail. It doesn't support plaintext
	  lengths beyond 55, and something else is wrong too.
	Workarounds for bugs in raw-sha256-ng. Until we get better fixes, we
	  decrease max. length to 55 and introduce a workaround for
	  cmp_all().
	Bug fixes to thin dynamic formats PHPS, formspring, mediawiki, osc and
	  phpassMD5. They over-ran buffer when given bad input files.
	More robust valid() in salted sha1 / nsldap formats.
	Do some actual validation in SIP valid().
	Actually, while at it we should just as well validate it is lower-case
	  hex.
	WOW-SRP fixes. Not sure I found all, this is a mess.
	Makefile tweaks for JOHN_CFLAGS etc.
	rar2john big-endian fixes for Unicode filenames in RAR.
	Canonical fixes for new tcphdr.h (failed on Sparc)
	Revert "JtR-Dynamic_validation_raw_hashes-2.patch". It made things
	  worse.
	Macros for prefixing MD[45]_(Init|Update|Final) with "john_" for
	  avoiding clashes with OpenSSL library.
	Endian stuff.
	Change all uses of <stdint.h> to our local "stdint.h".
	Drop un-needed header in ssha-opencl.
	OMP support for raw-sha512-ng.
	Tweak OMP_SCALE for AMD.
	Add macosx-x86-64-native build target. To use it, you need to copy
	  osx_as_wrapper.sh (from the src directory) to /usr/local/bin/as or
	  to some other directory (but the script MUST be called 'as') and
	  ensure this directory is first in your $PATH.
	keystore2john: Use basename of filename for login field, and convert
	  to symlink to john.
	Bugfix for keystore2john target.
	Precedence: MSCHAPv2 should pick sploit version over BS one.
	Generic crypt format bugfix.
	Testpara vs. HAVE_OPENSSL fix.
	kwallet2john: Handle multiple files, and strip suffix and path from
	  login.
	truecrypt_volume2john: Use filename as login field, and convert to a
	  john symlink.
	raw-sha512-ng: faster set_key().
	raw-sha256-ng: OMP support.
	Use -march=native for Linux 32-bit GPU targets.
	Makefile fixes for OSX 32-bit cross-compile.
	Bugfix for memory.c under -DDEBUG. In order to easier track bugs,
	  mem_alloc_tiny() is changed to a normal alloc. But it was supposed
	  to still maintain requested alignment!
	Dynamic bugfix for $HEX$.
	Change the way -DDEBUG affects mem_alloc_tiny(). The outcome is
	  practically the same but this is cleaner.
	Revert "Change the way -DDEBUG affects mem_alloc_tiny(). The outcome
	  is practically"
	Final canonical change for -DDEBUG versus mem_alloc_tiny.
	Do not misalign SSE2 buffers when --save-memory=3 or above. The
	  previous fix did not catch all cases.
	Mute self-test warnings for misaligned binary/salt if --save-memory
	  made the alignment smaller.
	pbkdf2-hmac-sha512: Store canonical representation in pot file.
	Keccak: header tweaks that make it build on SSE2, AVX or XOP. Maybe
	  not 100% but does work. Emits wads of warnings on AVX and XOP
	  though, and AVX is not faster than SSE2.
	formats.c: Move max-length tests to before cracking tests. We must
	  verify that we can still crack stuff after using max-length
	  keys.
	raw-SHA512-ng, fix a bug introduced in 14a5985
	Max-length self-tests fixes. The current version still hangs BSDI
	  forever, I have absolutely no idea why. Working on it.
	Fixed max-length self-test.
	OMP_SCALE tweaks. Just picking a number out of thin air is actually
	  not really recommended.
	More OMP_SCALE tweaks.
	Relbench tweaks, for ignoring warnings.
	OMP_SCALE tweaks. There are massive gains to win in some formats. All
	  OMP formats should be revised, but there are so many :-/
	OMP_SCALE for raw-sha1-ng.
	Copy the SSE2+ SHA-256 and SHA-512 from epixoip's formats to
	  sse-intrinsics.c before we start optimizing things away :-)
	Revert "Revert cmp_all omp parallel, performs poorly on AMD"
	raw-sha1-ng: Bump OMP_SCALE to 1024.
	Make our usual MD5 format handle AIX's {smd5} hashes too, and drop the
	  much slower separate aix-smd5 format.
	The pre-built (with-icc) .S files are now invalid, we need to generate
	  new ones.
	Now that our MD5 format supports cracking AIX {smd5} hashes too, the
	  "FreeBSD" output is more confusing than ever. I changed it to
	  crypt-MD5.
	I missed the "please keep this list sorted" :-)
	Drop the intermediate encoding from aix2john.py and support the native
	  hashes in aix-ssha instead. We now lack some test vectors.
	Minor fixes to aix-ssha.
	aix-ssha bugfix for new binary().
	Fixes for a couple of make targets.
	Drop inconsistent paths in the auto-conf hack.
	Re-worked valid() for aix-ssha. This version tests every field for
	  valid amount of valid data, where "valid amount" depends on the
	  tag. Also, bumps max. salt length to 24 as that is the actual
	  maximum. If Alexander can smash this, I give up :-)
	No longer any need for passlib python module in aix2john.py.
	Unicode fixes for office2john.py.
	Dynamic: Move a definition to avoid compiler warnings.
	Netscreen: Better valid().
	DMD5: Better valid().
	Drop the wchar stuff from gpg2john. 8-bit GECOS now works fine.
	Putty: drop an unused variable.
	Add updated sse-intrinsics-xx.S files. Built with -O2 using icc
	  13.1.1. -O3 (as we used with 12.1) took 47 minutes and was a lot
	  slower.
	Merge branch 'master+patches' into bleeding-jumbo. NOTE: The charset
	  files are gone for now. The old ones are incompatible. For
	  testing, create new ones from the Rockyou list, or something.
	Drop deprecated Incremental modes like "All6". You can now use
	  -min-len and -max-len instead. Also add an entry for
	  "custom.chr" which will not be supplied - it's convenient for
	  one-off charsets.
	Add external mode filters Alnum-case (a-zA-Z0-9 and space) and ASCII
	  (0x20-0x7e).
	Add interim chr files to bleeding. We now have -inc:utf8 and
	  -inc:ansi, while -inc just produces 7-bit ASCII like before.
	Update CHANGES-jumbo.git and CREDITS-jumbo.
	Update CHANGES-jumbo.git and CREDITS-jumbo for bleeding.
	Merge branch 'master' into bleeding-jumbo
	Merge bugfix for status.c.
	Default to ISO-8601 style ETA output, in order to make it shorter.
	Rename -inc:ansi to -inc:latin1.
	Use a different ETA format string when less than 24h.
	More restrictive valid() in nsldap, salted-sha1 and ssha-opencl.
	Comment out dynamic_1028. It was using un-implemented functions...
	Improve valid() in all MSCHAPv2 and NETNTLMv2 formats.
	MPI vs. node/count fixes.
	Bugfix for MSCHAPv2.
	Node support for Markov.
	doc/MARKOV note about UTF-8 filter.
	Replace a dropped MPI header from wordlist.c.
	Mute some warnings JimF were seeing about unintialized variables. They
	  are bogus from what I can see but maybe some compilers get dizzy
	  from the gotos.
	Wordlist.c bugfix after core merge. --pipe was trying to fseek stdin.
	Wordlist.c bugfix after core merge. --pipe must be treated as a
	  per-thread memory buffer.
	sse2i_winfix.pl: Sort underscore macros, as they otherwise come in
	  random order from the hash, which is confusing when inspecting
	  diffs.
	Minimize unneeded differences between Jumbo and core.
	Wordlist fixes.
	Status.c post-merge fixes for Jumbo.
	Wordlist.c fixes after merges.
	Wordlist.c fixes.
	Node/fork/MPI fixes.
	Post merge fixes. Some unifying of MPI vs. node/fork.
	Do not close stdout under MPI. Until now, all nodes except root node
	  did (legacy from original patch).
	Mute Keccak warnings on AVX builds.
	Mute Keccak warnings on XOP and other builds.
	Hopefully mute last Keccak warnings.
	Unify MPI with fork. Still not tested at all.
	MPI vs -fork fixes.
	MPI fix. Now hopefully, "mpirun -np x" works the same as "-fork=x"
	  when used with -nodes option.
	Warn about MPI save/restore being busted for now.
	MPI vs. -fork fixes. Now might actually work, including resuming.
	MPI documentation updates.
	Fix for -fork vs. -max-run-time.
	MPI: Read/write .rec file compatible with --fork.
	MPI documentation: We can now start a session with MPI and resume it
	  with -fork, or the other way round.
	MPI: Ensure that a resumed session runs on the correct number of
	  nodes.
	Avoid #pragma warnings from clang et al.
	MPI vs. fork fixes, and documentation.
	Fix GPU builds after recent core merges.
	MPI: Drop obsoleted output.
	Revert "SIP valid() fix."
	MPI: If OMP_NUM_THREADS is set, we assume the user knows what he is
	  doing. Here's how to pass it to remote hosts: mpirun -x
	  OMP_NUM_THREADS=4 -np 2 -host ...
	Tune a couple of "FIXME" OMP_SCALE macros.
	Add lanman.chr made from Rockyou (repaired, upper-cased in Unicode
	  stage, converted to CP858 [superset of CP437] and split at
	  length 7).
	Wordlist: Fix a division by zero bug in get_progress.
	Copyright blurb.
	Minor cosmetical fixes to bench.c.
	Bugfix in agile.
	Fixes for generic make target (more needed).
	raw-sha512-ng: Fix for 32-bit builds.
	Update benchmark-unify. Some formats are not very comparable, eg.
	  Office, that got support for 2013 which is much slower. But I
	  added them.
	Drop some no longer used MPI stuff.
	Raw-sha1-ng: Fix for clang.
	Typo in john.conf, and an added fflush(stderr) for MPI.
	VMS: Better valid().
	Drop unused variable from VMS.
	Merge recent sxc fixes to sxc-opencl.
	Merge a whole bunch of fixes made to CPU formats, to the OpenCL ones.
	memory.h fix for generic builds.
	Fix "testpara" make targets.
	MPI fixes. After latest merges we had the MPI vs. OMP checks made
	  twice.
	Tweak SHA1_SSE_PARA for latest ICC. 3.5% faster.
	MPI fixes (output only on root node).
	MPI: non-root processes now lock main rec-file in shared mode at first
	  read.
	testpara32 fixes.
	MPI: If more than one node, all must use LOCK_SH.
	Merge branch 'master' into bleeding-jumbo
	Document the new argument handling in rec_lock() and
	  rec_restore_args().
	MPI: We no longer close stdout for non-root nodes, so we can output
	  cracks to it just like other builds do.
	Override crk_help() message under MPI when applicable.
	Do not use CommonCrypto for SSE2 builds.
	Jumbo code audit: Remove unnecessary differences from core tree. Drop
	  some EOL whitespace. Update some documentation. Fix an OpenCL
	  problem introduced by latest core merges. Use UTF-8 encoding for
	  doc/RULES as it contains 8-bit characters. Drop some deprecated
	  information from doc/MARKOV (though we'll keep supporting it for
	  a while).
	Bugfix for the avoid-CommonCrypto patch.
	Variable changes in mscash formats, to avoid function name clashes
	  that seem to be the result of defining _DARWIN_C_SOURCE.
	Variable changes in PDF, Tiger and Whirlpool formats, to avoid
	  function name clashes that seem to be the result of now defining
	  _DARWIN_C_SOURCE.
	Updated doc/BUGS for bleeding.
	Rename AIX format so they reflect their well-known tags.
	Move a Jumbo tweak from signals.h to common-opencl.c in order to mess
	  as little as possible with core.
	Raw-sha256: Support Cisco type-4 hash format. This is made in
	  prepare() so that any .pot entries are compatible between the
	  formats.
	Bug fixes for previous patch.
	Do not include os.h from signals.h. Instead, ensure it's included
	  earlier.
	Make all definitions in EPI_fmt static.
	Make MD5 helper functions in sse-intrinsics.c static and MAYBE_INLINE,
	  and drop unused debug/sse_debug() stuff.
	New intrinsics .S files after recent change. 4-5% faster MD5crypt.
	Re-enable NT format, that was MIA since 7112446.
	Typo in README-OPENCL.
	Fix a mistyped #error pragma, although it sort of worked as intended
	  anyway.
	Hand-edited sse-intrinsics-32.S to fix an issue the sse2i_winfix.pl
	  does not catch yet: Labels that have ".." in them. Apparently we
	  can't use ".." in a macro name (for -DUNDERSCORES) so these
	  labels need to be renamed throughout the file. TODO: Fix
	  sse2i_winfix.pl so can do this in a generic way.
	Add a missing linefeed in status output for --stdout.
	listconf.c: Do not check for fmt_default_valid. It does not exist
	  anymore.
	bash-completion: Drop trailing whitespace.
	bash-completion: Redirect dynamic.conf errors to /dev/null.
	The StatusShowCandidates config option showed "combinations" until
	  now, this changes it to use "candidates" in the format "43210p"
	  as we now have that figure handy.
	The StatusShowCandidates line was accidentally dropped from john.conf.
	Optionally reject printable binaries.
	MPI fix for -reject-printable
	Add --verbosity=N option. N is 1-5 and defaults to 3. For now, level 1
	  will mute printing of cracked passwords to screen. Level 4 will
	  add some extra output from OpenCL and level 2 will mute some
	  other. More to come.
	Mute --stdout candidates with --verbose=1
	ShowCandidates fix (cosmetic).
	DES-opencl: Rename to descrypt-opencl, and new-style algorithm name.
	  Plus some trailing whitespace fixes that emacs did for me as soon
	  as I touched the file.
	Dynamic: missing paren in BE code.
	OS X specific build instructions.
	Incremental: Correct progress for multiple nodes.
	MPI: Tweaks for file locking problems during restore.
	raw-SHA256-ng: Fix OMP bug in vanilla SSE2 code path.
	Add ULL to large numbers in SHA512 code, muting loads of complaints
	  when building 32-bit.
	Update .mailmap for git shortlog.
	Update CHANGES-jumbo.git and CREDITS-jumbo
	New charset files (because charset.c changed). Also a new Jumbo-only
	  "Alnum-case" incremental mode, that is upper+lower case and
	  includes the space as well.
	Enable OpenMP for NT2 format. Works fine on intel i7, not so good on
	  AMD.
	Add a linux-X32-native make target (for X32-ABI). For this to work we
	  also change ARCH_WORD to "long long" in x86-64.h.
	Rename linux-X32-native target to linux-x86-X32-native.
	Fix a problem when resuming forked or MPI sessions that use the
	  --encoding option.
	Move crypt(3) format to lowest precedence.
	Document some requirements in doc/INSTALL.
	Possible bug fix for
	  http://www.openwall.com/lists/john-dev/2013/05/27/20, thanks to
	  Claudio.
	MPI: More consistent exit handling.
	Update MPI docs. Also, MPI was accidentally enabled by the last commit
	  so this is fixed too.
	Drop all uses of alloca() and variable size arrays.
	Fix bugs in LUKS format. Allocations did not account for padding.
	Drop HAVE_ALLOCA_H from os.h since we are not allowed to use alloca()
	  at all.
	LUKS: bug fix in valid().
	Oracle11: Alignment fix.
	hmac-sha-2 formats: Alignment fixes.
	Document the OSX krb5-23 problem.
	Avoid using GCC-specific pragmas on compilers that don't grok them.
	100% white-space patch. I omitted dynamic as Jim's working on that
	  one.
	100% white-space fixes (GPU kernels).
	Change name of bf-opencl to bcrypt-opencl, like the CPU format.
	Adopt to new incremental modes (incomplete).
	Adopt to new incremental modes.
	Use official lm_ascii.chr from core John. The rest of the
	  non-Jumbo-specific were already identical.
	Reduce OpenCL formats verbosity, if requested.
	xsha512-ng-opencl: Alignment.
	Change --raw-always-valid (et al) to --bare-always-valid to avoid
	  confusion.
	Documentation updates.
	Add a line to --list=hidden-options:
	Fix a cosmetic bug when listing formats with wildcards that match
	  dynamic.
	Update doc/MARKOV. The examples are updated for version 1.8 output of
	  John (which incidentally simplifies the calculation part a lot as
	  we now get a proper p/s figure directly).
	doc/MARKOV, change s/cracked/tried/ in a couple of places. They are
	  not synonyms...
	doc/MARKOV: Yet some minor adjustments.
	Even more changes to doc/MARKOV: We can use the -max-run-time option
	  instead of trying to find a proper markov level for measurement.
	mkvcalcproba: Support reading from stdin.
	genmkvpwd: Change %lld to %llu for correct printing of large numbers.
	Fix progress calculation for wordlist mode without rules, when
	  memory buffer is in use.
	Fix a couple of problems with raw-sha1-opencl. And while at it, bump
	  max length to 55 and use "compressed" key buffer for a nice
	  boost.
	NT2 format: Only use OMP+SSE2 for AVX or XOP. Older CPUs won't do
	  well.
	Dynamic OMP bugfix.
	Wordlist.c: Fix for status overflow w/ millions of rules.
	MPI: Fix cosmetic problem - help message printed several times.
	Drop the word "intrinsics" from algorithm names.
	FORMAT_NAME vs. ALGORITHM_NAME fixes.
	Fix ALGORITHM_NAME for mscash2_opencl again, after Sayantan ignorantly
	  reverted it.
	Fix alignment for all formats that had my name in them for any reason.
	Lots of algorithm_name vs format_name changes.
	DES-opencl bugfix. It was using atexit() instead of registering
	  done().
	Use fmt_default_binary_hash_N() in more formats.
	Fix a problem when using -fork with an MPI-enabled build. We
	  initialize MPI before even parsing options, so if/when we are to
	  fork later on, we need to tear that "1-node MPI session" down
	  before forking, or the forked MPI world will result in all sorts
	  of funny business. Tricky stuff.
	Wordlist.c bugfix: Do not try to split-load a too small file into
	  buffer.
	Add repeats16 and repeats32 external modes (from the obsolete contest
	  branch).
	More use of fmt_default_binary_hash_N().
	Even more use of fmt_default_binary_hash_N().
	Correct MPI node number in pexit() message.
	Minor cosmetic fixes and code cleanup.
	Replace a check in gpg-opencl valid() that I accidentally dropped in
	  ddb17ef
	Replace a check in gpg-opencl valid() that I accidentally dropped in
	  ddb17ef. Hopefully proper this time.
	Update CHANGES-jumbo-git and CREDITS-jumbo
	Add a comment in ext_init explaining a confusing bail-out.
	Warn when resuming an external mode lacking resume(). For modes
	  that actually doesn't need any restore handling, add a no-op
	  resume() function to mute the warning.
	Add a restore() function for KDEPaste. Very slow but better than
	  nothing.
	External mode now refuses to resume unless a restore() function is
	  present.
	Minor optimizations and corrections in 7z.
	Endianness fixes in Blake and Keccak.
	Set FMT_UNICODE in 7z formats, so we don't produce false negatives.
	Bad wordlist.c bug fixed, triggered when running -loop with fork/MPI.
	Make Incremental and Rules optionally less chatty.
	Mitigate compiler warnings from last patch.
	Proper Unicode (and codepage) support for 7-zip format.
	Rename scrypt to django-scrypt, as we have more generic scrypt
	  inbound.
	NT-opencl: Copy prepare() from CPU format. Without it, it did not
	  handle pwdump format files.
	All NT formats: prepare() tweak for bare hashes.
	WPAPSK-opencl: Change auto-tune so we target a loop kernel duration of
	  max. 200ms instead of a total crypt_all() duration of max. 10 s.
	  This makes for a 16% boost on my laptop, 1% on GTX570 and no
	  change on 7970.
	KWallet bugfix for long keys. Kudos to Private2@GitHub.
	Change django-scrypt to use the new scrypt code enhanced by Solar.
	  NOTE there may be more changes needed, I just made it build and
	  test OK. Are we using SIMD now as-is? Should we use escrypt_r()
	  instead?
	Fix generic build after introducing fmt_default_binary_hash_N
	  functions.
	Revert changes to DES, BSDI and LM formats from 831abd7. Never change
	  core files unless you really know what you are doing!
	Drop incrementals "try" counter, which was naively updated at every
	  call to crk_process_key(), in favour of the now existing
	  status.cands which is better implemented. This also means I
	  could drop Jumbo-specific code for restoring progress -
	  status.cands is already handled by core.
	Bugfix: The "3/3" batch mode output was mistaken for a percent figure.
	The OpenCL initialization called from john.c is made passive, so it
	  doesn't wake up GPU devices unless needed. Queue and context
	  creation is postponed until opencl_init_opt().
	Refactor some function names of common-opencl.c (prefix with opencl_).
	  Add some comments and drop some obsoleted stuff.
	Do not initialize OpenCL devices more than once.
	Fixes for mscash2-opencl. The existing code was bogus in several ways.
	Bugfix for pbkdf2 unsplit OpenCL kernel. Bug may have affected several
	  formats where salt length was larger than 23. Thanks to Marcus
	  Desto for reporting.
	Rename the super confusing SHA2 macro in pbkdf2-hmac-sha1 to
	  "SHA1short". Also apply the recent bugfix to CUDA and CPU code
	  too.
	Fix CUDA pbkdf2 too.
	raw-md5-opencl bugfix: You can't release buffers that are not
	  allocated.
	No OpenCL initialization whatsoever until opencl_init_opt().
	Fix for opencl_done() when not initialized. I thought it would work
	  as-is.
	Add a 'hidden' build target macosx-x86-64-native-gpu.
	Workaround for crappy OpenCL drivers (that don't understand compiler
	  options that are mandatory).
	pbkdf2-hmac-sha256-opencl: Simplify cmp_all(). We don't need to test
	  more than 32 bits, the rest are checked in cmp_one() and this
	  will happen very infrequently.
	Warn when b0rken device is skipped.
	Various minor fixes for Sayantan's OpenCL versus OS X.
	EFS bugfix: This is a Unicode format. Also make a local function
	  static.
	Proper --encoding support for EFS. Also fixes a bug with uninitialized
	  data.
	Improve comments in unicode.h.
	Comment on a weird line in options.c that looked like some code fell
	  off.
	Jumbo uses a shorter tab stop than core for the usage blob.
	Revert "Jumbo uses a shorter tab stop than core for the usage blob."
	Revert "added mask mode interface"
	Revert "nt-opencl: fixed bug causing inefficient keys transfer."
	Revert "mscash-opencl: compare on gpu"
	Revert "Various minor fixes for Sayantan's OpenCL versus OS X."
	Revert "mscash-opencl: optimization patch #3"
	Revert "mscash-opencl: optimization patch #2"
	Revert "mscash-opencl: optimization patch #1"
	Revert "mscash-opencl: optimization patch #0"
	Revert "New format added, mscash-opencl: ported directly from
	  mscash-cuda."
	Revert "raw-sha1-opencl: cmp on gpu"
	Revert "raw-md4-opencl:cmp on gpu"
	Revert "nt-opencl: use opencl_init instead of opencl_init_opt"
	Revert "nt-opencl: cmp on gpu"
	Revert "raw-md5-opencl bugfix: You can't release buffers that are not
	  allocated."
	Revert "Raw-MD5-opencl: status check bug fix"
	Revert "Update opencl_rawmd5_fmt.c"
	Revert "Raw-MD5-opencl: fixed memory cleanup"
	Revert "Raw-MD5-opencl: compare on gpu"
	Fix after reverts.
	Revert "nt-opencl: no branching in coalasced loading loop."
	Fixes and bug fixes for CommonCrypto builds.
	pbkdf2-hmac-sha256-opencl: Immediate response to keystroke.
	pbkdf2-hmac-sha256-opencl: Rename kernel since it's no longer
	  "unsplit".
	Move 7z-opencl to unused/
	Update CHANGES-jumbo.git (CREDITS-jumbo needed no change).
	Never use CommonCrypto for mscash2. Fixes issue #362.
	First draft of {SSHA512} (LDAP-style) format. OpenSSL only for now.
	ssha512 format: Add OMP support and a couple more test vectors.
	Add missing FMT_OMP flag to ssha512 format.
	Fix a bug where -DDEBUG would cause an infinite loop in
	  mem_alloc_tiny() because MEM_ALLOC_SIZE is set to zero
	  (Jumbo-specific) and we ended up never breaking out of the while
	  loop. Thanks to bytebieger for noticing the problem and
	  patiently convince me.
	Fix another potential problem with -DDEBUG vs. mem_alloc_tiny().
	Print human readable OpenSSL version string with --list=build-info.
	Update CHANGES-jumbo & CREDITS-jumbo.git.
	Use the recent mem_alloc_tiny() bugfix for size zero even when not
	  -DDEBUG because returning a pointer might be asking for problems.
	Add session_start_time external variable that maps to time(NULL) at
	  session start.
	Another tweak to the mem_alloc_tiny() vs. -DDEBUG issue.
	Bare minimum of fixes to bwtdt so it doesn't break too much.
	Add some comments to bwtdt format.
	Unicode bugfix for OpenCL Office formats.
	Stack smash bugfix for putty format. Bug introduced in 79c871d, using
	  sizeof len fields (ints) instead of actual fields (arrays),
	  causing a buffer to be potentially 8 KB too small.
	raw-sha1-opencl: Fix bug where obsolete code that only handled up
	  to length 23 was accidentally used.
	raw-sha1-opencl: Drop obsolete code for short length.
	Bugfixes due to format labels no longer lower-case.
	Fix bug in formats.c where old names for descrypt, bsdicrypt and AFS
	  were used in strcmp().
	wpapcap2john: Add SSID in "user" field for Single mode use.
	hccap2john: Add SSID in "user" field for Single mode use.
	Always -D_OPENCL_COMPILER when building OpenCL kernels.
	Avoid a compiler warning for signed vs unsigned integer.
	Whitespace-only in common-opencl.c
	Allow calling opencl_get_user_preferences() with NULL argument.
	OpenCL formats: Use more shared code from common-opencl.c
	Tweaks for LWS/GWS environment vs auto-tune vs defaults.
	Fix a couple compiler warnings about "array subscript has type ‘char’"
	  and other minor things.
	Make Oracle 10 format more robust (allow lower-case salts even when
	  prepare() is not used).
	Fix issue 328 using the new num_internal_keys format parameter.
	Issue #328 revisited.
	Issue #328 revisited again...
	Revert "Issue #328 revisited again..." Revert "Issue #328
	  revisited."
	Bump FORMAT_MAIN_VERSION due to 018a5ac.
	Issue #328 hopefully settled.
	Under --verbosity=1 we don't print passwords to screen when cracked,
	  so also mute the warning about them not being the complete list.
	Add new masks ?s (specials), ?a (printable ASCII) and ?A (everything
	  between space (0x20) and 0xff).
	NTLMv2: Bump max. salt size (username + domain) from 27 to 59
	  characters.
	OpenCL fixes. Work around silly Intel driver issue with
	  -cl-strict-aliasing and some other weird issue with late nvidia
	  drivers not supporting CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV et
	  al.
	OpenCL bugfix (common code): sequential_id was used where platform_id
	  was expected. Also a workaround for Apple's brain-dead driver
	  that apparently dies on dual spaces eg. between -DTHIS and
	  -DTHAT. That is just ridiculous.
	Minor tweaks to common OpenCL code.
	Added a function for tracing memory allocations in OpenCL.
	Limit GWS in OpenCL formats using packed buffer, so we don't over-run
	  the 26-bit index.
	Bump HASH_LOOPS for RAR OpenCL format to one optimal for Tahiti and
	  Titan.
	RAR OpenCL: Add more profiling output.
	RAR OpenCL: Back to 64x buffer
	RAR OpenCL: Do blocklen sha1's at once.
	RAR OpenCL: Get rid of HASH_LOOPS. Use a 64x __private buffer. Merge
	  that and IV into the loop kernel. Finally a significant speedup.
	Various OpenCL formats: Use byte addressed stores if allowed (though
	  sometimes not if AMD). For RAR this gave 33% boost on AMD.
	raw-sha512-opencl: Obey device/kernel limit for LWS.
	Drop old junk from OpenCL kernels.
	OpenCL RAR kernel accidentally got max length limited to 16. Bump to
	  22 again, it does not affect performance now.
	When starting an external mode that lacks restore(), emit a warning.
	Yet an optimization for RAR OpenCL, and a minor fix for done().
	Minor tweak to RAR OpenCL. We now do over 20K on 7970.
	MPI: Enable poor man's multi-GPU support. This should be available for
	  -fork too but it's very tricky to accomplish.
	No-op MPI tweak + comments.
	Add a self-test that ensures FMT_OMP_BAD is not used without FMT_OMP.
	  We could consider defining FMT_OMP_BAD so it includes FMT_OMP.
	Fork: Enable poor man's multi-GPU support. This is experimental. It
	  postpones format init and that might have side effects. To mitigate
	  unnecessary problems, everything is just like before as long as
	  you don't use both --fork and --device options at once.
	Don't cache CPU kernels. There were problems seen on Well's AMD
	  driver.
	Incremental mode may get >100% progress because of uneven splitting.
	  Show that as 99.99% instead.
	Inc progress: For some odd reason we sometimes ended up showing 99.99%
	  instead of DONE so cap it at 100.0% instead of 99.99%.
	Document the "poor man's multi-GPU support".
	Bugfix for "poor man's multi-device support" for --fork.
	Cosmetic tweak for MPI + OMP notice.
	Drop the use of OS_TIMER=0 for AMD OpenCL builds, but add instructions
	  for how to re-enable it.
	wpapcap2john: Ensure we don't overrun SSID buffer with overlong tags,
	  and print a debug message. Thanks to bytebieger for reporting
	  this issue. We still do not know the cause. See
	  https://github.com/magnumripper/JohnTheRipper/pull/366 for
	  discussion.
	Mute a compiler warning for rakp-opencl.
	rakp-opencl: Whitespace fixes and rename file according to standard.
	rakp-opencl: Bug fixes, optimizations and packed key buffer.
	rakp-opencl: Optimizations for HD7970.
	Add macosx-x86-64-native-opencl target because latest Xcode broke
	  CUDA.
	OpenCL: Fix for the fork/MPI "poor man's multi-device" stuff, so
	  formats that support multiple devices natively does not get
	  screwed up.
	Export get_platform_id() from common-opencl.
	Fix OSX build targets for CUDA for Xcode 5.0 and CUDA 5.
	NVCC tweaks (mostly comments, but add -fmad=true) in Makefile.
	pass_gen.pl: Only require libs that are actually needed for specific
	  run.
	Fix an obscure bug in mscash where an overlong key would truncate
	  to 28 instead of 27 in UTF-8 mode. NT already had a fix for it so
	  unify the code for them.
	Cosmetical fixes in common-opencl.c.
	Protect a CUDA macro from being expanded to something not intended.
	  I'm not sure there was a problem, just saw the dangerous definiton.
	Change malloc() to mem_alloc() in a bunch of formats. The latter sits
	  in memory.c and has error checking.
	Align fix to CUDA md5crypt.
	Update CHANGES-jumbo.git and CREDITS-jumbo.
	Update CHANGES-jumbo.git (the unstable-jumbo part of it).
	Add ?h mask. Hashcat defines it as [\xc0-\xff] but we use all 8-bit.
	Mask mode: Add progress indicator and node/fork/MPI support.
	Mask mode: Minor mods to get_progress().
	Mask mode: Add support for restoring session.
	Mask mode: A little faster node/fork splitting, avoiding modulo op.
	Faster node/fork/MPI distribution for External mode. This changes the
	  session file format so it will be incompatible, so until we get
	  that sorted out it's ifdef'ed out and we use the core scheme.
	Drop some contest edition artifacts from wordlist.c
	External.c: Revise the "no modulo" node distribution patch so it
	  doesn't break session file compatibility.
	Mask.c: Change node distribution so it matches external's new one.
	mask.c: Remove redundant initialization.
	Fix UTF-8 bug in mscash2 introduced in 42912b39.
	sapG: Add FMT_UTF8 even though we are not FMT_UNICODE.
	RAKP formats: Improve valid().
	Fix buffer overrun in KWallet.
	Fix a bug in eleven formats where cmp_one() and/or cmp_exact()
	  erroneously relied on cmp_all() having been called first. This
	  is *not* always the case, when bitmaps are used we go directly
	  to cmp_one(). This leads to FALSE POSITIVES but only likely for
	  broken hashes that are uncrackable anyway so it wasn't that much
	  of a problem.
	Disable the "cmp_one() assumes cmp_all()" self-test. It needs to be
	  replaced with something more reliable, or enabled manually at
	  times.
	Add FMT_OMP_BAD to nt2, md4/md5 and tweak Single mode performance for
	  nt2.
	Bugfix for RAKP formats.
	Replace Dhiru's RAKP format with a new one based on hmac-sha1 so
	  inherently SSE-aware. 3x speedup.
	RAKP: Add OMP support.
	Mute warning about lack of OMP support if format is OpenCL or CUDA.
	Bugfix for 087fe65.
	Allow use of alter_endianity() on archs that doesn't allow unaligned.
	  This function was originally only for MMX/SSE2 archs.
	Fix a bug in RAKP for interleaved SHA1. Dang, that was hard to nail.
	  I literally had ONE BIT wrong %-)
	RAKP: Optimization for "many salts". About 65% boost.
	HMAC-SHA1 format: Optimizations and OMP support.
	Add support for RAKP to pass_gen.pl
	Fix bugs in pass_gen.pl HMAC generation for lengths over pad size.
	RAKP formats: Minor fixes for very long usernames (salts).
	HMAC-MD5: Optimizations and OMP support.
	Changed SHA1_SSE_PARA to 2 for any gcc >= 4.5.4. Until now it was
	  1 for gcc > 4.7.0 but that seems to be slightly worse.
	pass_gen.pl: Fix b0rken whitespace (tabs vs spaces) most of which was
	  my bad.
	Revise format list in README-OPENCL, fixing issue #376.
	Explicitly state that wpapsk formats do support WPA and WPA2. Also
	  prevent future bugs when doing strcmp() of format.params.label.
	Improve valid() in netlm, nethalflm and mssql12.
	Activate a modified (and temporary) valid-killer self-test. Move a
	  bunch of offending formats to unused.
	Just because I used RAKP as a fool-proof example, it wasn't.
	Improve valid() in krb5pa formats.
	Chicken out on the ARCH_WORD change for X32 - make it conditional.
	Never use DES BS assembler code for X32 (until it's fixed).
	Minor tweaks to krb5pa-md5
	UTF-8 bugfix for ntlmv2-opencl.
	Add yet another debug function in memory.c, dump_text(ptr, len)
	Bugfix for raw-sha1-opencl.
	Include missing header for newly introduced isprint() in memory.c
	krb5pa-md5-opencl format added.
	Makefile bug, I used .c instead of .o which had strange results.
	krb5pa-md5-opencl optimizations.
	Some tweaks to RC4 to no avail.
	krb5pa-md5-opencl: Support devices that can't do byte addressable
	  store.
	Update CHANGES-jumbo.git & CREDITS-jumbo.
	krb5-pa-md5 formats: Check another byte of known plain.
	Bugfix for --skip-tests, fixing problems with numerous OpenCL formats.
	Fix the bugfix in 06094f1b.
	krb5pa-md5: Tweak RC4 on GPU, unrolling and working on 32-bits at
	  a time when possible. Some 50% boost seen here and this should also
	  make it runnable on devices that can't do byte-addressed stores.
	Improved shared LWS test - use unique keys in case it matters for
	  thread diversion. For krb5pa-md5-opencl this is a 45% boost IRL
	  while the benchmark gets a hit. Also do a similar thing in local
	  GWS enumeration of some formats.
	krb5pa-md5-opencl: Some more RC4 unrolling.
	DMG formats: Merge recent change in CPU format to OpenCL. Use new
	  shared dump_text() for debugging plaintext.
	Revert to using 4x for SIMD SHA-1, for gcc >= 4.7 unless AVX or XOP.
	Show preferred vector widths with --list=opencl-devices. How the heck
	  did I miss this until now!? It's important information and we
	  can use the same call to default to vectorization - or not - at
	  runtime for some formats.
	Make office2007-opencl choose vector width according to what device
	  says is best (up to 8 currently supported).
	Make office2010-opencl choose vector width according to what device
	  says is best (up to 8 currently supported).
	Make office2013-opencl choose vector width according to what device
	  says is best (up to 8 currently supported).
	Make wpapsk-opencl choose vector width according to what device
	  says is best (up to 8 currently supported).
	Make krb5pa-sha1-opencl choose vector width according to what device
	  says is best (up to 8 currently supported).
	Deprecate --request-vector option and rename --request-scalar to
	  --force-scalar. OpenCL formats that support vectorizing will now
	  automatically detect vectorizing opportunity (by asking device)
	  and enable it with the recommended width. For benchmarking and
	  debugging purposes, --force-scalar will disable vectorizing.
	Cosmetical changes to ntlmv2 & krb5pa-md5 kernels.
	Revert to outputting to stdout (not stderr) for dump_stuff*()
	  functions.
	Vectorize rakp-opencl and choose vector width according to what device
	  says is best (up to 8 currently supported). Also drop old
	  crappy find_best_kpc() function. We should use the shared one
	  but this format is not very critical on GWS anyway.
	Update README-OPENCL regarding vectorized formats.
	Add some device limits considerations in various OpenCL formats.
	Add even more vector details to --list=opencl-devices.
	Fix cosmetical bug in ntlmv2-opencl & krb5pa-md5-opencl.
	Add __attribute__((vec_type_hint())) to vectorized kernels.
	RAKP-opencl: Use partial results transfer.
	Total revamp of mysql-sha1-opencl. Most notably we now use a packed
	  key buffer. Also sync test vectors between CPU and OpenCL
	  formats. And finally give them both a split() that unifies case
	  (to uppercase) which fixes a long standing bug.
	MPI vs. --fork bugfix: When running forked, we erroneously called
	  nice() even when configured not to.
	NTLMv2, krb5pa-md5 and MYSQL-SHA1 OpenCL formats: Change a workaround
	  for self-test inconsistency, and comment it.
	Better description of MySQL formats vs. versions.
	Add ciphertext example output with --list=format-[all-]details. And
	  change a bunch of formats so they produce that output without a
	  tag, fixing some bugs while at it.
	Add "DCC" to description of mscash formats.
	Assorted bugfixes from one-off temporary self-tests. Alignment and
	  split-unifies-case problems in phpass-cuda, mscash-cuda and raw
	  Keccak formats.
	Drop unused declaration from NT formats.
	mask.c bugfix when restoring string containing whitespace.
	More effective vectorizing in wpapsk-opencl (avoiding conversions in
	  inner loop).
	More effective vectorizing in krb5pa-sha1-opencl (avoiding conversions
	  in inner loop).
	Add a global bool "ForceScalar" in john.conf that turn off vectorizing
	  globally in case you have a weak device that give "improper"
	  hints for our use (eg. if a side-effect of vectorizing is
	  register spilling).
	Add a --force-vector-width=N option (for debugging) and add support
	  for all sizes to the vectorized OpenCL formats.
	Shorten the format name of krb5pa formats.
	Fix an over-allocation in krb5pa-sha1-opencl when running vectorized.
	WPAPSK-opencl: Vectorize last bits of kernel. Write vectorized
	  keybuffer already in host code. Much nicer code.
	Protect from future bugs using snprintf() instead of sprintf().
	WPAPSK-opencl: Minor cosmetically changes unifying with krb5pa-sha.
	krb5pa-sha1-opencl: Vectorize last bits of kernel. Write vectorized
	  keybuffer already in host code.
	RAKP-opencl: Clean up code using macros.
	Don't even try to support a vector width of 3. I can't see it being
	  worth the effort.
	OpenCL vector code cleanup using macros.
	NTLMv2-opencl: Vectorizing support.
	Update README-OPENCL.
	More OpenCL code cleanup using macros.
	NTLMv2-opencl: bugfix for device limit consideration.
	Common-opencl: Change an ambiguous function name.
	Re-enable vector width 3. Most problems with it not working is because
	  our LWS/GWS enumerations pick unsuitable figures for that width.
	OpenCL formats: Use shared functions.
	RAKP: Use lower default KPC so weak devices don't die on us.
	RAKP OpenCL tweaks.
	common-opencl.c: Make it use its own helper functions w/ available,
	  plus a bunch of whitespace fixes.
	RAKP OpenCL: Implement proper GWS tuning.
	OpenCL formats: Use size_t instead of int in a bunch of places because
	  of problems where eg. a GWS of 32M x buffer size of 64 ends up
	  in 2G which doesn't fit in a signed int.
	Duration limit tweaks to some OpenCL formats.
	Add opencl_get_vector_width(device_id, size) function to
	  common-opencl.[ch] and have all vector-capable formats use it.
	New OpenCL LWS/GWS enumeration scheme: 1. Enumerate GWS using *LWS
	  == NULL. 2. Enumerate LWS using the now known GWS.
	md5crypt-opencl: Shrink arrays a little, they were not fully used.
	  And do not rely on optimizer taking away the redundant copy in
	  md5_digest(). 1-10% boost seen depending on device.
	Make generic split pbkdf2-hmac-sha1 kernel more generic: - Support
	  arbitrary output length unless -DOUTLEN. - Support run-time
	  iterations count unless -DITERATIONS (a fixed one will make
	  for a little faster code).
	Encfs-opencl: Use the generic split pbkdf2-hmac-sha1 kernel and
	  auto-tune to device.
	mysql_netauth: Add a split() that unifies case, fixing issue #394.
	Speed up self-tests significantly for OpenCL formats.
	A couple of OpenCL formats needed workarounds for self-tests not
	  doing things like IRL.
	Tweak for Intel HD Graphics in --list=opencl-devices. Apparently they
	  don't have a notion of SP, just EU.
	More fixes after changing self-test scheme for OpenCl. Some of these
	  fixes only work around self-test inconsistencies but some were
	  real bugs.
	Speed up self-tests for CUDA too.
	Add -DJTR_RELEASE_BUILD which can change some defaults for releases.
	  Currently it's only used to disable the hacky backtick-auto-conf
	  stuff in Makefile.
	Add self tests that ensure min/max keys per crypt are sane.
	OpenCL raw MD4/MD5 formats bugfix for overtaxing key index.
	OpenCL raw-sha256 & raw-sha512-ng workarounds for self-test
	  inconsistency.
	raw-sha1-opencl: Bugfix for key index max size.
	Fixes for building CUDA on OSX Mavericks. Hopefully it doesn't break
	  other versions/OS's (it shouldn't).
	CUDA fixes, in hope it will work on both OSX and Linux now.
	Very silly bugfix: OSX Mavericks' OpenCL drivers crashed and burned
	  when descrypt kernel sourced this header file, just because its
	  last line lacked a line feed!
	Rename ripv2 to net-md5 and add a very similar net-sha1 format.
	  See issue #404
	Makefile CUDA: Add natural path to nvcc with an NVCC macro, and
	  make the OSX -ccbin quirk a macro too.
	CUDA fix for when nvcc is not in /usr/local/bin.
	Fix bfcrypt-opencl for devices with too little local memory (auto tune
	  down or fallback to using CPU kernel).
	Change some ambigous OpenCL function names:
	  get_current_work_group_size() -> get_kernel_max_lws()
	  get_max_work_group_size() -> get_device_max_lws()
	Fix openssl-enc valid(). Also includes Awesome Debug Macro[tm] :-P
	More fixes for bcrypt-opencl. It couldn't handle things like LWS=7.
	DES-opencl: Get rid of hard coded stuff and fix device auto-tuning.
	Update doc/BUGS.
	bcrypt-opencl: Ensure GWS is multiple of LWS.
	mask.c get_progress() bugfix: It was sometimes reading uninitialized
	  data, resulting in random progress output (typically 0.00%).
	mscash2-opencl: Proper Unicode support.
	des-opencl bugfix: Do not release kernel unless it was initialized.
	  Not sure if this was a driver bug here, but it won't harm
	  anyway.
	Fixes and added info to --list=cuda-devices.
	Cosmetical fix for --list=cuda-devices: Clock rates are base 10, not
	  base 2.
	This is the very definition of a cosmetical fix.
	Make rar-opencl count accelerators as GPU not CPU.
	rar-opencl: cosmetical.
	A small step towards a working mingw64 target.
	mscash-cuda: Proper Unicode support, and bug fixes.
	mscash2-cuda: Proper Unicode support, and bug fixes.
	Revert a terrible change Sayantan made in ebc6a5ee. mscash2 supports
	  variable iterations count. Instead of b0rking the CPU format you
	  should fix your GPU formats.
	mscash2-opencl: Minor Unicode bug fix, and some other fixes.
	Add ALIGN_FIX in x86-64.S for MinGW win64 builds.
	Typo in asm comments.
	mscash2 formats: Add test vector for non-standard iterations count.
	Minor change for pwsafe-opencl for use with Intel OCL SDK 1.5.
	rar-opencl: Avoid using global memory in inner loop, and coalesce
	  state buffer.
	wpapsk-opencl: Use a coalesced state buffer. 2% boost.
	Drop ALIGN_FIX from win64 target and add it in a comment instead. It
	  is supposed to be applied manually if your build crashes in
	  DEScrypt or NT.
	Minor tweaks and optimizations to new RIP/OSPF/BGP formats.
	Fix some weird code in NT_fmt.c (purely cosmetical).
	I made some curious testing with the classic "swap bytes without a
	  temp" in OpenCL RC4. It seemed slightly faster on Kepler but
	  slower on others.
	Apparently Microsoft uses a different x64 calling convention. This is
	  an attempt to fix x86-64.S. We now use _WIN64 instead of
	  __MINGW64__ in case someone tries to do things with MSVC or
	  anything else.
	Unify MAYBE_INLINE definition with core john.
	  http://www.openwall.com/lists/john-dev/2013/10/29/2
	Drop the -mstackrealign from win64 build. It was not a correct fix.
	  And change 'strip' to $(STRIP) for easier disabling (define it as
	  'dir' or 'echo' or whatever when making a debug build)
	Makefile: Update build alternatives descriptions.
	Win64: One more non-volatile register was used. We redefine it for
	  _WIN64 to avoid preserving it.
	x86-64.S: More redefinitions of registers because the previous patch
	  introduced a register clash on Win64.
	Avoid use of "long", and similar fixes for Win64 and X32.
	This might be what is missing for Win64 in DES_BS_ASM.
	Linux-X32: Add an SSE2-only build (for testing) and finally solve
	  the assembler problems after I warmed up with the Win64 stuff.
	  Also more cosmetical tweaks to the make target list. Oh, and we
	  rename the targets back to linux-X32 as opposed to linux-x86-X32.
	  This passes the Test Suite.
	Another try for Win64 vs. BSDIcrypt.
	x86-64.S: Recent changes gave a theoretical performance hit due to
	  using r10 as tmp2. This patch rectifies that.
	Revert "x86-64.S: Recent changes gave a theoretical performance
	  hit..." That was totally bogus. R8 and up have the extra
	  penalty. Add some comments instead.
	x86-64.S: Fix a bug in Win64 handling where we redefined 'iterations'
	  (defined as %edi) without changing a corresponding push/pop of
	  %rdi.
	x86-64.S: Code cleanup, revert to using unprefixed temp registers,
	  and overall less deviation with core.
	Fix for 913e2fce - it broke 32-bit MMX/SSE2 builds.
	RAR (CPU): Bump plaintext_length to max as this does not affect
	  performance.
	Revert 40f5a93 and instead add a test for icc.
	Move broken (to be fixed) formats from unused/ to broken/ and
	  delete some other old crap from unused.
	Citrix Netscaler 10 format added.
	Minor fixes to raw md4/md5/sha1 formats.
	Improve Single mode seed from rar2john
	Common OpenCL: Move variable declarations to C file and use external
	  declarations in header.
	Proper vectorizing support for shared OpenCL functions.
	Various OpenCL bug fixes for running vectorized.
	OpenCL: drop the "show_speed" logic in favor of options.verbosity.
	OpenCL formats: Use options.verbosity instead of other strange
	  mechanisms.
	Rename "kpc" to "gws" in RAKP OpenCL to avoid confusion (maybe it just
	  adds to the confusion but at least it's in line with other
	  formats =).
	JtR coding-style fixes.
	OpenCL, shared auto-tune bugfix for vectorized runs.
	OpenCL: Last case (I think) of dropping legacy magic in favor of
	  options.verbosity
	OpenCL: reset opencl_v_width in case we load another format later.
	OpenCL md5crypt bugfix.
	RAKP-OpenCL: Always enumerate work sizes.
	Use shared auto-tune for raw-sha1-opencl.
	OpenCL: Faster auto-tune.
	Add profiling timer resolution to --list=opencl-devices.
	OpenCL autotune tweaks.
	Better wildcard support in format names. Mostly for testing. Examples:
	  -format:*office -format:office* -format:raw*ng
	Trivial optimizations for ssh-ng, 20-25% boost for AES, less for 3DES.
	Multi-device bugfix for pwsafe-cuda.
	pwsafe-cuda: Fix a compiler warning.
	Silently ignore a missing john.local.conf.
	Mute [incorrect] speed figures for --test=0.
	Cosmetical change in mscash2. Code was hard to follow due to reuse of
	  a variable that the optimizer will take care of anyway.
	mscash2-cuda: Support non-standard iteration counts. Funny thing, I
	  unknowingly fixed it in b7023df - it was a problem in prepare().
	Use CPU format code in CUDA mscash2 - and fix a bug in the CPU format
	  that prevented it from loading certain format hashes. This
	  affected the OpenCL format too.
	Fix a really nasty bug in mscash2-opencl introduced in e3289d3 which
	  made all salt lengths of exactly length 22 result in false
	  negatives. Test vector added to prevent this in the future.
	Fix a bug in mscash2-cuda where UTF-8 salts would produce false
	  positives. We should to enhance the Test Suite to test this. The
	  CPU and OpenCL formats were manually tested too and they are fine.
	Document recent --test=0 and wildcard features.
	Drop -cl-strict-aliasing from OpenCL build options. It's deprecated.
	Revert "added new format param"
	Revert "Bump FORMAT_MAIN_VERSION due to 018a5ac."
	Adjust unused RAKP format for FMT_MAIN_VERSION 11 in case someone
	  needs it.
	Enable all test vectors for OpenCL and CUDA md5crypt.
	Cosmetical typo in common-opencl.c.
	Generic crypt: Allow setting actual salt with --subformat, and create
	  test vectors on the fly.
	Generic crypt: Add support for SunMD5.
	Enable use of SIGUSR1 for non-MPI builds too. It's weird having
	  different functionality. The need for SIGUSR1 with MPI comes
	  from mpirun's ability to pass SIGUSR1, but not SIGHUP, to the
	  processes.
	Suppress "Press 'q' or Ctrl-C to abort.." message if we are reading
	  from stdin.
	Print a warning when FMT_NOT_EXACT.
	WPAPSK and other PBKDF2-SHA1 OpenCL kernels: Try to support old
	  devices (OpenCL 1.0). I don't have any so this is not tested.
	Revert "WPAPSK and other PBKDF2-SHA1 OpenCL kernels: Try to support
	  old devices". This reverts commit f7189d8. It did not help.
	Fix a typo in previous merge
	Call common_init() before listconf_parse_late(), fixing a problem with
	  upcoming --list=format-tests.
	Crypt format: re-add format list for bash completion.
	Fix a (Jumbo specific) off-by-one bug in crypt format.
	Crypt format bugfix (portability issue).
	Use crypt_r for self-made test vectors in crypt format, if applicable.
	Bugfix in raw SHA384/512 formats: Sign extension problem.
	Use memset() instead of bzero() in Lotus85. bzero() is deprecated.
	Crypt format: More workarounds for varying crypt() implementations.
	I should get myself a Linux box too. Blind fix for Linux OMP in c3.
	Better behavior for eg. "./john -t=0 -form:dynamic -enc:utf8" (mute
	  complaints).
	Support wildcards in dynamic formats, eg. -form:dynamic_3*
	Print PCI device id's in hex.
	Add generic pbkdf2-hmac-sha1 format, variable rounds and lengths.
	  Due to a bug somewhere (else) you don't get good SSE speed unless
	  building for OMP (the latter is much faster even when running just
	  one thread).
	Add ios7tojohn.pl and docs for it.
	pbkdf2-hmac-sha1: Bump OMP_SCALE for better multithreading.
	pkzip: Bugfix for #467. Two early rejection tests had to be disabled.
	  Hopefully they can be re-enabled by JimF after some tuning.
	Makefile fixes (drop PROJ_CXX), and remove old C++ code.
	pkzip format: Add a test vector with the hash from issue #467 for
	  future enhancements.
	--list=format-all-details et al: Handle formats that lack test
	  vectors.
	Add run/luks2john to .gitignore
	Bugfix and tweaks to gpg2john
	gpg2john: Use "Real Name" from key user data for login field, and the
	  rest for gecos field. As last resort (no user data) use base of
	  filename as login field.
	Add note in BUGS about Intel OCL SDK 1.5, fixing #400
	Update CHANGES-jumbo & CREDITS-jumbo
	Make a warning() function in common_opencl_pbkdf2.c static.
	mscash2-opencl: rename warning() to dcc_warning to avoid present and
	  future clashes.
	self-tests: When valid() fails, print corresponding ciphertext.
	Apparently, Windows does not provide SIGUSR1 so check for it before
	  using it.
	Change description for pbkdf2-hmac-sha512 from "OS X 10.8" to "OS X
	  10.8+"
	Update doc/INSTALL. OS X Mavericks can build macosx-x86-64-native
	  without any external tools or tricks.
	Typo in doc/INSTALL
	bench.c: Avoid a silly compiler warning on OSX that I won't bother
	  getting to the bottom with.
	Prefer COMPUTE over DISPLAY (for AMD OpenCL). This means you can
	  eg. export COMPUTE and then run "ssh -X" without hassle. Also,
	  assume :0 if lacking both.
	OpenCL: stdlib.h needed for setenv() on some systems.
	OpenCL: _BSD_SOURCE needed for setenv() on glibc.
	Fixes krb5 formats for issue #495.
	Move (win)zip formats back in business. We now have warning output in
	  place for the false positives (04514d7). This does not solve
	  issue #434.
	crypt(3) format: Only allow --subformat for benchmarks. Fixes #475.
	Mask mode: Since we do not yet support --min/max-length, error if
	  used. Fixes #380.
	gpg-opencl: Sync with CPU format. Fixes #482.
	EPI alignment. Fixes #491.
	Fix an old bug with CPstoreUTF8 vs. split hashes and --show. Some
	  cracked hashes with passwords containing 8-bit characters would be
	  output as partially uncracked in case CPstoreUTF8 was enabled.
	Add a shared function testing a string for valid UTF-8.
	Add a john.conf option for default input encoding.
	Better detection of alternate help message for MPI.
	ETA/progress fixes for incremental and mask modes when we are doing
	  more than one node's part of workload.
	Minor fixes for ETA/progress for Incremental & Mask modes.
	luks2john.c, use %zu for sizeof(). Closes #500.
	Dominosec format: Add hash functions, partially fixing issue #495.
	loader.c: Add ifdef'ed hash table distribution debug output. Closes
	  #496.
	Dominosec: Use prefab binary hash functions.
	EPI format: Add proper hash functions. Closes #495.
	Move unused/aix_smd5_fmt_plug.c into normal source directory - it
	  supports length up to 125.
	SAP B: Atom found a suspected over-run of sum20. This triggers that.
	SAP B (comments only): The sum20 overrun is AOK, we do it like SAP
	  does.
	Various changes for DMG. Avoid false positives. Hopefully we're not
	  introducing false negatives (None of our sample hashes produce any)
	  because now we're only checking for eight consecutive nulls,
	  either in main blob or secondary one.
	Bugfix for multi-node Unicode init.
	wpapcap2john: Print client BSSID to uid field, and AP BSSID to gid
	  and GECOS fields (in dashed and compact formats). Add WPA or WPA2
	  to the shell field and filename to last field. Add missing glue for
	  dupe suppression. Finally add a license blurb. Closes #516.
	wpapcap2john: Add some sanity checks. Closes #518. Also cosmetical
	  fixes (license, whitespace) in WPA source files.
	hccap2john: Add same extra output that was recently added to
	  wpapcap2john (BSSID's, filename etc) and handle multiple files
	  better (don't abort on error, print filename among warnings).
	  Closes #521. Also, support multiple entries in each file. This
	  was a weird limitation but it might have been due to Hashcat
	  legacy behavior (it initially only supported one per file).
	  Anyways it's lifted now.
	wpapcap2john: Add support for Radiotap encapsulation. Closes #377.
	wpapcap2john: Add support for Prism & PPI encapsulations.
	wpapcap2john: Add a note in output about unsure authentications
	  (still crackable but might be an incorrect password for that AP).
	  Closes #519.
	Cherry-pick 2475121 from Dhiru - Travis/Coverity support. Closes #512.
	White space fixes (fixing over-long lines) in core files.
	"Secure Mode" implemented. When this is enabled in john.conf, no
	  cracked password is ever printed, logged or stored in plaintext.
	  Instead you get an indication of length and use of classes. For
	  example, the password "Ignit3" would output as L6-?l?d?u telling
	  you that it's six characters long and consists of lowercase, digits
	  and uppercase characters. This closes #505.
	The wrong default was used for SecureMode when not found in john.conf.
	Sybase PROP fixes. Seriously, you can't expect a char to be aligned at
	  4 and an "XXX" comment is not a valid workaround.
	Have --fork use SIGUSR1 for status, just like MPI always did. Ditch
	  some old MPI code as it can now use the same. This is to free up
	  SIGUSR2 for upcoming "restart" patch.
	DMG formats: even more debugging
	Always start a resumed session by emitting status.
	Reload upon SIGUSR2 or --reload-every=N seconds. A reload is currently
	  the same as stopping a job and then resuming it, it's not very
	  optimized. Still, it can be invaluable eg. for forked sessions
	  with salts. However, the current implementation (execv) is not
	  supported under MPI, which is a major problem.
	DMG-opencl add missing variable from 74ac62a.
	Minor bug in "reload" patch: Some output to stdout was supposed to
	  go to stderr.
	Cleanup of old weirdnesses: JimF has/had the habit of misusing the
	  loader options struct for options totally unrelated to loader,
	  and/or have applicable entries duplicated in that as well as the
	  normal options struct. Also fixes some over length comments.
	Drop FMT_OMP from wpapsk-opencl: It doesn't use (nor need) OMP
	  anymore.
	If we are a release build, only output OpenCL build log if there was
	  a fatal error (or --verbosity was increased) - not just for
	  warnings.
	Fix torrents of warnings seen on recent OSX drivers for various OpenCL
	  kernels. This also works around several driver bugs!
	Various OpenCL formats: Auto-tune bugfixes when LWS is supplied by
	  user.
	Work around an OpenCL bug in OSX 10.9.2.
	Fix for crude auto-tune picking a far too high value on Iris (Intel
	  HD Graphics 5000).
	OpenCL: Add HD5000 info.
	ARCH_WORD: Always use "long long" for LLP64 and "long" for LP64. We
	  could currently use "long long" for all of them but the future may
	  be different.
	WIP: Add GPU sensor readings to --list=cuda-devices and
	  --list=opencl-devices as well as to status output, if required
	  library can be dynamically loaded.
	Change the "reload" feature to actually just load what other processes
	  wrote to pot file, instead of aborting and restarting
	  completely. This is a whole lot faster and enables support for
	  MPI as well.
	Add an ifdef around flock() for MinGW. This shouldn't result in
	  reading of an incomplete last line and even if it does, other
	  code should safely handle it anyway.
	Coverity stuff update.
	Various signal.c tweaks for MPI: Avoid signal loops when signaling
	  parent for reload. If running Cygwin w/ fork or MPI, save session on
	  key press in case a following termination does not save
	  properly. Also clarify MPI requirements in doc/README-mpi.
	MPI: Add signaling of cracked hashes. There is also various changes to
	  the handling of --fork sessions in this regard.
	Drop the experimental --reload-every=N option. We always reload at
	  session save (unless totally disabled in john.conf).
	Do not re-read pot file lines that were processed by initial loading.
	Drop an unneeded strnzcpy() during reload of pot file. Also adds debug
	  stuff to crk_reload_pot().
	Pause/abort on filesystem stimuli. This defaults to
	  /var/run/john/abort and /var/run/john/pause but can be
	  reconfigured to any other files.
	Recent structural changes and new features introduced some terrific
	  bugs. This hopefully fixes most of them.
	Speed up pot reload (a lot) by using bitmap.
	"Reload" code cleanup and optimizations.
	Less timid --max-runtime: We now give a 3 sec grace period and then
	  force quit as if ctrl-c was pressed twice.
	Keep loader's salt hash table for pot reload (updating it w/
	  required).
	The documentation of --save-memory was duplicated in doc/OPTIONS.
	Don't keep salt hash table if --save-memory=2 or greater, or if the
	  format doesn't have a salt_hash function anyway. Update salt hash
	  table after sorting (if applicable). Add some safety measures
	  to pot reload.
	Add some OSX building tips to docs.
	Pot reload: In Single mode there may be dupes, so in that case we
	  search for them.
	Add options to john.conf for defaults and batch mode - Single mode
	  rules - Wordlist rules - Incremental mode
	Various minor tweaks, and Jumbo code cleanup in loader.c (overlong
	  lines).
	Optimizations (some were really bug fixes, but they only affected
	  performance) for pot reload.
	Trigger a reload between batch mode passes.
	Loader.c bugfix
	Fix confusing mixup of variable names in wpapcap2john, and add ivs
	  (v2) support.
	Loader.c bugfix bugfix :-(
	Fixes for generic build.
	Bugfix: Dominosec failed get_hash() w/ OMP. Closes #536.
	OpenCL: override X11-forwarding.
	Reload: Quirk for RAR, because it returns a slightly different salt
	  for each call to get_salt().
	Disable OMP in Dynamic unless all PARA's are same. Closes #385.
	wpapcap2john: Bump max handshakes limit, plus cosmetically.
	NTLMv1/MSChapv2 "naïve" formats: mute a loader warning in OMP
	  benchmark.
	Dynamic: Move the OMP disable workaround so it actually works after
	  a make clean :-/
	Drop a test for --encoding that is problematic in case DefaultEncoding
	  is set in john.conf.
	Reload bugfixes.
	Fix for --encoding vs. DefaultEncoding and --test.
	Set a label for the "dummy" stdout format.
	Add default rules for -wo and -loop
	Show "x password hashes cracked, y left" even for --show=left
	Rename regex to rexgen everywhere, it's less confusing.
	Bugfix: --show=left showed crack counts backwards.
	Revert "Rename regex to rexgen everywhere, it's less confusing."
	Add a separate --hashed-encoding option. Example: Your input files
	  (ie. login and GECOS fields) are UTF-8 and your wordlists are
	  too, but you are attacking LM hashes originating from a system
	  running CP850.
	Add ability for --loop to join LM pieces automagically, and processing
	  them before the normal loop.
	Mute encoding message if we're in default ASCII mode.
	grub-opencl hotfix for "Joe".
	Loopback bugfix for multi-node.
	Change name of --hashed-encoding to --target-encoding.
	Mute a message about intermediate encoding when not applicable.
	Fix options flags for all old Jumbo options, catching incorrect usage.
	  Also allow -input-encoding as an alias for -encoding.
	Fix a bug where the Unicode system was left undefined, and another
	  one that made our two Unicode-on-GPU formats fail for certain
	  encodings due to a brainfart.
	vncpcap2john fixes (mixed declarations and code).
	Encoding bugfix.
	Mute intermediate encoding output when it doesn't really apply.
	Add a verbosity config option.
	Mute some warnings unless john_main_process.
	Log what ruleset is used, and log "loopback" (not "wordlist") when
	  applicable.
	More minor changes to "loopback" mode log output.
	Allow defaulting an alternate incremental mode when encoding is UTF-8.
	Allow size_t for -mem-file-size
	Fixes for loopback reassembly.
	Another bugfix for Loopback mode.
	Mute a compiler warning.
	Mute a compiler warning
	64-bit bugfix. raw2dyna used %* supplying a pointer diff.
	Fix for generic build.
	Korelogic rules added as a separate config file. Not sure why we did
	  not include it earlier. This is the enhanced and bug fixed
	  version.
	Korelogic rules: Shorter names for the components, and use .include
	  for the aggregate.
	Pick john.conf default for LM formats more often.
	Unicode: Best-effort conversion for invalid codepage, instead of
	  producing guaranteed garbage. Another option would be to truncate
	  at first invalid character, but for input conversions this approach
	  might be better.
	Bugfix: Intermediate encoding was not triggered in batch mode.
	Various tweaks & bug fixes, mostly for encoding.
	Notification fix for intermediate encoding. It's incredibly hard
	  to get all details right. So many moving parts.
	mssql12 will allegedly also crack SQL Server 2014 hashes.
	xsha512 format will not crack OS X 10.8 or higher (those are
	  pbkdf2-hmac-sha512).
	Print the cracked totals to stderr for --show=left, in case normal
	  output is piped somewhere. This addresses main part of issue #556.
	Add a new super rule-set "All", that is Jumbo + KoreLogic...
	Reduce chatter
	Reduce more unnecessary output (encoding stuff).
	Typo in usage for -costs. Untabify and add missing paren.
	Rexgen update. This is for SVN rev 113 of rexgen, WIP.
	Bugfix for tunable costs. You must not put anything after salt->keys
	  due to optimizations. Solar should have commented on that in the
	  header.
	Optimize mask-mode order for 8-bit characters with ?A and fix some
	  overlong lines.
	Slightly more OpenCL output at -verb:2
	Add cprepair - a tool that fixes double-conversions to UTF-8 and/or
	  mixes of UTF-8 and a legacy codepage into clean UTF-8 (best
	  effort).
	cprepair bugfixes and docs
	Add last-line EOL for a bunch of files.
	Add session file entries for implied options (default rules, wordlists
	  etc).
	Add --mkv-stats to the storing of "implied options". Also fixes
	  inconsistencies with --mkv-stats option - it could not be used
	  together with --markov whereas I believe it should be the other
	  way round.
	Add aes.a to .gitignore
	Default salt sort to "most used first" for possible speedup in some
	  situations.
	cprepair bug fixes and improvements.
	cprepair: clarify an option in the usage blob. The purpose of -f
	  is to be able to eg. choose CP866 or CP737 over CP850 in case all
	  7-bit characters on a line is non-ascii letters. This will pick
	  the right decoding (out of two given) for cases like "Müller" and
	  "Стандарт" but for many words it will still just be a guess.
	If we have reused salts, log when a salt is removed from list. This
	  is debug-only for now.
	Fix finding librexgen under OSX.
	Rexgen headers define UTF32 empty so workaround needed in unicode.h
	Bail out if --regex used with --wordlist does not contain \0
	Slight adjustment of rexgen logging for wordlist
	Wordlist.c: More natural order of logging.
	memdbg fix for cprepair
	Fix problems with gpg2john that came (back?) after memdbg merge.
	Rexgen "autoconf" fix for Linux.
	Drop "no rexgen" log message unless verbosity was bumped.
	Posix mmap() for wordlist mode - without dropping the old array
	  buffer. This gives up to a 3x boost, especially for --fork. The
	  buffer is read using a function similar to fgetl() but that
	  reads from the memory map and that works with up to 16
	  characters at a time.
	Blind Windows fix: we should probably munmap() the same size we mapped
	  for good measure.
	wordlist.c: mmap() bugfixes for edge cases (page boundaries, super
	  long input words, files not ending with LF and so on).
	Fix some debug output that went to stderr while other of same kind
	  goes to stdout.
	Add autoconf stuff to .gitignore
	Fix for Travis/Coverity scan now that we use ./configure
	Add autoconfig stuff to .gitignore, and add some macros we will
	  need later (ax_opencl.m4 and ax_prog_cc_mpi.m4).
	Allow for NSS to be missing.
	Rename configure.in to configure.ac - the former has been deprecated
	  since 2001.
	Change final message from configure to something less confusing.
	Rename HAVE_LIBCRYPT to HAVE_CRYPT for several reasons, mainly because
	  it's what core John uses. One other reason is that we no longer
	  really depend on the library per se, but the function (it might
	  be present in libc).
	Whitespace fixes (a dnl comment was split by a linefeed)
	Change final message from configure (again) to something less
	  confusing.
	Autoconf fix for pcap.
	Add CUDA and/or OpenCL stuff to JOHN_OBJS if applicable.
	Decrease required version of autoconf to 2.68, for Travis CI to work.
	Autoconf: Use proper OpenCL test macro instead of just checking for
	  lib. Also adds [suddenly] required autohell stuff.
	Add real copies of compile, config.guess and config.sub (they were
	  symlinks).
	OpenCL autoconf tweak.
	Fix an OMP bug in krb5-18 and krb5-22. Closes #577.
	Use double for ETA calculation, for much better estimate early on.
	CUDA autoconf tweak
	Fix redefinition warnings from blake2-config.h
	The -DUNDERSCORES test needed '-' option to strings(1) because
	  "Unless the - flag is given, strings looks in all sections of
	  the object files except the (__TEXT,__text) section". It also
	  lacked placing a space at end of -DUNDERSCORES
	Test disabling the automatic autoconf stuff in Makefile, in case
	  that's what make the build bot fail.
	Adjust Travis for autoconf (do not specify make target).
	Mute a red herring compiler warning in wordlist.
	Correct some warning typos from configure
	Avoid warnings from non-existing CUDA lib directories.
	Rename "list alternatives" target (old default) to "help".
	Cosmetic changes to configure.ac, and change a few [main] in
	  AC_CHECK_LIB() to something relevant.
	OpenMP and OpenCL are defined as features (as opposed to packages) by
	  the prefab macros, so change MPI and CUDA accordingly. ICC-asm
	  is kept as a package.
	Drop unused AX_OPENMP macro
	Add a space after -lpcap, and add -lcudart if found/used.
	Revert changes in SIPdump and vncpcap2john
	An old PROJ_PCAP entry was still in Makefile.in, producing an
	  infinite loop.
	Fix a bug handling default GPU device set in john.conf
	Implement a method for soft-disabling of formats, in john.conf.
	Add support for selecting OpenCL device as --device=accelerator
	  (can be abbreviated down to "acc").
	Mute a compiler warning for possibly undefined variable in cost range.
	Fix logic error in device selection abbreviation.
	Add a stub Makefile, overwritten by ./configure but replaced by
	  distclean.
	PCAP format fixes for legacy Makefile.
	"make -f" is more portable than "make --file"
	Documentation updates for autoconf.
	Silence warnings from when CONFIG_MAINT is unset. It would confuse
	  users. Git never preserves timestamps. There are good reasons
	  but it's a nuisance.
	Autoconf: Add a proper check for ARCH_INT_GT_32.
	Autoconf tweaks: Use the HAVE_MMAP in wordlist.c. Enable fork for any
	  system that pass AC_FUNC_FORK.
	Add AX_LANG_COMPILER_MS inlined in configure.ac (it was replaced
	  in the GNU archive by a more generic macro, but I don't want to
	  hack ax_opencl.m4).
	Use -O0 during feature tests. Using -O2 is begging for trouble.
	Add missing header for exit(3) in most autoconf AC_LANG_SOURCE tests.
	Add a separate test for -march=native, closing #583. Also drop remains
	  of obsoleted JOHN_CFLAGS et al.
	Hack workaround for Makefile vs. .gitignore
	Conditionally include some standard -L and -I directories.
	Fix MPI check. AC_PROG_CC_MPI replaces AC_PROG_CC so we must not run
	  the latter first.
	Remove obsoleted stuff from para-best.pl
	Fix X32 build. There were several issues but nothing major - except
	  maybe we can't add '-m32' or '-m64' from configure. That sort of
	  thing must be left to the user.
	Add shorthand "--with-arch=opt" which adds opt to CFLAGS, ASFLAGS and
	  LDFLAGS. The best example might be "--with-arch=-m32" altough
	  many other uses are possible.
	AC_USE_SYSTEM_EXTENSIONS must be run *after* MPI test, otherwise the
	  latter is screwed.
	Fix for "light" cross-compile (eg. X32 or 32-bit, on a 64-bit host).
	  We must preserve CFLAGS but if we put -O0 in its tail, we override
	  any -O2 that come before it.
	Autoconf: Portability fix. Note to self: Always exit() from main in
	  configure tests, never return. Do not include <stdlib.h> but
	  define "extern void exit(int);" instead. This is portable while
	  not producing garbage in config.log.
	Start supporting cross compiles better. Add a --disable-native-tests
	  option but also disable them automatically if cross compiling
	  (as told by autoconf). This addresses some of #585.
	Support more arch.h targets from target triplet, and get endianness
	  from it too. We can actually tell ARCH_ALLOWS_UNALIGNED from it too
	  but that is not implemented yet.
	Support $2b$ hashes. Thanks to Kent Fritz for reminding us.
	wpapcap2john fix. For some reason it still fails on BE.
	Major autoconf arch.h tweaks. Separate generic tests from x86-specific
	  ones. Most targets should now have basic buildability...
	Autoconf: Fixed reversed logic for icc asm.
	Autoconf: Disable -march=native if we cross compile, dude.
	Add autoconf_arch.h. Sooner or later we'll not need any other one
	  (which means we could drop it altogether and write configure output
	  to it instead).
	Drop __ILP32__ from the "64-bit test". That macro does NOT tell us
	  anything about CPU width. It just show a data model that could be
	  X32 (which is 64-bit) or just about any normal 32-bit system.
	Add a bunch of 64-bit compiler macros to test for in the 32/64-bit
	  test. And remove another incorrect one (_M_IX86).
	Default to x86-sse.h for any 32-bit x86. We'll eventually pick the
	  right one depending on MMX/SSE2 etc. But this is the right one in
	  99.99% of cases anyway.
	Autoconf: Fix reversed logic for pkg-config. It was enabled when cross
	  compiling, instead of the other way round.
	Autoconf: Minor cross compile fixes.
	Autoconf: Typo in comments.
	Fix a minor bug in [Disable:Format] that made it impossible to
	  disable the first format (descrypt).
	Implement the intended logic for 32-bit x86: First pick x86-any.h,
	  then if at least SSE2 is detected we change it to x86-sse.h.
	Add cross compile versions of SSE/AVX/XOP tests.
	Add AVX2 support for cross compiles.
	Re-order non-native AVX2/XOP tests same as native ones, and do not
	  omit looking for XOP if AVX2 was found. Change output slightly
	  in non-native so you can tell the difference. Decrease
	  cross-compile to AC_CANONICAL_HOST - we are not building a
	  compiler (actually we are, but that one does not count)!
	Fix for single mode segfaulting if pot reload deleted last salt. I'm
	  not quite sure why this is needed (it should already be handled)
	  but it fixed the problem.
	Only try intel-specific tests on compatible CPUs.
	Support <gmp.h> located in <gmp/gmp.h>.
	Automatically set HAVE_NO_SSL_WHIRLPOOL if the lib lacks it.
	Minor fix from Sparc/Solaris tests. The case of ntohll being undefined
	  should probably be fixed in some better way (handling BE). My
	  problem was that it already *was* properly defined beforehand.
	Handle non-native OpenSSL check. This is an obvious start, more to
	  come.
	Handle the case where pkg-config is not available.
	Even better non-native OpenSSL check. We now don't just check for the
	  library (which almost anyone has) but also the headers.
	Check for pcap headers, not just the library. Many people lack the
	  former but have the latter.
	Autoconf: Fix for non-native builds. When using 'action-if-defined'
	  for AC_CHECK_LIB we don't get the default action so we need to
	  do it manually.
	Add alpha.S when applicable.
	Add support for x86 w/o SSE2. We should add a notice too, telling
	  user it might be time to buy some new gear ;-)
	Stupid bug fixed in unrarhlp.h
	Add AC_PROG_* and AC_PATH_PROG stuff, for aes/Makefile.in in
	  particular.
	Print a summary after ./configure
	Summary tweaks. And make -> $(MAKE) within Makefile.in
	Makefile portability fixes.
	Only try AESNI if intel family CPU :-P
	Bugfix for OpenCL report detection (cosmetical).
	Report AES-NI support
	Portability fix for AES-NI support.
	Drop obsoleted comments.
	Missing rexgen and/or sse4.1 warnings no longer needed.
	Crypt format OMP fix for Solaris.
	vncpcap2john portability fixes.
	wpapcap2john BE bugfix. Note to self: you can't do just
	  "JOHNSWAP(foo)" - you must do "foo = JOHNSWAP(foo)"!
	wordlist.c: initialize a variable that gcc was worried about.
	AES-NI: Pure whitespace fixes, for next patch to be readable.
	Finally, add run-time detected AES-NI support for OS X too.
	Fix AES-NI for 32-bit OS X. Also fixes some cross-compile issues.
	Bugfix for forked resume.
	Document the OpenCL device list round-robin behavior with -fork
	  and MPI.
	Change all "test this && test that" to "test this -a that". And
	  replace "==" used within tests to a single "=" for portability.
	Protect a test argument for including spaces.
	Protect more test arguments just for good measure and fix the
	  ax_jtr_utility macros for DOS linefeeds and vast amounts of
	  spurious whitespace.
	Auto detection for HAVE_SKEY. Not tested.
	Handle CUDA 64-bit libs. We now test for CUDA after OpenCL because
	  the latter may find something that benefits the former.
	Improve 32/64-bit CUDA and OpenCL library search. We now defer all
	  of it to the point we now CPU width for build.
	Add some AC output for CUDA and OpenCL path enumeration.
	Bump Jtr Jumbo version. Improve CUDA/OpenCL path enumeration output.
	Cosmetical glitch fixed.
	More summary output: Cross compiling, fork, MIT KRB5, PCAP.
	Fix CUDA after f9711be broke it.
	Bugfix for CUDA autoconf.
	Include johnswap.h in a bunch of files that lacked it.
	BE fix in ZIP format broke strict aliasing rules.
	Drop "missing library" warnings during configure now that they are
	  listed in the summary.
	Autoconf: Comment out many tests that we do not use the results from.
	  Just cherry pick them back if/when we actually need them.
	AC_JTR_FLAG_CHECK and AC_JTR_SET_NORMAL_INCLUDES broke MPI builds
	  because they were called too early: The MPI/CC test *must*
	  preceed anything else that uses/checks the compiler and/or the
	  CC and CFLAGS variables.
	Fix HDAA format for non-intel archs when OpenMP is in use.
	Document Sparc build workarounds.
	NSS ended up being required. PKG_CHECK_MODULES need an
	  action-if-not-found be it just a no-op.
	Update docs for the fact MPI is not auto-enabled.
	Add c3_fmt to summary.
	Add missing entry in Makefile.in after merge.
	Drop Mozilla format warning when not built - we already got it from
	  autoconf.
	Support unconfigured "make clean" with a kludge in Makefile.stub.
	Autoconf: Bugfix for native XOP test.
	Document the fact that passing CFLAGS to ./configure will stop it
	  from adding "-g -O2" automatically.
	Remove another improper adding of -O2. We just can't do that, it
	  breaks things.
	Bugfix for ETA/progress output from wordlist mode.
	Fix wordlist ETA for memory map mode.
	Minor tweaks for ETA/progress calculations.
	246f945 introduced a bad bug when -loop is used with a file name other
	  than the active pot file.
	Fix AES-NI for X32 builds. This requires a new enough yasm, so we
	  should test for that - until then, just disable it.
	Autoconf: Warn if we end up with no -O optimization option in CFLAGS.
	  Closes #592.
	Deprecate openssl_local_overrides.h using autoconf. We keep supporting
	  openssl_local_overrides.h too for now, for legacy builds.
	Stop using AC and AX as prefix for our local macros, those prefixes
	  are preserved. Add JTR_LIST_ADD macro for adding unique values to a
	  variable (think CFLAGS). Add a test for CommonCrypto and use it.
	Autoconf: Improve robustness of JTR_LIST_ADD.
	Hopefully fix S/Key format.
	Autoconf: Recognize more optimization options (for the warning).
	Drop bogus execute bit on a handfull of files.
	Include arch.h header in a number of files using AC macros. Re-enable
	  a bunch of tests that were disabled for not being used (so
	  developers are able to start using them without changing AC).
	  Break some particularly long lines in configure.ac. And fix
	  cross compile issues.
	Pacify clang compiler warnings.
	"make install" now strips binaries.
	Mute silly compiler warnings on OSX. @jfoug I LOVE this macro!
	Add --disable-pcap to configure.
	Autoconf. Drop the --with-arch option before someone starts depending
	  on it.
	Drop all remaining use of += in autoconf macros, it failed on OpenBSD.
	Fix bugs in SKEY introduced in a4ba81f. Now actually tested too,
	  on OpenBSD 5.4 (x86-64). Well, it builds - but it fails self
	  test. More to come. Closes #597.
	More bugfixes to SKEY format. Did no-one use this format in years?
	Bugfix in ODF format.
	Pacify a compiler warning in wpapsk.h.
	Pacify compiler warnings in pbkdf2_hmac_sha512.h.
	Add ACX_HEADER_STRING macro (from GNU folks but not in archive).
	  Use it for C3_fmt to pacify compiler complaints on OpenBSD.
	Quirks for OpenBSD autoconf.
	Quirks for autoconf on OpenBSD: SIPdump and vncpcap2john.
	Minor fixes for legacy builds vs. PCAP.
	Workaround for fantastic systems not having grep -E.
	Minor fix for AC c3_fmt.c
	Add specific build instructions for Ubuntu Linux.
	Cygwin workaround for vncpcap2john.
	Do not add CPPFLAGS to CFLAGS, it doesn't make sense.
	c3 fix for OpenBSD warning
	Add a debug target. We always build with -g (stripped in 'make
	  install') but this target turns off optimizations and defines
	  DEBUG so code can adopt.
	Add a fix for llvm-gcc-4.2 in raw-sha1-ng and make clashing structs
	  in lotus85 & vms static.
	If -DDEBUG, warn when benchmarking (in case non optimized, or debug
	  code slows things down). Also "mark" debug build in the version
	  string.
	Fix a missing '$' on a variable within OpenCL detection.
	Fix for FreeBSD. Closes issue #566.
	Fix a typo in cracker.c (HAVE_SYS_TIME_H vs HAVE_SYS_FILE_H).
	Drop repeated info from o5logon-opencl format_name (vs.
	  algorithm_name).
	The fix in 2080fc0 need to be applied to os-autoconf.h too :-/
	Regex mode: Print a warning that we can not yet resume this mode.
	Move CUDA tests to its own macro JTR_CUDA. Check for nvcc too, as
	  well as llvm-gcc-4.2 on OSX.
	AC: cosmetical bugfix: JTR_LIST_ADD_RESULT did not show all added
	  items.
	Mark a couple of variables as precious. That means they get included
	  in --help and we don't need to AC_SUBST them.
	Since we list OPENSSL_CFLAGS and OPENSSL_LIBS as precious, we must
	  honor them also when pkg-config is not used. If they are not, check
	  for /usr/local/ssl (just because legacy Makefile did).
	Use strip with no options. POSIX defines no options so this ought
	  to be most portable. Also, list S/Key in summary, not SKEY.
	AC: Various Makefile fixes.
	Use supplied flags for NSS if given, even if pkg-info is not used.
	  Closing #603.
	Autoconf: Change some if;then;fi to AS_IF()
	AC: Tweaks for allows_unaligned test and some cosmetical changes.
	If OpenSSL flags was specified, trust them without checking. Also
	  fixes a type in check for ws2_32 lib.
	AC bugfix for CUDA under OSX.
	Bugfix: Move definition of DEBUG_STRING in options.c. Some compilers
	  choked on its misplacement.
	AC: Improve CUDA test. nvcc can't use a gcc newer than 4.6 as backend.
	AC: Improve librexgen test. It detected positive on too old versions
	  and failed during build.
	AC: Don't bother checking for AVX2/XOP unless we have AVX.
	Bugfix in wordlist.c: mmap() checked for error the wrong way.
	If -DDEBUG, be more verbose about mmap() problems.
	Only add -lpcap when linking files that actually need it. Closes #604.
	Only add extra libs (including OpenSSL) where needed - often only
	  to john itself. Closes #606.
	Improve AC handling of CommonCrypto. If we have SHA2 in CommonCrypto
	  but not in OpenSSL, we'll now detect it.
	Add --with-commoncrypto and --without-openssl options. JtR can be
	  built with either or both.
	Makefile: Fix linker flag order, some hosts are picky.
	OSX 32-bit fixes. Our ALIGN() macro clashed with something on OSX.
	The ALIGN clash was just too bad. Rename all instances to JTR_ALIGN.
	Two formats were using openssl/sha.h instead of our sha.h.
	Add a missing CFLAGS backup. They were restored to pre-CUDA...
	Turns out *all* modes do an emma within get_progress() so this was
	  redundant anyway.
	Yet another idiotic feature macro needed, this time for getting
	  memmem() on Linux.
	Show used extension macros in AC output.
	AC: Fix for Linux quirk.
	AC: Mute red herring warnings.
	Wordlist.c: cast printf arguments to mute warnings.
	Drop -ldl from all targets but john itself.
	Fix a bunch of mostly not-really-problems, and one or two real ones.
	  Detected by cppcheck.
	list-build-info now shows basic info about seek, ftell and memmem.
	  And also shows if we are running OpenSSL, CommonCrypto or both.
	Minor fix in Makefile.orig. We could end up defining eg. HAVE_KRB5
	  instead of HAVE_LIBKRB5 and overall it was a confusing mix. Same
	  for GMP.
	S/Key format was listed as 'xyes' on OpenBSD.
	SAP B passed salts to loader with possible garbage in the end
	  (variable length). This lead to loader potentially seeing
	  "different" salts even though they were the same. Closes #608.
	Add GMP, KRB5 and yasm to Travis "build bot" config.
	Try to not DOS the Travis build hosts %-)
	Add a check for BIO functions in crypto lib.
	Fix for legacy Makefile using X32 and AES-NI (needs bleeding-edge
	  yasm, untested)
	See if we can test both with and without OpenMP in Travis CI.
	Revert "See if we can test both with and without OpenMP in Travis CI."
	  We already do one build with clang, which is non-OMP.
	Check whether yasm supports our target (needed for X32).
	Solaris fix for large file support.
	AC: Don't bother checking for nvcc backend gcc unless nvcc is found.
	AC: Drop erroneous use of CFLAGS_EX
	SKEY_jtr.h did not have an LF (not even a b0rken Redmond one) at EOF.
	Fixes for systems lacking <stdint.h>, including adding SIZE_MAX and
	  UINT32_MAX needed for escrypt.
	Workaround for old gcc having problem with unrarppm.c
	AC, large file support bugfix: Move size check for size_t and off_t to
	  after we have decided on feature macros. They might very well
	  change!
	Sparc bugfix (alignment) for mssql12.
	AC: Linux 32-bit large file support bugfix.
	SKEY valid() fix. It was WAY to promiscuos, locking on header lines in
	  TS.
	I had to add a backslash to get this list working over two lines.
	  'dnl' did not do the trick.
	Wow, that was clever. I tested everything except the format I fixed.
	Bugfix for 1f341404. You can't use HAVE_ macros unless including
	  autoconfig.h...
	The change for krb5 in 41969aec had the side effect LIBS was polluted.
	Don't add OpenCL paths if --disable-opencl. Revert bogus changes for
	  OpenCL/CUDA vs HAVE_DL and handle it properly in common-gpu.c
	  instead.
	I wondered where all crazy libs checks came from. They are
	  OS-specific! So let's do them only when appropriate.
	Silly typo
	Revert the redundant "=1" for -D. Drop a large block of comments
	  that does not belong in source. Change more 'dnl' to backslashes.
	Revert to a somewhat safer krb5 test (hopefully working for MIT as
	  well as Heimdal now). If we do not even have the
	  krb5_is_thread_safe() function, disable OpenMP for krb5-18/23
	  formats to be safe.
	Don't try to use HAVE_LIBKRB5 as an aggregate - create a new one.
	Better Kerberos 5 detection. Detect MKShim and Heimdal.
	Add krb5support to list of libs to search for Kerberos 5 functions.
	Revert last patch and simply disable krb5-18/23 formats if Heimdal
	  was found (until we know, and handle, the differences).
	Fixes for Heimdal Kerberos.
	Add support for specifying AS and LD to configure.
	Update doc/INSTALL for OSX builds.
	configure re-built after 0cd5e47. Also, move x86-mmx.h back from
	  unused, and fix MMX targets so they use core assembler code +
	  Alain's NT and Deepika's DES.
	Drop HAVE_SSE2 et al from blake2 code (in favor of standard ones like
	  __SSE2__). Also drop JOHN_AVX and JOHN_XOP from autoconf - they
	  were never needed.
	AC: On OSX, detect when 'as' can't assemble AVX instructions and
	  inform about the workaround.
	Workaround dynamic's requirement that MD4_SSE_PARA == MD5_SSE_PARA.
	Add `--param allow-store-data-races=0` if supported. Closes #632.
	Minimize diff against core.
	Drop a redundant -DAC_BUILT
	Drop a redundant ';' from mozilla
	Add more granularity in SIMD algorithm name.
	Dynamic: Hide OMP-only function when not building OpenMP.
	Add a detail to OSX build instructions in doc/INSTALL.
	Suppress some clang warnings.
	Debug build fix for systems with no CLK_TCK. Closes #642
	New plugin format, capable of optional plugs.
	Convert non-plug formats to new-style plugins.
	Convert all OpenCL formats to plugins.
	Convert more optional formats to plugins
	Plugify pfx, rar, ssh, wpapsk and zip.
	Plugify mozilla format.
	Fix for legacy Makefile vs. new plugin format.
	Plugify HMAC-MD5, HMAC-SHA1 and raw-SHA0.
	Plugify krb5-18/23 formats.
	Plugify CUDA formats and add some missing glue for other formats
	  as well.
	Minor fixes for new plugins.
	Move raw-sha224/256 CUDA formats back to being non-plugs and fix other
	  issues. All known problems gone now.
	Initialize the Unicode system before calling listconf_parse_late()
	  and speed up --list=format-tests for GPU formats.
	listconf.c: Handle the case where field 0 is given but no others.
	  Example:
	  {WOWSIG"6D00CD214C8473C7F4E9DC77AE8FC6B3944298C48C7454E6BB8296952DCFE78D$73616C74",
	  "PASSWORD", {"SOLAR"}}
	Some --encoding issues fixed (see #664).
	Make it possible to build x86-64 without SIMD, for example like this:
	  ./configure --disable-native-tests CFLAGS="-O2 -g -mno-sse2
	  -mno-mmx"
	Add a note in Unicode external formats about them being generated from
	  Unicode version 6. Unicode v7 is pending publication, planned
	  October 15.
	Some more or less no-op changes to SAP F/G format while investigating
	  a problem.
	Minor changes to --encoding (et al) usage output.
	Fix for x86-64 no-SIMD build, vs. new plugin interface.
	OpenCL speed-ups for --list=format-[all-]details
	pwsafe OpenCL kernel overwrites input buffer, so the "new_keys"
	  optimization introduced in 6a2e122a breaks the format unless
	  only one salt is attacked. Closes #640
	pwsafe CUDA kernel only does one limb of SHA256 and its salt size
	  is 32 so max. plaintext length simply CAN'T be more than 23.
	  Closes #641
	EPiServer: Fix a bug in binary() as well as some Unicode bugs.
	  Closes #643
	CUDA SHA-224 was given a wrong binary size. Closes #645.
	SAP F/G format: Support up to 40 characters of ANY length Unicode
	  for SIMD too. Fix a buffer-selection bug. Issue #662 is still yet
	  to solve.
	sapG bug fix. Closes #662.
	HAVAL fixes. Closes #652.
	Reorder test vectors so an untagged one come first if applicable.
	Minor Unicode/encoding fixes.
	Move the recent --list=format-tests changes to a new function, and
	  use it also for --list=format-all-details.
	Listconf: Drop trailing ':' from example cipher text.
	Fix peculiar bugs introduced by 5bd568d1
	OpenCL: Make sure our COMPUTE/DISPLAY tweak works for
	  --list=opencl-devices
	Fix a bug in KRB4 that made it unreliable unless used with a
	  single afs salt or with des salts only. Closes #653.
	It turns out krb5-23 are just NT hashes. Drop the krb5-23 format
	  (it was a lot slower) and change kdcdump2john.py so it outputs
	  $NT$ tags for those.
	Office2007-opencl: Some debug stuff for future use. And drop a segment
	  of code if not needed (depending on HASH_LOOPS figure).
	Add a check for -Q in compiler argument tests. Closes #682.
	krb5pa-md5: Unify input formats (always write new style format to
	  pot). Closes #654
	krb5pa-sha1: Drop a test vector that confused us. Closes #655
	Revert 58a02ba and implement a better scheme: We only let USED
	  fields through split(). This way unused fields can differ and it
	  won't be a problem. This enhances solutions to issues #654 and
	  #655.
	Revert "Revert 58a02ba and implement a better scheme: We only let
	  USED"
	Proper version of f8ced75 that was reverted earlier. There was an
	  off by one error. Also fixes the OpenCL versions of the formats.
	  Hopefully this settles it for #654 and #655.
	Add the example from
	  http://www.openwall.com/lists/john-users/2014/06/23/1 as a test
	  vector in the known_hosts format.
	Make full Unicode (4-byte UTF-8) optional for fast MS formats,
	  because it means a performance hit of 10% or so. Default to
	  disabled.
	Cosmetical changes to ZIP source from merging changes to OpenCL.
	ZIP-opencl: implement Jim's changes from CPU format.
	ZIP formats: Bugfix for (unlikely) bad salts caught late. Actually
	  I think we should bail out with error in get_salt() instead but
	  this bugfix is needed as long as we handle it this way. Any real
	  problems are very unlikely though.
	Drop some obsoleted variables from zip-opencl.
	ZIP format: salt size fixes. Pot sync would not work without the
	  same quirk in cracker.c that RAR already had. And salt_hash()
	  should iterate over the entire salt.
	bash completion: Format class enumeration missed stripping the commas.
	zip and pkzip formats does not unify case, so should only accept lower
	  case.
	Minor corrections after compiling with -pedantic.
	"Enable" the 'cpu' format class for non-GPU builds. Actually it was
	  just not mentioned in the usage blob for non-gpu builds.
	Autoconf: Cosmetical, crypt(3) is a format, not a mode!
	Mute bogus OpenMP warnings when running MPI.
	Revert to using rexgen if found, but only if it's the version we
	  support. We can expand this to recognize newer versions once we
	  support them. You can still use --disable-rexgen to manually
	  disable it.
	Drop the SHA2 ng-i formats. They were interim ones before the
	  generic ones got SIMD support. Closes #677
	RIPE-MD128/160 bug fixes. Closes #675
	Oracle, unify case in split(). Closes #657.
	For FMT_NOT_EXACT, --show=left should only output hashes we did
	  not found *any* candidate for. Closes #671.
	"Found no" or "did not find any", pick one.
	OpenVMS bug fix. It would not even load its test vectors when put
	  in a file.
	Change self-test so it detects problems like the OpenVMS one that
	  was fixed in 84ff14a (valid failed unless init was called first).
	Fix obscure bug in wordlist.c caused by 11e5191. It would make nodes
	  get out of sync when dupes was found after truncation. Closes
	  #699.
	7c76d2c had some problems with multi-field test vectors. This
	  should do the trick.
	Move the function null pointer checks to after fmt_init() where
	  applicable.
	Further shuffling in formats.c - more tests should take place after
	  fmt_init().
	Workaround for a thin dynamic problem resulting from recent self
	  test fixes.
	Fix another case of wordlist w/ --fork getting out of sync. This
	  happened when --min-len or --max-len was used. See also issue
	  #699.
	Change a couple of allocs into callocs in common-opencl.c, possibly
	  mitigating effects of buggy drivers.
	Call prepare() and split() during pot reload. This should not be
	  needed (or so I thought) and has some performance penalty in some
	  situations but the dynamic format requires it for hex/dehex of
	  salts. Closes #702.
	Initialize a variable introduced in c882813 so we don't parse any
	  garbage it might contain.
	Pot reload: Move redundant initialization out of hot loop.
	Whitespace fixes in formats.c and loader.c
	Do not print candidates in status lines when in secure mode.
	  Closes #713 although we could improve this by printing the
	  "components" just like in a crack, eg: `1g 0:00:00:00 DONE 2/3
	  (2014-08-12 21:46) 100.0g/s 101200p/s 101200c/s 101200C/s
	  L6-?d..L6-?l`
	Quick and dirty optimization for RAR5 format, for a 90% boost.
	Fix OpenMP for previous commit.
	When executing a "partial" john command during bash completion
	  enumeration, do NOT include any input hash files. This seems to
	  fix #701.
	Fix a problem with --skip-self-test
	Drop the "alleged" from RAR5 algorithm name. It actually is
	  PBKDF2. Also fix some bugs and comments in valid().
	RAR5 valid() had a test done twice.
	Add some alternative addresses for Dhiru to .mailmap so Git knows
	  he is one same person
	Bugfixes and improvements for -external:dumbdumb
	RAR3 OpenCL need init() before benchmark, in order to output
	  correct length of test vectors.
	RAR5: Move some functions to a header file for sharing with OpenCL
	  format.
	RAR5-OpenCL: Initial implementation. Quick'n'dirty.
	pbkdf2-hmac-sha256-opencl bug fix and auto-tune, from rar5 format.
	Do not add implicit target-encoding to session file for --stdout.
	Autoconf: Enforce CPU formats' precedence over GPU ones. Closes
	  #724.
	RAR5 and PBKDF2 OpenCL formats: Autotune tweaks and optimizations.
	bench.c: init all OpenCL formats early, to avoid assorted problems.
	RAR5 OpenCL: Minor optimization for post processing. We could do this
	  on GPU but it wouldn't make a difference. This way we use
	  PBKDF2-HMAC-SHA256 kernel unmodified.
	Use shared code for auto-tune in pbkdf2-hmac-sha256-opencl.
	Improve OpenMP performance of Siemens-S7 format w/ many-salts.
	Mute some warnings in sha1crypt
	Speed up OpenCL auto-tune in rar5 and pbkdf2-sha256
	RAR5 OpenCL bugfix - I picked the wrong line in last commit.
	RAR3 OpenCL: Use shared autotune.
	crypt-sha1: Use correct name of function, for less confusion. 100%
	  cosmetic.
	Add alternative address for Claudio to .mailmap so Git knows he is
	  one same person
	Autoconf: Ignore case when sorting format list.
	Ignore case when sorting formats for the usage blob.
	Autotune bugfix in RAR5 OpenCL.
	Add loop count output to shared autotune statistics
	RAR5 & PBKDF2 OpenCL: minor tweaks.
	WPAPSK-opencl: replace autotune with shared code, including fixing the
	  latter to handle vectorized kernels.
	wpapcap2john: Fix a bug when calculating eapol size. Closes #728.
	wpapcap2john: Fix bug when stripping encapsulations. Optionally do not
	  output incomplete (unverified) authentications.
	Swap Claudio's addresses in .mailmap
	Fix bogus line endings in configure.ac (it had a disgusting MIX of
	  LF and CRLF!)
	Fix bogus line endings in jtr_local_conf.m4 (it had a disgusting
	  MIX of LF and CRLF!)
	Our current HMAC formats are "salt is message, password is key". I
	  always forget which it is, so add this to algorithm name. We
	  could/should implement "salt is key, password is message" too.
	Bump some artificial limits in our generic PBKDF2-HMAC-SHA1 format,
	  and add WPAPSK DK example (test vector) to it. Also a minor bug
	  fix.
	Add OpenCL format for generic PBKDF2-HMAC-SHA1.
	pbkdf2-hmac-sha1 opencl tweaks.
	pbkdf2-hmac-sha1 opencl bugfix for weak devices.
	OpenCL: Autotune tweaks.
	OpenCL: More autotune tweaks.
	Drop the FIXME comment in wpapcap2john. EAPOL packets have a 16-bit
	  length field excluding itself and the two 8-bit ones preceding it.
	Fix some format/algorithm names
	Fix some OpenCL algorithm names when running vectorized.
	Rename pbkdf2-hmac-sha1-opencl source file
	Minor fixes to Lotus5-opencl. Format is still b0rken - it is hard
	  coded for a LWS that not all devices support. It also does not
	  obey LWS/GWS environment variables (#601).
	Lotus5-opencl bug fixes. Closes #601.
	Lotus5 OpenCL bugfix when bumping GWS from default.
	Various formats: OpenCL AMD bug workaround.
	8-bit fixes for pass_gen.pl. The issues were not really caused by
	  recent dropping of Authen::Passphrase, but found due to it.
	Obvious optimization for EIGRP format: Move some work to get_salt,
	  where it's done once instead of millions times per second.
	Support meet-in-the-middle hint for Office 97/2003 hashes. Speedup
	  on CPU is about 2x but it doesn't show in benchmark. See #736.
	Fix plugin headers dependency in Makefile for john.o.
	Add critical section pragmas to all use of "any_cracked" variable, and
	  fix some bugs while at it.
	OpenCL: Show source file name when a kernel build fails.
	Move DEScrypt-opencl format to broken/
	Switch to Lukas' (faster) SHA512 kernel for Office2013.
	Workarounds for AMD bugs in Catalyst 14.6beta.
	Change the message "Press 'q' to abort (...)" for -pipe and -stdin
	  modes.
	Fix bugs and add some WLAN stuff to cisco2john. Still not much
	  tested.
	Vigenere bug fix in cisco2john.
	Various OpenCL fixes.
	Move DEScrypt-opencl back in business, but make it disabled in
	  default john.conf instead. This way it's out of the way unless
	  you call it by name.
	7z-opencl: Move back in business but default to disabled in
	  john.conf
	Drop argument "arch sm_10" to CUDA compiler. It's been deprecated
	  and now doesn't work anymore on newest versions.
	Grub kernel: Mute compiler warnings about unsigned vs signed int.
	Keyring-opencl bugfix. A trailing zero was put in a buffer not
	  made for it, writing past end.
	7z-opencl bugfix. A trailing zero was put in a buffer not made for
	  it, writing past end.
	pwsafe-opencl and rar-opencl: Handle devices that limits LWS in
	  some OTHER kernel than crypt_kerne. There will be future
	  problems with this unless we fix all multi-kernel formats.
	Show in --list=format-all-details whether format is disabled in
	  john.conf. Also mute a SAP F/G warning when running --list.
	Various OpenCL formats: Honor device limits.
	CUDA raw SHA224/SHA256 formats were broken since some time.
	Change format struct name of raw-SHA0 so it sorts after SHA1.
	  Closes #741.
	Loopback bugfix for 8-bit characters.
	mozilla2john was not being built in an autoconf build. Closes #743.
	pass_gen.pl: Fix a bug in the try/catch for LM encodings.
	More encoding fixes for pass_gen.pl
	OpenCL: Ensure AMD device topology output despite outdated headers.
	OpenCL: Add a hardcoded ".0" after PCI string for nvidia, and fix
	  indentation.
	OpenCL: It turns out PCI id's are 8-bit bus, 5-bit device and
	  3-bit function. I presume this is the correct way to parse what
	  we get from the query.
	OpenCL: Fix stray output.
	Unify some more format names in pass_gen.pl.
	pass_gen.pl: Sort format names when listing them.
	Add a --keep-guessing option, that sets FMT_NOT_EXACT for any
	  format and thus lets us search for plaintext collisions.
	OldOffice format: If we cracked a hash and are in FMT_NOT_EXACT
	  mode (ie. --keep-guessing option was used), store a meet-in-the-
	  middle value for faster cracking.
	OpenCL list devices: Show platform/device extensions if verbosity
	  was bumped.
	getopt.c: Alternate dupe-options check for options which are
	  FLG_NONE and OPT_REQ_PARAM. This frees up options flags.
	Trust the new options dupe-check to free up 15 flags for Jumbo.
	Pacify a compiler warning in wpapsk.h. I think it was latest CUDA
	  nvcc that started complaining about the "deprecated conversion
	  from a string literal to "char *"
	Stop mentioning krb5-23 format - it doesn't exist anymore since it
	  was really just the good old NT format in disguise.
	Typo. Apparently I should use a larger terminal font.
	OldOffice: Add intermediate key to .pot file. Functionality is
	  added but disabled for now. We need a core change first, or
	  --show will not work properly. See #736.
	Using FLG_NONE does not work for the recent dupe checking, use
	  flg_set == 0 and req_clr == OPT_REQ_PARAM instead.
	Add a FLG_ZERO for (in a sense) better readability of the Jumbo
	  option dupe-checking.
	Drop DEFAULT_ALIGN from dmg-opencl.
	CUDA formats salt cleaning fixes (sha256crypt and sha512crypt).
	OpenCL formats salt cleaning fixes (agilekeychain, bcrypt, gpg,
	  keyring, rar and sxc).
	Salt cleaning and other bug fixes to 7z and SIP formats.
	Some tweaks for the new salt-cleaning self-test. We clear the
	  buffer again after our tests, mitigating possible issues.
	OpenCL formats need a postponed init() for "poor man's multi-
	  device support". This caused problems for a few CPU formats so
	  we now ensure it only happens for actual OpenCL formats. Closes
	  #755.
	Cosmetic: Status help message now says SIGHUP if SIGUSR1 is not
	  available.
	Binary buffer cleaning self-test. See #757.
	Fix bugs in Skein and Snefru formats, #757.
	Fix a bug in IKE format, #757
	Fix bugs in AIX, DragonFly4, eCryptFS and Dummy. See #757.
	Support -encoding for -stdout. And tweak mask mode's encoding handling
	  a little: For consistency, it now honors --intermediate-enc if
	  used. Closes #756.
	Drop the now obsoleted mask-mode code from rpp.c and rpp.h
	mask.c: Re-add encoding support, and ?h ?H ?A place holders.
	Minor changes to doc/ENCODINGS
	sha1crypt-opencl format added. Split kernel is WIP.
	Found a slightly enhanced version of that sha1crypt-opencl among
	  all my local topic branches %-)
	Update CHANGES-jumbo.git and CREDITS-jumbo.
	Jumbo options dupe-check bugfix.
	I reverted too much in 945be4a... some Jumbo-specific stuff re-added
	  (namely, support for using \xHH notation in rules and ranges), now
	  with comments.
	Deprecate "ansi" in encoding list output. We still support it as a
	  shorthand for ISO-8859-1 although it's ambiguous. Add support
	  for "latin1" as another alias for the same, even though that is
	  still somewhat ambiguous :-P
	WIP for ADL/NVML mapping to our device id (#750)
	ADL debug output fix.
	Change --intermediate-enc to --internal-encoding. The old name is
	  deprecated immediately, sorry 'bout that! To my defense I call
	  the fact we haven't had any release with the old option...
	Mask mode: Do not produce mixed-case candidates for case-
	  insignificant formats like LM. Closes #764.
	Mask mode: Code cleanup.
	Bugfix for bash completion of encoding option name change.
	Mask mode: Start implementing custom mask (WIP, #762).
	Autoconf: Add --disable-openmp-for-fast-formats (some CPUs can't
	  handle it well so it ends up slower than one core).
	Add -<N (rule reject for --min-length=N) and U (reject unless valid
	  UTF-8).
	Merging super old topic branches exploded in my face. Build bots
	  to the rescue.
	Bugfix for resuming with an implicit internal encoding.
	Mask mode: When !FMT_CASE, produce lower case candidates instead of
	  upper case ones. There's a slight difference with some
	  encodings.
	mask.c: Always parse \xHH notation. Closes #772.
	mask.c: Handle command-line arguments given in UTF-8 when internal
	  encoding is some codepage.
	Minor tweak for UTF-8 handling in mask mode. Better safe than sorry.
	Move a variable declaration to avoid compiler warnings.
	mask.c: Allow escaping \ as \\. So \\x40 means literally \x40 and not
	  the character with ascii code 0x40.
	Allow custom masks given in UTF-8 on command line.
	Loopback mode: Improved handling of assembled LM halves.
	Mask mode: Parse hex notation in custom masks.
	Add support for a default mask in john.conf. The default one (same
	  as Hashcat) is is not too useful until we implement -min-len and
	  -max-len support for mask mode (#380).
	Mask.c: Do not touch empty strings during de-hex.
	Mask mode, resume bug fix. Closes #780.
	mask.c: Allow using static placeholders within custom placeholders
	  ?1..?4.
	Mask: Do not touch empty strings during expansion.
	AC: Add AC_PREFIX_DEFAULT([../run]) as part of trying to fix #612.
	OldOffice: Revert to using core's salt copy, so a found "middle"
	  value does not get lost in set_salt(). See #736.
	mask.c: Preserve existing escapes during pre-processing. See
	  discussion in PR #776.
	"memdbg" fixes for a bunch of OpenCL formats. See #739.
	MEM_FREE bugfix for rar5-opencl. A buffer was freed in done() but
	  should be freed in release_clobj()! See #739
	Add some missing inclusions of memdbg header. See #739
	Drop some debug output from mask.c, and only talk if we're the
	  main process.
	Mask mode: Fix progress count for node/fork/MPI. See #771
	mask.c: Cosmetic changes.
	Mask mode: Fix progress reporting.
	Make it possible to build 64-bit "any" or MMX-only builds, for
	  testing purposes.
	Split the PBKDF1 kernel for sha1crypt-opencl.
	Minor fixes to PBKDF kernels.
	OpenCL: Drop some debug output now that the NVML problem is fixed.
	  Also move the ADL output to opencl_list_devices() so it's not
	  printed when emitting a status line (although this is currently
	  defined out by default).
	CUDA: Ensure mapping between CUDA id and NVML id, using PCI id.
	Add NVML device id to --list=opencl-devices.
	Re-create ADL main control for each call to get_temp(). This is
	  probably just a bug workaround, it should not be needed. Closes
	  #784.
	Fix "generic" legacy build. Closes #782.
	OpenCL: Add possibility to override build options using environment
	  variable or john.conf. Also add custom build options capability to
	  sha256crypt-opencl and sha512crypt-opencl, as a PoC. If given,
	  they will be concatenated with global options.
	Add clReleaseProgram() to Sayantan's formats.
	Add a --stress-test[=TIME] option that is just like --test except
	  it loops the test(s) forever.
	Memory leak bugfixes to mscash2, bcrypt and lotus5 OpenCL formats.
	Office2007-opencl: Use shared auto-tune.
	Office2010-opencl: Use shared auto-tune.
	Office2013-opencl: Use shared auto-tune.
	encfs-opencl: Use shared auto tune.
	krb5pa-sha1-opencl: Use shared auto tune.
	krb5pa-md5-opencl: Use shared auto tune.
	ntlmv2-opencl: Use shared auto tune.
	mysql-sha1-opencl: Use shared auto tune.
	Minor fixes for the last eight commits.
	Allow 10s total for encfs-opencl. It's a lot of iterations!
	Drop some unneeded code from raw-md4/5 OpenCL formats.
	Drop obsoleted code from OpenCL formats, and fix a bunch of little
	  issues.
	OpenCL: Ensure unmapping of buffers.
	OpenCL: Bugfix for reporting utilization from ADL OD6 devices.
	Optionally include GPU sensor readings when printing status line.
	GPU sensor status: Some GPUs report a utilization of 0% when they
	  actually do not support that query, mute that. Also, tweak output
	  a little for multi-device (as in mscash2, not -fork).
	GPU: Abort job in case we hit the temperature limit set in john.conf.
	Log GPU sensor readings at start/stop of session.
	Allow 30 seconds grace time for a timer abort (-max-run-time) so we
	  don't lose the session save for slow/split-kernel formats.
	Avoid overhead in inner loop of split kernel OpenCL formats.
	Reduce overhead in gpu_check_temp().
	Clean up (cosmetic) of GPU code common for CUDA/OpenCL.
	Show sm_5x (Maxwell) core counts correctly in --list=opencl-devices.
	Ensure initial MPI/GPU logging in -fork children.
	Fix arch link issue for 32-bit SSE2 or better. See #793.
	Cross-compile version of the fix in 087383c. See #793.
	ZIP_fmt: non-inline data length bugfix. Closes #792.
	#792 bugfix for the OpenCL version of the format.
	Pure whitespace fixes in cryptsha512_common.h
	Copy-paste bug in 8cd6cf53.
	Copy-paste bug in 73246ae (duh!)
	More fixes for building (test builds) x86-32/64 without MMX or SSE2.
	pdf2john, fix problem introduced with 292b35c. Closes #789.
	Resource cleanup fixes in various OpenCL formats. See #739.
	Perform some obscure Jumbo self-tests only if --test. Closes #799.
	Stress test bugfix: sig_done() must set SIGUSR2 to SIG_IGN if used.
	Mitigate race conditions in SIGUSR2 handling. See #798.
	Improve error reporting to log file: Eg. "Terminating on error:
	  john.c:144" Closes #800.
	Add sm_50 SP multiplier for CUDA too (I did not remember we had to
	  calculate it from a table like in OpenCL).
	Further mitigate race conditions in SIGUSR2 handling. See #798.
	RAR OpenCL: Implement dynamic salt. cracker.c: drop the kludge we
	  had for RAR and ZIP formats. It's now taken care of by the
	  dynamic salt stuff. See #752.
	ZIP OpenCL: Implement dynamic salt. See #752.
	Add .gdbinit to .gitignore.
	Fix a silly bug in CUDA-id to NVML-id mapping. Closes #801.
	In last commit, a paren escaped from where it should be and ended
	  up where it should not. That's what you get when you have to
	  dry-run testing fixes :(
	Fix -DDEBUG builds for a couple of OpenCL formats.
	RAR formats: Use fmt_default_salt_hash_dyna_salt().
	ClearQuest: Add some parens that Dhiru tried to do without.
	RAR: Never include data blob in salt compare size.
	Makefile.stub: exit with error if not configured.
	Experiment with using mmap() for large RAR blobs.
	RAR mmap: Stop using offset, because it's too hard to determine
	  page size in a portable way. And this has no real drawbacks.
	Add debug info to dyna salt compare.
	pkzip: Improve OMP scaling. It was hard-coded with a ceiling.
	Dynamic salt: Adjust SALT_CMP_SIZE macro, it ended up wrong due to
	  struct padding.
	RAR-opencl: Get up to speed with CPU version (ie. mmap() support).
	Dyna salt debug.
	Drop broken custom hash functions in pkzip and TC. Closes #791.
	Add missing hash functions (and/or use default ones). Closes #790.
	EFS: Bugfix for iterations count. BAD BUG, possibly false
	  negatives. Shame on @kholia. Closes #563.
	AC: Create a GNUMakefile alternative. The old stuff is still there
	  too. See #805.
	Case fix for GNUmakefile. We had it as GNUMakefile.
	Drop the GNUmakefile if "make distclean", or users will be very
	  confused.
	WPAPSK-opencl: Auto-tune fixes.
	Revert "dyna_salt. Use 4 param COMP_SIZE macro" Revert "rar_fmt:
	  removed numerous warnings, and added comments where we can not
	  handle large file size"
	rar2john: missing linefeed in usage blurb.
	See #794. Add MAX_INLINE_SIZE to params.h and have keepass2john
	  honor it, with an optional -i override.
	keepass2john fixes.
	keepass2john bug fixes.
	rar2john: adopt to #794, using -i for setting inline threshold and
	  defaulting to MAX_INLINE_SIZE.
	Minor fixes to keepass2john and rar2john.
	zip2john: Implement getopt (sorry, had to change some option names)
	  and MAX_INLINE_SIZE, see #794.
	luks2john: Implement getopt and MAX_INLINE_SIZE, see #794.
	Tiny optimization for RAR formats: Drop an assertion that is now
	  well tested. We keep it for -DDEBUG.
	Unify RAR & RAR-opencl. Some minor fixes were not implemented in
	  both.
	RAR formats: Use 64-bit fseek() if possible. We still can't fread()
	  larger than 4 GB but we can now seek 5 GB into a file for fetching
	  (hopefully smaller) data.
	rar2john: Use 64-bit fseek(), just in case.
	Mute a warning in legacy generic builds, addressing #807.
	Makefile tweaks.
	Cosmetic auto tune fix in NTLMv2-opencl.
	ClearQuest format failed on 32-bit due to sign extension. Closes #806.
	If we have gmake, use GNUmakefile and do not overwrite Makefile.
	  Closes #805. This also adds a missing @SET_MAKE@ that was likely
	  intended to be included in every makefile since we've been using
	  AC_PROG_MAKE_SET for long.
	Fix numerous memory leaks in OpenCL formats.
	ssha-opencl: Use shared auto tune.
	Flush log file before signaling children we're done. Closing #798.
	AES-NI code: Change a __declspec to something more portable.
	Change name of
	  s/fmt_default_salt_hash_dyna_salt/fmt_default_dyna_salt_hash/g.
	Refactor function names of opencl_autotune.h. The common_* names
	  always confused me.
	With a fast enough GPU, auto-tune would overflow signed 32-bit
	  integers.
	OpenCL: Allow auto-tune with a single kernel-invocation limit instead
	  of total crypt_all() limit.
	Use new alternate auto-tune scheme for a couple of formats.
	Fix a bug in Office OpenCL formats where cracked array was not
	  properly reset when running vectorized.
	Salt cleaning in OpenCL Office formats.
	pbkdf2-hmac-sha1 opencl bugfix.
	Revert a memleak fix in OpenCL formats. Something goes terribly
	  wrong unless we do it this way.
	Drop the Makefile stub. I causes too much problems. We can symlink
	  Makefile -> Makefile.stub in release tarballs though.
	Office 2013, tweak auto tune
	Fix an issue with --skip-self-tests and dynamic salts.
	CUDA: cosmetic, device list.
	OpenCL raw-md4/5 bugfix.
	Keyring-opencl bugfix.
	pbkdf2-hmac-sha1-opencl: Report iterations as tunable cost.
	AC: Do not add -march=native in case we are OSX with broken as.
	Add salt_hash, binary_hash and get_hash functions to ClearQuest.
	  Closes #810.
	WPAPSK-OpenCL: Minor optimizations for GTX980, for a 5% boost.
	Add stacked mask mode to Incremental, Markov and Wordlist modes.
	  It's not actually handled in mask.c yet. Also, resuming a stacked
	  session may (or may not) need work.
	Autoconf: Assert that we don't have a stray GNUmakefile still in
	  the tree, after some of magnum's poor ideas in #805.
	GPU: Initialization tweak and other minor fixes.
	Benchmark: Print GPU utilization (if available) after benchmarking
	  OpenCL or CUDA formats more than one second.
	In hybrid mask mode, do not use candidate alone. While it could
	  sometimes be a feature, it could also produce up to 50% unwanted
	  candidates.
	Bug fix for hybrid Markov + Mask mode.
	Optimization for short masks: Avoid repeated strlen's that the
	  optimizer would not dare taking away as written. Also make key a
	  const char* so we don't screw up.
	Bugfix for non-hybrid mask mode.
	Bugfix for hybrid mask w/ node/fork: For now we always let the
	  parent mode distribute the work. For large masks it might be
	  better to let mask distribute but that is a more intrusive
	  change (to all modes).
	Fix non-GPU builds for bug introduced by 9a5e3ae
	Fixes for stacked (eg. hybrid mask) session save/restore.
	Fix progress/ETA reporting for hybrid mask/stacked modes. Wordlist
	  mode still has coarse reporting in some situations (mmap) when
	  wordlist is small and mask is big.
	Fix some missing pieces in the Regex mode.
	Cosmetic bugfix: mask_done() was called a tad too early so final
	  status would be empty for short runs.
	Bugfix for save/resume in Hybrid mode. If we are about to abort,
	  we must not call parent's fix_state(). Closes #823.
	Further tweak for #823. In extreme test cases using -max-run=1 we
	  sometimes did not get any progress for a (one second) run.
	Change default custom masks (which resembles Hashcat's) to use eg.
	  a-z instead of ?l so they are not affected by internal encoding.
	Add mask placeholders ?L and ?U which is non-ASCII lower and upper
	  case characters.
	Reject ?L and ?U placeholders unless an 8-bit codepage is in use.
	pkzip format: Mute warning about missing files if we're just reading
	  pot lines.
	Remove some #ifdef DEBUG, or change them to something more specific
	  like POTSYNC_DEBUG or DYNA_SALT_DEBUG.
	Max length fixes in rules.c for internal encoding.
	Fix handling of invalid UTF-8 in mssql05. Closes #830
	Ensure key cleaning on invalid UTF-8 in same fast formats. No
	  problem seen with these but #830 hinted we might get problems so
	  we play safe.
	Mask mode: Add support for format's max length. See #834
	Mask mode: Fix bugs for using default mask (bare --mask option).
	Mask bugfix for default mask. See #834
	Mask: Cleanup of previous changes. This is a no-op except we now
	  keep a pointer to the actual original mask in case we'd need it
	  for debugging.
	Use a separate default mask for Hybrid mode.
	Hybrid mask: Bail out with error if [the used portion of] hybrid
	  mask does not contain a ?w placeholder. See #834
	Mask mode: Ensure max length is not exceeded after conversion to
	  UTF-8 too, if applicable. Hopefully this is the final fix for
	  closing #834
	Drop CP/M linefeeds from Jim's files.
	Oracle: Address #832 (overlength salt segfault)
	Common OpenCL: Do not fail if we can't get PCI info. It will only
	  happen when we don't need it anyway. Addresses #836
	OpenCL, cosmetical: Strip leading whitespace in device names.
	OpenCL: Improve handling of --fork vs. (lack of) --device.
	Mask: Better handling of max length when internal encoding is used.
	Fix non-OpenCL builds. Missing #ifdef.
	Minor fix for using default mask.
	Wordlist: Unicode length fix when internal encoding is not UTF-8
	  but target encoding is.
	Fix for john.o in debug build target.
	Add a 'memdbg' build target which can be used without editing
	  anything.
	Mask mode: Use mask_add_len in hybrid parent modes. See #837
	Mask mode: Use mask_num_qw in hybrid parent modes. See #837
	Comment out -DMASK_DEBUG that was accidentally committed.
	Mask mode: Various tweaks. See #837
	Mask mode fixes. See #837
	Hybrid Mask: Fix detection of missing ?w when mask was not
	  truncated. See #837.
	Mask mode: Do not allow ?w unless running hybrid/stacked.
	Mask mode: Change meaning of ?l, ?u, ?d and ?s to always mean 7-bit
	  ASCII, and add ?S (high bit specials) and ?D (high bit digits).
	Mask mode: Escape fixes. Some things were lost by recent commits,
	  others were not really good to begin with: We must never look
	  backwards for detecting escapes, only forward. See #776 for older
	  discussion.
	Mask mode: Escape fix for \xHH hex. See #841.
	Despite generated from the "Unicode database", encoding_data.h
	  contained a dupe greek character.
	Include ASCII in list of encodings, mostly for tab completion to
	  include it.
	Add a "make clean" for Travis CI, just to be 100% sure. See #711
	pbkdf2-hmac-sha256 bugfix for buffer overrun, see #711.
	Mute the "Using default input encoding ..." if we actually do not
	  use any input.
	Mute the "Press 'q' or Ctrl-C to abort" when using -stdout and
	  output is a terminal. If you could read it, it wasn't needed...
	Mask mode: Warn if \x00 is used in mask.
	Overhaul of all formats that use base64decode(). It adds a NULL
	  string terminator that the destination buffer must be sized for.
	Mask mode: Allow ?w in pure mask mode, just warn that it doesn't
	  have any special meaning.
	Mask mode: Support -min-len. It will call mask_crack with each
	  length between min-len and max-len.
	Bodge for bash completion of eg. "john -stdout -list=...", see #842
	Mask mode: Fix for -min-len=0.
	OpenMP optimizations: Use 'atomic' instead of 'critical' when
	  possible. In oldoffice, keep using critical but make it a block.
	Mask mode min-length session save/restore bugfix. See #845
	Mask mode initial documentation. Closes #824.
	Mask mode: Do not "use" min-len in hybrid mask mode. Parent mode
	  will honor it after taking mask_add_len in account though. See
	  #848
	Fix OpenCL build after 38218fe3
	Mask mode: Progress reporting fixes. See #837
	Signals.c edge case fixes.
	Mask: Cosmetic: Print some warnings/errors in main process only.
	Mask mode: Drop redundant code, fix max_add_len for truncated
	  hybrid masks.
	MDC2 format: Fix build error. And indentation style..
	Mask mode -max-len fixes. See #837
	Mask mode: Warn if mask is shorter than supplied -max-length
	  parameter. See #837 for discussion.
	Add base64conv to .gitignore
	Rules.c: Do not convert from internal to target encoding in case we
	  are running hybrid mask. It will happen in mask.c after applying
	  the mask.
	Mask mode: Reject 8-bit "codepage" placeholders with UTF-8 encoding.
	Mask mode: Cosmetic/whitespace.
	For pure mask mode using internal encoding, skip conversion if our
	  mask (after current truncation) can't actually produce any 8-bit
	  characters. This can make for up to a 2x performance boost.
	Fix bug when using -min-len with pure mask mode.
	OpenBSD-SoftRAID: Show correct ALGORITHM_NAME. Also drop the
	  FORMAT_NAME as it's identical enough to the FORMAT_LABEL.
	Add memdbg info to --list=build-info
	Mask mode: When iterating lengths in pure mask, show progress for
	  current length. See #854
	OpenCL: Rename opencl_autotune.h to opencl-autotune.h to prevent
	  it being copied to the kernels directory.
	OpenCL: Move GPU-side Unicode stuff to a shared header.
	DEFAULT_ALIGN. See issue #317. Fix for double-format source file.
	Break out common OpenCL kernel stuff to headers.
	Oldoffice-opencl format added. Closes #719, see also #736.
	OpenCL: Optionally use local memory for RC4.
	Shared OpenCL headers: loop protection, dependencies and other
	  things.
	oldoffice-opencl fixes. MitM has to be disabled during autotune
	  and benchmarking. Also some RC4 tweaks.
	oldoffice-opencl: Workaround for AMD bug.
	OpenCL RC4 tweaks.
	OpenCL: More stuff moved to shared header.
	Mask mode: Resume progress/ETA fix for -min-len. Purely cosmetic
	  bug.
	AC: Mention --disable-pkg-config in doc/INSTALL (#864).
	OpenCL: Fix a silly problem with Intel compiler for vectorized
	  bitswap.
	Fix new unneeded lib dependencies.
	OpenCL RC4 tweaks. Mainly no-ops for easier profiling.
	OpenCL RC4: Use local memory if device is GPU. Actually this is
	  extremely detrimental to performance on some (weak? integrated?)
	  GPUs like my laptop GTX 650M but I'm not sure what to base the
	  choice on and it's up to a 290% boost on flagship cards. We
	  have to work around AMD bugs as usual though.
	OpenCL RC4: Regression fixes (driver bug workarounds) for Macbook
	  (nvidia GT 650M & Intel HD4000).
	OpenCL RC4: Fix some macro names before they cause trouble.
	OpenCL: Fix some header includes using brackets instead of quotes.
	keyring-opencl: Optimize for 2.5x boost, add auto-tune, bump length
	  limit.
	OpenCL oldoffice & krb5pa-md5: Fix --test=0 (they failed because we
	  required an LWS of 64 - but we can do with anything up to 64).
	Add auto-tune to pbkdf2-hmac-sha512-opencl.
	EIGRP format: Add cost support.
	OpenCL: Fix a bunch of OCL_CONFIG names.
	pbkdf2-hmac-sha512-opencl has a split() that unifies case but
	  missed the format flag telling about it.
	raw-md5u and raw-blake do unify case in split() but lacked the
	  format flag telling about it.
	Mait for events typo.
	7z-opencl: Split kernel, auto-tune and use shared SHA2. This format
	  is so extremely slow that we still need to have it disabled in the
	  default config. It can takes minutes even with --test=0. Closes
	  #754.
	7z-opencl: Modify algorithm name, reflecting that we do any AES on
	  CPU as opposed to GPU.
	OpenCL shared SHA256: Optimize memcpy for 30-50% boost of 7z-opencl,
	  plus some device-specific tweaks. An alternate memcpy is defined
	  out right now but it may be better IRL (or once adding some test
	  vectors of varying length to 7z).
	"Enable" the 7z-opencl format in john.conf.
	pdf2john: Unicode fixes, and lots of fixes/fuzz for parsing files of
	  various origins/versions
	MYSQL: Fix a bug with OMP for single-thread, plus some no-op changes
	  that makes for easier testing.
	7z-opencl: Proper Unicode/codepage support.

JimF (657):
	get_source() supporting salts too. Added to crc32 and sapG.
	raw-sha1_li: always store complete (repaired) hashes
	Loads of minor fixes for Sparc (endianness, alignment)
	Sparc_Porting_and_OtherStuff-bleeding.diff
	Use first two salts when benchmarking instead of top one.
	wpapsk get_source()
	Portability_issues_bleeding.diff
	Use our own SHA-2 unless we have it in OpenSSL. This enables all SHA-2
	  formats even for users that only have OpenSSL 0.9.7. This also
	  means we can have the formats as plugins.
	Reflect what SHA-2 we use, in ALGORITHM_NAME
	Enhancements to cryptsha256 (17% boost)
	--list=format-methods[:WHICH] option added
	Updates to the dynamic format
	Fix for disabled dynamic_7 leading to all dynamic >7 busted
	JtR-Bleed-make-generic-fixes.diff
	Jumbo-Bleed-ssh2-and-other-small-changes.diff
	JtR-Bleeding-Linked-in-MMX-fix.diff
	Dynamic-Sha256-addition.diff
	Added numerous types to dynamic. New fake-salt code and format.
	  formats.h version update. pass_gen.pl update
	JtR-Jumbo-dyna-fixes-after-source.diff
	loader.c: Fix for loading bare hashes.
	JtR-Bleeding-Dyna-SHA2-size-fixes.diff
	Dyna-bleed-fixes.patch
	Added OMP, removed a few compile warnings, depending upon compile
	  conditions, oSSL/GMP builds
	Bug fixes for dynamic union crypt_key
	SSE2 support for WPA-PSK. The code was taken and modified from my code
	  in mscash2. They are pretty different, due to how the main
	  format logic is (mscash2 split out just the inner function, this
	  one did not break out the crypt). But they do about the same
	  things. Also, in SSE2, mscash2 BE's the binary data. I do not
	  do that here, since the wpapsk.h is common code to
	  CPU/CUDA/OpenCL, and that is where that functionality is. So, there
	  simply is a call to alter_endianity_to_BE when the results are
	  stored at the end of crypt. There really should be no speed
	  impact, due to this fact.
	wpapcap2john utility by Jim. C port by Dhiru.
	wpapcap2john fixes from Jim
	Here are a couple more fixes
	Implement ldr_sort_salts(), currently hard-coded to only apply to
	  wpapsk formats. In the future we will probably want a format
	  struct entry for format->methods.salt_compare().
	Some porting items. The typecasts are due to void* having an undefined
	  size (on some compilerrs). error C2036: 'void *' : unknown
	  size
	Dynamic: Remove many more of the typecasts, putting them into anon
	  unions.
	listconf.c: Ensure we have a proper version of NSS lib before calling.
	bench.c: Get around a crash in VC (and mingw), in -test=0 mode.
	  These only use clock(), so if the bench is fast, there are 0 clocks
	  used. I simply put a 1 in the time slot, if it is 0.
	mingw port issues
	More mingw port issues
	Another version check for NSPR in listconf.c
	Some warning pasifications
	pass_gen.pl: Support creating WPA-PSK test hashes!
	dyna_17_BE.patch from Jim
	Portablity fixes for VC.
	basename portability 'fix'.
	fix wpapcap2john warnings
	Dynamic bugfix, spotted by new warning in gcc 4.8.0.
	Fixed mem leaks, found by mshell.
	Minor fixes.
	Fix portability problem with "extern inline" stuff in misc.h
	Bugfix for NT format, 32-bit x86-sse.S.
	rar fmt in bleeding (VC), mem leaks, and trailing WS.
	JtR-jumbo-dynamic_1014_fix_non_sse.patch
	Move alloc/free out of parallel region in putty format
	Move alloc/free out of parallel region in Gnome Keyring format
	OMP fixes for FGT & RAR
	JtR-Dynamic_validation_raw_hashes.patch
	JtR-Dynamic_validation_raw_hashes-2.patch
	Re-apply JtR-Dynamic_validation_raw_hashes-2.patch but with some
	  missing stuff added.
	JtR_Bleeding_Dynamic_Salt2_UserID_Salt_Bug.patch
	JtR_Bleeding_Dynamic_MEM_ALLOC_SIZE.patch
	Dynamic_OMP.patch
	JtR_bleed_Dynamic_bare_hash_fix.patch
	JtR-bleeding-dynamic_SSE2_OMP_12_13_fixes.patch
	JtR-bleed-dynamic-OMP-preformance-increase.patch
	JtR-SunMD5-SSE2-scale.patch
	JtR-Dynamic-MMX-Fixes.patch
	Disable OMP for MMX in wpapsk format
	Dyna21-crash.patch
	dynamic-valid.patch
	JtR-bleeding-dynamic-OMP-fix.patch
	JtR-Unstable-crash-fix-dyna_21.patch
	JtR-Bleeding-Dyna-big-hash-fixes.patch
	Portability issues fixed. fork/kill are not standard. They are *nix
	  specific. I have taken it out of VC builds, and also removed the
	  options from DJGPP builds. I would imagine that mingw also
	  would have problems, but I do not have a build env under that
	  any more, so did not add defines for it.
	SHA-256 incorporated into sse-intrinsics.c - and a test format for it.
	Raw-sha-224/256: Use new shared intrinsics.
	JtR-bleeding-SSE2-pbkdf2-headers-v0.patch
	JtR-bleeding-agilekeychain-fix.patch
	JtR-bleeding-encrfs-any-pbkdf2-fix.patch
	bleeding-vcport.patch
	testpara32 fixes for bleeding branch.
	JtR-bleeding-pbkdf2-256-upgrade.patch
	JtR-sha512-pbkdf2-and-aix-ssha-enhancements Conflicts:
	  src/aix_ssha_fmt_plug.c
	JtR_OS_H_improvements-bleed.patch
	JtR_OS_H_improvements-v3.patch
	JtR_Dynamic_statics.patch
	JtR_CC_pbkdf2_sha2.patch
	../JtR_bleeding_Dyna_enhancements.patch
	JtR_Dynamic_1300.patch
	JtR-bleeding-Dyna-add-SPH-Tiger_Whirlpool.patch
	A small patch to get the new rar5 to build under VC
	Enhancement to RIPEMD
	Dynamic enhancements
	Dynamic speed increases, RIPEMD speed up and new Dynamic functions
	missing parentheses in dynamic_fmt.c
	JtR_bleeding_pbkdf2_sha512_bug.patch
	JtR-bleeding-regen-lost-salts-rewrite.patch
	JtR-rules-avoid-double-include-char-classes.patch
	JtR-bleeding-defines-cleanup.patch
	small changes to regen-salts
	SHA512 into intrinsics, normalizing SHA1 SSE2i interface to be same as
	  SHA2
	SHA512 into intrinsics
	removed password len restrictions from pbkdf2_hmac_sha*.h files
	improved speed of scrypt, about 2x
	more changes to scrypt and correct valid
	missed 2 files on last scrypt update
	SSE added to raw-sha384/512 and some fixes to other raw SHA formats
	SSE added to raw-sha384/512 and some fixes to other raw SHA formats
	use a var, to allow for easier step debugging, to not have to walk
	  into the longcand function
	some small changes in SSE SHA2 code
	fixed bug in recent changes, if compiling in oSSL mode
	Added OMP to raw MD4 MD5 SHA1 formats
	remove OMP in MD4 MD5 SHA1 formats if built with 32 bit mmx-*.S
	  file(s)
	Merges some of the macros roti now handles ROTR as well as ROTL.
	  Removed some if XOP defines, since we now have the cmov instruction
	  memicked in non XOP builds
	added aix-ssha* pbkdf2 hashes
	added 125 byte password self tests (max size). Removed old oSSL
	  commented out code. Fixed issue where a SHA256 constant was used
	  instead of a SHA512. Should have caused no crashes, since the 512
	  constant is smaller, but waste of memory
	Use code from pbkdf2_hmac_sha512.h. 2x speedup for oSSE, and gets
	  about 4x+ speedup for SSE2 (XOP gets more)
	Allow the oSSL pbkdf2-sha* code to also be included in SSE2 builds.
	  Now pbkdf2-hmac-sha512_fmt_plug.c can fully use the header
	  functions, even when built with SSE. No reason to keep the internal
	  hmac function in this fmt file any more. It was used in cmp_exact.
	Added max length password and salt to test cases. Fixed serious bug,
	  doing strlen on salt, vs using salt->length. The static salt buffer
	  is not memset (probably should be) in the get_salt, and thus, a salt
	  record 'can' have extra crap after the salt. Does not hurt anything
	  AS LONG AS you only look at salt->length amount. The recent patch
	  to use pbkdf2_hmac_sha512.h file lost the usage of salt->length and
	  instead used the strlen, which was bad busted. Found when a shorter
	  salt followed a longer salt in self tests. Things started to fail
	  unexpectedly, and were hard to track down as why they were failing.
	added new file to help within pass_gen.pl
	Fixed compile issue in XOP from recent changes
	added loop count to sha*Crypt formats
	Added an ifdef in format.c to allow development work to temp turn off
	  validations. Found useful in testing theories in format changes,
	  and testing speed, without having to fully get the format working
	Added SSE intrinsics to SHA256Crypt. Still more work to do, but
	  currently this is working and faster
	updated the sse-intrinsic .S files, removed memdbg.h from cryptsha256,
	  and fixed possible overwrite isse, and fixed rawSHA256_ng_i code
	  that eliminates final crypt adds. We were using SHA512 IV's and not
	  SHA256, boom
	sha256-crypt: Turn off SSE for OMP builds, until OMP crash bug found
	raw-md5: modified OMP threading computation, to hopefully improve AMD
	  scaling
	Added max length passwords and max length salts to all values in
	  dyna_preloads. Also fixed numerous items within pass_gen.pl which
	  were for building dynamic hashes
	Reverted 01a920146, raw-md5 OMP scaling attempt
	Added max length passwords etc to dynamic in dynamic.conf, Updated
	  DYNA docs and a fix or 2 in pass_gen.pl
	generic was broken, needed to use salt->length and not strlen of salt
	Added SIMD code to SHA224/256 within Dynamic, and started some
	  significant core changes to dyna, to help use SIMD code for dyna
	  large formats
	fix compile problems on x64 builds
	moved the rounds= #define into the header
	Major modifications to dynamic. SHA1 re-written from ground up. Now
	  uses 'flat' input buffer method, the same as SHA256. This improved
	  perforamnce of ALL sha1 formats, except sha1() (raw-sha1). That
	  format lost 15% speed or so, due to not being able to use
	  specialized key loader. However, it was already 20% or more slower
	  than the hand tuned raw-sha1* formats, so losing this speed race
	  within dyna is not a major concern, when all other formats that have
	  more complexity DID increase in speed, some up to 200%. Also, we
	  are NO LONGER limited to 55 bytes on SSE for SHA1. This patch also
	  removes the depricated formats dyna-27 and dyna-28. These were
	  depricated, and only ran in sse builds, and were 20% slower than
	  cryptmd5, so were not of any use, and had a LOT of code spacer (1000
	  or more lines of code), and that code was VERY buggy. It simply has
	  been removed totally
	increased max length of non MMX password input from 80 to 110 bytes.
	  all formats other than MD5/MMX layout have been increased. Also
	  formats NOT MMX safe will get 110 byte inputs even when the build is
	  an SIMD build. Before, these subformats were also honoring the 55
	  byte max length, even though they did not need to. Also fixed a bug
	  in parser which was not computing test counts properly if a TestM=
	  or TestF= was being used.
	Added large hash FLAT sse code for MD5/MD4. Also added some native
	  FLAT format md4/5 to dynamic, and started adding these as 2nd re-gen
	  hashes for dynamics where the older mixed layout is faster. The new
	  FLAT is not limited by short max length passwords
	new dyna conf file missed, and some problems with dyna generic builds
	missed checking this new dyna conf file in
	failed to build in OMP builds
	Fix build problems on XOP systems
	Fix build problems on XOP systems
	increased PW length of mscash2 from 27 to 125 and username length from
	  22 to 128
	OpenCL mscash2 password length bug fixed, and PW length increased to
	  125 byte JtR max length
	mscash2-opencl: fixed bug in new 125 byte password code
	Changed dynamic format names. Moved the expression to the algorithm
	  section
	fixed algorithm name
	Portablity issues, VC, and some other fixes
	add some useful dynamic sub-formats
	Better OMP for whirlpool. Use oSSL Whirlpool functions if oSSL
	  version high enough (much faster)
	pass_gen.pl, add a -tstall switch. If that switch is used, then
	  it calls all of the functions, crypting 'password' with each.
	Fix debug builds for dynamic formats with TestD= test cases
	Cygwin64 make target!
	Cygwin64 / MinGW64 self-test fix
	#ifdef out some select() stuff in tty_getchar() that was used for
	  Cygwin but isn't needed (anymore?).
	Update to hi res timer code.
	Add a build target for win64-cygwin-x86-64-opencl and drop -static
	  from Cygwin64.
	Dyna fixes.
	Band-aid for Dynamic 1300 in generic build. Closes #361.
	VC fixes
	scrypt fixes
	Add Jan Starke's rexgen cracking mode (depends on external library,
	  so default disabled in Makefile)
	regexp now possible w/ wordlist
	Dynamic salt fixes, salt sort and enhacements to raw2dyna
	Dynamic "flat buffer" formats salt length bump
	Fix for the new AESNI stuff vs. Redmond Operating System.
	Fix VC build
	Rexgen fixes.
	More rexgen fixes.
	Rexgen fixes (patch 3).
	Memory debugging stuff.
	add missing "memdbg_defines.h" file
	Rexgen update 4
	JtR-bleed-rexgen-updates-5.patch
	pass_gen.pl update for dynamic 2000's formats
	mmap() fixes for Windows
	Disable Kerberos 5 18/23 formats for Cygwin
	JtR-all-pass_gen_pl-2.patch
	HMAC-sha256, allow longer salt. Original patch provided by Colm
	  O'Flaherty but this is reworked for current tree.
	Autoconf, initial work.
	JtR-autoconf-2.patch
	JtR-autoconf-3.patch
	JtR-autoconf-v3.patch
	JtR-autoconf-v3a.patch
	added use icc-S intrisic files fixed code in md5.[ch] and md4.[ch]
	  where they were not detecting we had oSSL. They were always
	  compiling the john_md5 stuff, even if ssl was there. modified
	  x86-64.h and x86-sse.h (arch.h) so that they include autoconfig.h
	  AND started to comment out things hadled in the autoconfig.h file
	Modifications to sha2, to hide name clash problems, and MANY BE bugs
	  fixed
	Starting work on getting sparc working with autoconfig
	Added ability for setting env var CONFIG_MAINT=1 to re-enable the
	  auto-reconfigure logic in Makefile. Normal users will never set
	  this, so will NEVER autoconfig. Developers working on configuration
	  scripts can set this env var, to make sure they always have proper
	  changes in autoconf handled properly
	Added better logic to SSEx code probes. Added a couple comments on
	  some should be done stuff (zlib and openssl). Fixed LITTLE_ENDIAN
	  setting logic, using proper variable
	Updated CPU probes again. Looked at compiled ASM this time, and I
	  think this is it
	Missed updating configure
	Added rm -f to arch.h before we link it, so that it will be ln-s
	  properly.
	Stripped out most of the targets from Makefile.in Now Makefile
	  will not contain the fat targets which we had in the original
	  makefile. The original makefile is still present for these fat
	  targets. make --file=Makefile.orig target will still work,
	  producing the output.
	Added a tiny comment, to list end of the default target. Let it
	  'show'
	Allows this to compile on sparc (generic sha2). It still fails, but
	  now compiles
	Still had a few alignment issues to clean up
	Changed HAVE_PCAP to be a proper define, in the makefile
	Changes to makefile for cygwin/mingw building. Also added -DAC_BUILT
	  listing this was an autoconfig build. We will have to edit c and .h
	  files to allow them to do special things for non-autoconfig builds,
	  i.e. Makefile.orig builds. Not all of that work is done yet, but
	  now we CAN do it
	Got make -f Makefile.orig working properly. autoconf stuff still
	  works properly also.
	added size checking for all common elemental data types. Changed the
	  ARCH_INT_GT_32 check to use this information
	Revert changes to makefile
	Try to ignore Makefile in src, by explictly specifying that one
	src/Makefile as a true file (cp Makefile.orig Makefile). Trying to
	  get rid of git seeing Makefile, even though it is in .gitignore
	added config.cache to .gitignore, and set Makefile back to a ln -s.
	  NOT SURE HOW to fix Makefile to have something there, BUT be ignored
	moved x86 special logic into a macro. PUtting this into macro cleans
	  up configure.ac, AND it makes it much easier to start adding logic
	  for other systems, and then within configure.ac, simply have a
	  switch on the system type, to call the right one. Also, moved the
	  ax_lang_compilerr_ms into a macro to clean house a bit, and a few
	  other small cleanups
	Moved logic to build fmt_*.h and john_build_rule.h from the
	  Makefile.in, into configure.ac (configure). Also, these files are
	  NOT cleaned up by a make clean. They are cleaned by a make
	  distclean
	Removed last legacy target for plugin stuff, it was not needed
	Found a bug, where a john.local.conf was not loading properly, if last
	  line did not contain \n char. Now, adding the blank line and the
	  comment in john.conf AFTER the include of john.local.conf, it does
	  not matter. JtR will load the john.local.conf file no matter what
	  it ends like
	Missed a need alignment core. Hopefully we are all 'good' now
	Fixed BE failures
	sha1 and sha512 were not quite right. Rewrote pbkdf2-hmac-sha256.
	  The inline code was a nightmare. Now all of these should be BE safe
	Added AVX2 probe logic to x86 detection
	The C source for apple was busted. The closing } was in the wrong
	  place. Also reduced some line counts in configure. Configure not
	  checked in, because I have another change coming also in a minute
	Changed the openssl probe from simple lib probes, to using
	  PKG_CHECK_MODULES. Now we get proper cflags and libs required for
	  oSSL. This depends upon pkg-config 0.9.0 being installed. This now
	  [almost, some includes and unrarppm.c still need help] allows my
	  sparc box to properly work with ./configure && make
	This file goes with prior commit (the moving oSSL logic into
	  PKG_CHECK_MODULES changes)
	Fixed BE bugs in these 3 formats. Tiny bit hackish, but since they
	  were 3 combined formats, it sort of had to be that way.
	Some ifdefs. YES, this breaks (possibly) the rar for sparc. But
	  without this, the compiles HANG on this file. We can fix it
	  properly when we have time. Right now, lets at least have this file
	  fully compile. As a bonus the self test still passes! Do not ask,
	  but it does
	removed legacy stuff, which was causing an unused function warning on
	  SSE builds. Legacy format did not do SIMD code and needed this flag
	still had a core in this one on BE systems
	Fixed BE failes for dyna_17 and phpass
	Fixed BE bug in format
	Fixed BE bug in format
	Fixed BE bug in format
	Fixed BE bug in format
	Fixed BE bugs in these formats
	Fixed BE bug in format
	Fixed BE bug in formats
	Fixed BE format. This one sucked, due to only 2 bytes not even
	  containing enough to byte swap. NOTE, pbkdf2's have to end on
	  'even' wordsize for the pbkdf2 so we can swap them
	Revert prior hack. Now, on some OLD sparc gcc compilers, this can be
	  built with -O0, and it builds. This still does not find the
	  problem, BUT we can not turn the proper code back on on a sparc
	  system in general
	Fixed BE problem with this format
	Fixes problems with BE OMP in this format
	Removed the LIBS = for rexgen. This was blowing any install that has
	  liblibrexgen.so, and causes almsot ALL ./configure compiles past
	  that location to fail, and it gives an unbuildable end result
	Fixed for andriod FDE format, AND got it working on a BE system
	Fixed BE problems (this one SUCKED to find)
	Alignment not assured, but needed to be word sized
	Added new utility macro m4 file Added macro to detect usablity of
	  gcc command args. Now CFLAGS extra args, OPT_NORMAL and
	  OPT_INLINE flags detected using this macro. Moved the include
	  and lib path resolver code into this utility class Added x86_64
	  and x86 lib path into possible OpenCL lib paths (after we detect a
	  32 or 64 bit build) Fixed --disable-openmp still showing
	  openMP=yes on status. Fixed sometimes blank GMP on status
	rolled back this change. Having a CPU that does not align, is not
	  critical. Most aligned needed was in MMX_COEF. We will have to do
	  this on a case-by-case basis, and when we DO have alignment needed
	  on systems which do not support aligned.h, then we will have to do
	  the work in other ways.
	With the order change of ossl, I was getting horrible failures and
	  cores on cygwin. This corrects the problem. NOTE, we may have to
	  readress this issue, this may not be the final solution
	changed some test logic. Was not testing right on all bash
	Added logic to check if the GCC argument testing code actually works.
	  If it does not work, we emit a warning, and revert to using only
	  -O2. Some additional cannonization of sh test clauses. Renoved
	  quotes from RHS, if they are only a small constant.
	Commented out old CUDA logic in Makefile.in. Magnum, please validate
	  we can remove this, and then remove it
	Added logic to add defines to CFLAGS and ASFLAGS for CYGWIN64
	added win32 .exe to ignore
	use x86intrin.h exclusively in XOP probe in configure script
	Issues found in BE builds
	Pacify cygwin warnings
	Removed malloc/realloc which put BAD code out there when we have
	  configure compiling problems. Removed openssl header and linb auto
	  checks, moved them to their own macro and then put a commented
	  call to them in the non pkg-config probing of ossl Removed the
	  bogus check using -Wbogus Sparc compiled that one, so spurious -W
	  warnings might be passed in. The -f and -m seem to trigger the
	  compiler to sqwak and not compile (which is proper).
	Added code to add AES into openssl, for the aes/aes.a IF oSSL does not
	  have aes. This was tested on my sparc system. It has oSSL, but
	  not aes. Now o5logon format works, and builds properly
	added oSSL header comment to the CBC128 functions borrowed for AES
	Set FULL_UNROLL on by default for AES. Now same speed as my oSSL
	  build
	CFLAGS_EXTRA was needed, to get things like the defines for Cygwin64
	handle string.h/strings.h wherever strings.h was being used. This is
	  now AC proper code
	Added lower level AES functions to aes/aes.a These are oSSL
	  compatible. NOTE, we need to do this for the SIMD code
	Updated the oSSL function checks This should work properly when a
	  system has pkg-config with some very non-standard oSSL settings.
	  It still should work if not using pkg-config, by doing the search
	  for the lib ssl and lib crypto.
	added aesni asm for cygwin32 and cygwin64 builds! about 180% speed
	  improvement to o5logon
	added the type string for WHICH type of AES code is being used. We
	  have to set this in the init() function, getting the algorithm
	  element, adding this to it, and then resetting it. This is
	  because this is a RUN TIME check, not a compile time check
	changed AES type strings
	changed logic for cygwin/mingw .exe vs ln -s building of *2john
	  helpers
	added quotes to AC_SUBST variables which might contain spaces. In
	  the AC_SUBST for CFLAGS_EXTRA we now pull in existing . Now with
	  this, a user can pass in CFLAGS_EXTRA, get those put into CLFAGS,
	  and NOT lose the configure handling of the CFLAGS variable. This
	  may help on some systems that are not cross compiling, BUT which
	  need to have some unique CFLAGS data entered. NOTE, I do not
	  know how to add this to the help screen. That would be VERY nice to
	  inform the users of. Also, we might want to add ways to do ASFLAGS,
	  and LDFLAGS without messing with the REAL variables and having
	  configure not auto probe them.
	Correct fix for FreeBSD. Created a new m4 class for system specific
	  probes. Moved cygwin stuff here also, and streamlined cyg64
	  checking (no compile needed
	the emms kills ETA on cygwin. I am not sure why it was added, but I
	  bet it kills MANY other system's ETA
	Added 64 bit file handling for 32 bit systems. Moved 2 functions from
	  misc.[ch] into jumbo.[ch] which are new files
	removed spurious execute bit from these files
	Only do the LARGEFILE64_SOURCE if compiling 32 bit versions of these
	  OSs
	added warning for 32 bit fseek/ftell
	was not building on my sparc system, with ossl. The flags were not
	  there any more.
	Some configure tweeks. aes Makefiles not quite right, moved some
	  system_specific stuff around in the macro
	Added host os to the john BUILD string
	64 bit on 32 bit compiler changes, required for solaris.
	  fopen64/_fopen64 options added. Also, _POSIX_SOURCE can NOT be set
	  prior to stdio on sparc if we expect any 64 bit file mechanics to
	  work properly
	Patch needed to compile in VC
	Fix for open issue of TS failures. What was happening was the
	  length of the input buffer was being cleaned, BUT the input buffer
	  was left dirty. This would cause subsquent runs to fail.
	  Since this is a MMX_COEF build, we needed to keep these buffers
	  clean, and losing the length of how much has been dirtied was
	  NOT a good thing.
	Some fixes found in my alias code project. The alias still has work
	  left to do, but these bugs fixes can be pushed now
	Fixes problems with krb5 not being detected and not showing in status
	  of configure run
	Added AC_BUILT define wrapper to 32 bit fseek warning
	Made Sybase-PROP BE compatible, AND changed non-static functions to
	  static or made them feal_ specific
	set the krb5 check back to using AC_SEARCH_LIBS, instead of 2 separate
	  lib tests. Now we also ONLY set HAVE_LIBKRB5 instead of 2 of them.
	  This should make incorporation fo HEIMDAL easier, I hope
	Still more krb5 issues (when krb5 was found, it was not showing yes
	Fixed bug where OMP builds (x64), were failing with multiple defined
	  DES_bs_crypt functions
	Fixed problems building with legacy Makefile.orig
	Added SKEY algorithm into JtR as native code.
	changed status to list skey now being built using internal code
	Overflow bug fixed, now using temp var for crypt results. Using
	  unsigned int as parm type, to work around silly compiler warnings.
	added the 4 SKEY formats
	fixes for SKEY formats
	Improved SKEY jtr native speed about 20%. Still just oSSL, but faster
	fully handle 64 bit files, using autoconfig functions found (if using
	  autoconfig). If not, then origina fseek/ftell used. Also, we were
	  calling free on a mem_alloc_tiny object (that would be a core)
	Needed to add jumbo.o to luks2john. Only needed for some builds, but
	  is needed
	bare minimum MinGW port to build john. There will be more to do
	moved sleep() for Win32/Mingw into jumbo.[ch], and added sleep() to
	  autoconfig
	"Moving non-portable functions into AC detection. Handle !HAVE_LIBDL.
	  Move things from misc.[ch] into jumbo.[ch], and use AC, and non-AC
	  detection logic. There is still a LOT of functions to do. Some
	  are still not even in autoconf.ac. I simply did not want this patch
	  to grow too large. Better to put it in now, than later. Also,
	  there were several targets in Makefile.in where -DAC_BUILT was not
	  being set. Now that we are using more AC logic, we NEED to know
	  that. There was also a failure on non-standard path for one util,
	  needing openssl cflags
	wow, huge problem in internal strcasecmp, BUT there probably will not
	  be many systems using that code
	Fixes legacy builds
	allow wildcards. I use config-cygwin.cache or config-mingw.cache in
	  the same dir
	Bug fixes in the setenv jtr built function
	Allow disable usage of pkg-config
	Moved a few more non-portable functions into jumbo.h, and a few blind
	  function defines for _MSC_VER from misc.h
	Added check for -ldl OR windows.h and if neither, then do NOT add any
	  GPU code. There is a warning emitted in such case for intel chips.
	  Also changed common-gpu.c to properly use the WINDOWS_H code. This
	  still should work on Makefile.orig, since HAVE_LIBDL is defined for
	  GPU targets
	Fixes for HAVE_LIBDL or HAVE_WINDOWS_H for work. Also added to
	  plugin.c
	Set AC_BUILT to 1. Also, added @PTHREAD_CFLAGS@ to uaf2john. It would
	  not link on mingw without this
	Wrapped all unistd.h in wrappers. Made a wrapper for other headers
	  (fcntl.h, etc). Switched to using -std=c99 in MinGW, which
	  eliminates most of the printf formatting issues, BUT which caused
	  some porting issues
	Reduced this OMP_SCALE a lot. This was taking a LONG time to run even
	  -test=0
	Fix for legacy build issue with LLd
	Fixes for broken krb5 systems, like cygwin. Removed the not HEIMDAL
	  defines. Changed ifdefs to #ifs for some HAVE_XYZ defines. WE
	  should do that across the board
	added lbz2 to gpg2john. Code was there, just enabled it in autoconf
	Removed 32 bit MMX/SSE asm. I still have Makefile.orig and dynamic
	  left to do
	Added logic to fall back to MMX, prior to x86, IF SSE2 native test
	  fails
	Changes needed to properly build a MMX, now that 32 bit mmx.S are gone
	Reduced the OMP scale.
	Removed legacy mmx.S code, mostly from dynamic formats
	This should be the last file needed for the 32 bit *-mmx.S removal
	Removed last traces of mmx MMX_COEF code. This was causing serious
	  problems in dynamic, and other formats. Even things were having
	  probems building. NOW, DES/BF, etc still use MMX, but all MD[45],
	  SHA1 do not
	Renamed Makefile.orig to Makefile.legacy. The .orig was a BAD idea,
	  as this was a special extension and prone to be overwritten and lost
	Made a little more robust. Had some old projects with HAVE_REXGEN
	  defined. By adding this simple logic, it will work either with
	  HAVE_REXGEN or HAVE_LIBREXGEN being defined. It will still unset the
	  logic IF the lib is found and too old
	small warning removal for MMX build code
	pkzip is better, but still not 100% fixed
	fixed pkzip format (old pkzip). Now we store both crc and timestamp
	  checksums, and test BOTH inside the format. If either matches we
	  assume the checksum is 'ok'. There will be a few more false
	  possitives, BUT there is no other way, since there is no idication
	  of what zip compression tool built the zip, and WHICH of the 2
	  fields were used. Also fixed bug where if the decompressed item was
	  128 bytes or less, we would fail
	Fixes bug #245. The fix was also done in some of the fix of prior
	  commit
	fixed many warnings from cygwin build, due to this function NOT being
	  defined in a header, even though it is exported and usable.
	changed if statmenents to allow dynamic to properly use OMP
	Removed MMX_COEF==2 logic from dyna, and output sph_ripemd for the
	  ripe_md functions
	Not a 100% fix for dyna OMP, but shows what MUST be done. I can fix
	  this, I just have to add some logic to detect pure MD5/MD4/SHA1, and
	  make appropriate inc computations. WE ALSO have to deal with para
	  sha2 formats. The formats are ok if they evenly divide the para
	  used. THat is why the SHA1_para == 1 worked fine for MD5_PARA 3, but
	  SHA_PARA==2 would not
	Fixed issues in Dyna OMP, for SSE types. Now all builds should be OMP
	  happy
	Got the problematic dynamic formats working on OMP builds. These are
	  the ones that can NOT be done with OMP. They now are built, but run
	  without OMP, while all the other dynamic DO run with OMP in the same
	  build
	Removed code that was commented out (OMP run of non-OMP-compliant
	  formats)
	2 new dyna functions, 39/40. net-md5 and net-sha1
	Fixed bug in new formats
	Added a hybrid fat/thin dynamic into the net-md5 format. All salts
	  less than 230 bytes are handled by dyna. The others are handled
	  by the original fat code in net-md5-fmt.c
	fixed silly compiler warnings
	Bug fix for #644
	make sure these dyna formats are allowed to use max length passwords
	  the hash will allow
	changed prepare to NOT add 5768U and 5768Fx if the data is not valid.
	  We were making invalid hashes pass valid by doing this before.
	This function should also be calling prepare
	rolled back prior forced prepare change. Added code to output user
	  name IF it is seen in the fields. We may want to do this for other
	  fields also
	If salt bytes had high bit set, then char would sign extend, and put
	  out fffffff0 instead of f0. Typecasting to unsigned char for
	  each char avoids the sign extend
	Added hybrid partial thin Dyna_40 to net-sha1. Changed net-md5 to
	  show dyna_39 in algorithm. Changed net-md5 to use a non-numbered
	  variable (made it easier to port net-sha1 to dyna).
	Added proper prepare to haval. Also split up to have 2 valid
	  functions
	Added matching test string as we have for the raw hashes
	added prepare function and matching test string to these formats
	Added prepare where needed, multiple valid functions (where needed),
	  and duplicate test cases (where needed)
	Some changes spotted on sparc system
	Added code to create FULL passwd compatible strings in
	  -list=format-tests. These formats now generate these types (GPU
	  formats not tested): dynamic (15,35,36,37,1015,1401), MSCHAPv2
	  mschapv2-naive, nethalflm, netlm, netlmv2, netntlm,
	  netntlm-naive, netntlmv2. They probabaly should be retestd
	Changes for msvc building
	Additional test on dynamic thin encoding
	Added longer salts to net-md5/sha1 formats
	Some more VC ports
	Make sure when we remove HEX from dyna, that we do NOT remove it for
	  unsafe characters (line feeds, colon, etc). This is for .pot display
	changed utf-8 encode size for UTF_8 formats
	Added call to prepare to .pot file loader
	Rolled back f89acf9 and added split forwarding into dyna thin formats,
	  so they call dynamic.split when needed
	re-wrote length function to deal with 4 byte utf characters in a JTR
	  correct manner
	Enable 4byte utf-8 characters. Surprisingly, I saw a very slight
	  performance gain (in -test mode)
	Handle 4 byte utf-8 characters #685
	prepare normalize short hashes, part of bug #650
	Cannonized MSCHAP. The cannonical format is the short format, with no
	  extra fields
	removed dependancy on openssl
	Removed openssl dependancy
	Fixed long standing memory buffer overflow issue, listed in bug #690
	zip-aes: This format did not actually work
	zip2 format. #434 #691 Removed FMT_NOT_EXACT. Now fully detects
	  passwords.
	Comment chagnes in zip2john, and OMP tuning in the format)
	Removed PLUGFORMATS_SRCS from makefile. This was a legacy requirement
	  for knowing when to make fmt_structs.h headers. Now we do this in
	  configure, so this variable is totally unused (and HUGE). This is
	  cleanup
	Better information given for buffer over/under flow issues. If block
	  listed as not being freed, then a memory dump (some of the start and
	  some of the tail of buffer) will be output. This helps track down
	  just WHAT was the problem, and is helpful, especially when a COMMON
	  allocation function was where the data was allocated.
	rexgen is now disabled by default. If the user wants it, and has a
	  working version, then --enable-rexgen is required to get it used
	added defined simple dynamic formats to the -tstall function
	added split to static linked methods in dyna thin formats. Added
	  FMT_DYNAMIC to all dyna thins. Did some other work on dyna thins to
	  make sure they were linked properly
	cannonical issue (embedded nulls). Bug #705
	document trailing WS in dyna salt can be a bad thing, where core JtR
	  will strip it. raw2dyna now detects this, IF the user uses it
	Fixed problems with thin dyna. Should fix #704 and corrects 6cbc306.
	  6cbc306 was needed, but moving the function linkage out of the thin
	  formats init, and always calling dynas own init was wrong. This is
	  now corrected
	Removed Gladman HMAC code, choosing a faster saved state model, like
	  we do in PBKDF2
	wrap the intrinsics.h file in #define fence posts, so it is only
	  included one time
	Modified pbkdf2_hmac_sha1.h to also do PBKDF1 algo, and modified
	  crypt-sha1_plug.c to use it
	Added SSE2 logic to crypt-sha1. Proper salt handling in crypt-sha1 and
	  fixed the get-iteration function. Removed crypt-sha1_plug.c that
	  code was not needed at all
	added copyright, and changed algo string from PBKDF2 to PBKDF1
	  (copy/paste bug)
	Fixed crash bug
	better validation. Salt up to 64 bytes. use strnzcpy where needed
	added Local config processing from john.local.conf. The documentation
	  was changed also, and configure will create a commented skeleton
	  file. Any non List. section can be handled in this way, updating
	  the param values to our local value. This keeps the user from having
	  to edit the john.conf file, which is a BAD thing to do, since it is
	  owned by JtR developers and user changes get smashed
	Added code to handle HSRP hash, and removed Crypt::PBKDF2, by writing
	  better inline pure perl PBKDF2-hmac code, and using it
	Added -genall and -rgenall functions
	fixed a bug in LM and mschapv2. Compute rand salts by hand for all
	  Authen::Passphrase stuff, so that -nrgenall logic works. Added
	  non-rand for -nrgenall into the random generation functions. This
	  version now fully mathces (regression test), my version that drops
	  Authen::Passphrase usage.
	Removed dependancy on Authen::Passphrase
	added keychain to pass_gen.pl, and generated some extra test strings.
	  NOTE, the data which has been encrypted is the EXACT same data, it
	  is just done with differnt password, salt and iv values
	2 pass_gen.pl updates. Added additional encoding tries in LANMan
	  function. setup_des_key now generates a deterministic key,
	  setting all parity bits to 0.
	pass_gen.pl: Added word_encode as param #2. Changed output on
	  messages to STDERR
	Updated to v1.20
	mschapv2: improved speed of cmp_exact by elimination of very costly
	  call to binary() for each found word
	mschapv2 - ntlmv1: Fix to cmp_exact needed to work for both formats
	pbkdf2-hmac-sha256: bug fix. prefix check did not work at all
	pass_gen.pl: some name normalization. Fixed salt smash bug in pbkdf2
	  code. added pbkdf2-hmac sha1 and sha256
	pass_gen.pl name normalize for dynamic (now dynamic_xxx works for
	  all)
	pbkdf2-hmac-sha256 validation bug. Same in the CPU format
	rar5 SSE: Work started. This code change now uses
	  pbkdf2_hmac_sha256.h It does NOT yet do SSE2, but is starting to
	  set things up. NOTE, we will have to do the last 32 hmacs
	  outside of SSE2 (probably)
	Got RAR5 working with SSE2. NOTE, OMP is broken. I have looked, but
	  see nothing wrong
	rar5_fmt: Found my OMP bug (stupid me)
	pass_gen.pl: fixed sub name broken by 742f99c
	Dyna: Some debugging logic, dealing with seeing what was going on at
	  setup time for split
	net-md5/net-sha1: Fixed so they properly process dynamic_39/40 format
	  files
	net-sha1/md5 still did not properly handle dyna_39 input files
	salt() self_test for proper cleaning
	fixing salt() not properly being cleaned. Many formats to go
	fixing salt() not properly being cleaned. Many formats to go
	fixing salt() not properly being cleaned. Done with Cygwin64
	Mozilla format: was getting memory overwrite error. Not sure WHERE it
	  was, but it's gone now.
	krb5-18 has salt non-clean on ubuntu-64
	formspring, proper binary size and binary/salt align for dynamic
	Fixed binary size, binary align, salt size and salt_align for all
	  dynamic thin formats
	a few MSVC specifc changes
	Fixed memory overwrite bug
	a couple changes to memdbg
	bcrypt_pbkdf2 portability issues
	RAKP: fixes the pre-clean buffer seen on sparc #763
	sha1crypt: BE fixes, #763
	hsrp: fixed BE problems #763
	sha1crypt: small fixes to BE code
	rar5: BE fixes for #763
	mozilla: fixed comment
	config.c: fixed bug #767
	Config.c: bugfix for last change. appends option properly, and works
	  with an empty section without core
	crypt: fixes bug #779. Adjustments made for crypt format, to properly
	  work with subformat or salt being passed in.
	First draft of dynamic salts. Inserted into zip format. Not used yet
	  by John core processing
	Fixed warning about salt alignment issues
	dyna_salt. zip format now compares salts properly
	dyna_salt Fixed possible bug, if salt1 size was larger than salt2
	dyna_salt: Made a fmt_default_salt_hash specially for dyna_salt
	  formats
	dyna_salts: added fmt_self_test salt smashing logic for dyna_salts
	VC bug, strdup defined for memdbg builds was undone by this define
	dyna_salts: added cleanup of salts dynamically allocated
	dyna_salt, added defines for easier debugging
	rar: added dyna_salt code. Also removed 2 unneeded vars from salt
	  struct, filename and pos. They are temp vars
	rar dyna_salt size problem. Stupid bug
	rar2john: Removed static sized HUGE inline buffer. Now it is
	  variable, and can be controlled on command line. For -p type 1 files
	rar2john: fixed overflow and logic that would not find values if
	  maxinline set too small
	cracker.c wrong data type used. Both linux and Win32 man page lists
	  clock_t as type
	dyna_salt. Use 4 param COMP_SIZE macro
	dahua: removed warning, properly typecast char* to int, and just use
	  single isalnum function/macro to do the work
	rar_fmt: removed numerous warnings, and added comments where we can
	  not handle large file size
	legacy makefile needed dyna_salt.o. Fixes #807
	cygwin-64 Makefile.legacy build fix
	dyna_1300. Fixes #786
	Wrote myself some TODO notes. All set length function may need to
	  clean buffers for md5_go builds
	rar2john: added trivial getopt for VC
	dynamic_format: Bug in MMX raw md5 code
	getopt: Added a missing_getopt.[ch] set of files for sys without them
	msvc: getopts ports, many external processes now compile also
	correction of 339052e and getting #825 working. Prelim and not the
	  final fix I want, but better
	dynamic: finalized #825 fix
	net-md5 handle core for --skip-self-test. #828. Bug much worse than
	  just the skip-self-test case. It could have given many false
	  negatives
	net-sha1 handle core for --skip-self-test. #828. same bug as net-md5
	oracle: Correct max length for user name
	oracle: increased to 30 character user name
	oracle: added a user name length manifest, to clear things up a bit
	opencl pbkdf2_sha512: removed warnings about using char values in
	  array access and operations
	opencl-hmac-sha512: changed typecasts to ARCH_INDEX calls
	dynamic fmt. pure comment change
	dyna salt. debugging flag was in wrong place.
	common-opencl use ARCH_INDEX for char value to avoid warnings
	dyna_salt fix (memleak) in opencl formats
	pass_gen.pl: added cisco4, and added hooks for cisco8/9 when I find
	  out how to do them
	pass_gen Added cisco8 and cisco9 hashes
	cisco8 hash added to CPU format
	cisco8: added to GPU. Fixed a few things on CPU side also
	pass_gen: added scrypt and django-scrypt hashes
	oracle8, trying to correct crash on travis
	oracle8, bug in last push
	memdbg: correct 64 bit issues. make memdbg_extra NOT be default
	pbkdf2_hmac_sha256: Travis fix (I hope)
	pbkdf2_hmac_sha256: try again, Travis (my last try)
	cisco8: prepare, no need for allocation. Flat static buffer is just
	  fine
	memdbg: stop huge error dumps. Also catches crossed pointers (infinite
	  loop), and shows start of memory
	cisco9: Modified scrypt_fmt.c to also handle cisco9 hashes
	pure text formatting changes
	escrypt: use functions from JtR memory.c
	removed a dupe comment line added in some prior checkin
	memdbg: had OMP commented out. Fixes #843
	pass_gen.pl: removed scrypt include from global, and put into subs
	makefile.legacy: Added OMPFLAGS to link for extra programs, since
	  they link memdbg.o built by john build
	Numerous files, removed trailing whitespace
	base64 conversion changes. Only minimally hooked into Jtr right now
	removed execute bit on base64_convert source
	scrypt, fix stack smash after base64_convert changes
	base64_convert: adjusted some memory size values
	memdbg: ex mode, fix for #843
	base64_convert: changes buffer size logic. Added tests for overflow
	  logic to exe file
	scrypt: added ScryptKDF format, #368 fixed
	snprintf: Fixes #851
	scrypt: allow scrypt hashes built with more than 32 bytes
	base64_convert: Enhancments and bug fixes. Added flags to contol
	  processing
	base64_convert: missed flag
	base64_convert: missed changes to opencl
	oracle: fix crash on garbage file
	scrypt: fix #852
	SKEY: valid() must pass checks in salt() also
	base64_convert: full pass test suite. NO memory allocation required
	  any more
	base64_conv: added len functions. Added mime with dot handlng. Removed
	  inline base64 code from scrypt and pbkdf2-sha256 formats
	Fixed broken dyna40 as required by 01c44fd
	dyna40 removed commented out broken hashed
	net-sha1: needed to extend plaintext length
	oracle: Partial fix for names > 16 <= 30 bytes
	pcap2john: merged all pcap files. #838
	cleanup of pcap2john.py
	pcap2john: fixed var bug, commented out a couple for now
	pcap2john.py: all handled now. Exceptions caught and ignored
	configure: wpcap lib added to get cygwin working with pcap
	pcap python, moved orignal files to unused
	memdbg: moved from targets in Makefile.in into configure --enable
	  values
	base64_convert: added flags to converts and flags to command line tool
	pass_gen: added ODF, cleaned up many commented out code blocks. Added
	  some stubs
	memdbg: added back as make targets. Removed memdbg_defines.h
	pass_gen: allow -conten=xxx for ODF format
	configure: cygwin with latest compiler release requires _GNU_SOURCE
	  also
	NSS removal, some extra stuff still was left
	base64_convert: fixed some bugs in base64-hex, added new mime alphabet
	pbkdf2-hmac-sha1: added 2 new hash types in a prepare()
	change signature to show this hash should get a utf-8 password
	pass_gen.pl: added mozilla format hashes
	mozilla: optimizations, removal of gladman hmac code
	opencl_pbkdf2_sha1: add new passlib types in prepare
	ODF: memset missed in salt function (found by TS)
	pass_gen: put in wrong value into iteration for ODF (found by TS)
	pass_gen: bug fixed in odf-aes code
	pass_gen: wrong quote used
	DEFAULT_ALIGN. Worked on cleaning up some of these (issue #317)
	fixed BE core caused by f5366a2. NOTE all fmt_default_binary_hash_x
	  requires this alignment
	openbsd-softraid: split long test string.
	openbsg-softraid: fixed compile issue on certain versions of oSSL
	openbsd-softraid: Fixed BE issues, reduced bin size
	openbsd-softraid: wrong spelling
	openbsd-softraid: reduced the binary size
	zip: fixed crash on aligned systems, sparc, etc
	zip, fixed BE and alignment issue
	zip: one of the BE changes were missed
	DEFAULT_ALIGN. Worked on cleaning up more of these (issue #317)
	gpg: core fixed in BE caused by 6c1b599
	DEFAULT_ALIGN. Worked on cleaning up more of these (issue #317)
	DEFAULT_ALIGN. Worked on cleaning up more of these (issue #317)
	DEFAULT_ALIGN. Worked on cleaning up last formats (issue #317)
	DEFAULT_ALIGN. Removed define from formats.h. Fixes issue #317
	dynamic BAD_OMP. from issue #375
	rar: On vc, pthreads is likely not there
	salted-sha1: added OMP support, fixes isssue #424
	gpg: better valid. Will be a fix for #499, when ported
	gpg-opencl: ported valid from CPU, with caveat
	VMS: disable from BE builds
	configure: BE output small bug
	SIPdump: remove array index of char warning
	tgtsnarf: warning about no trailing end of line fixed
	EPI: sped up some, removed numerous punned pointer deref warnings
	aix-ssha: removed some punned pointer warnings
	several formats, removed punned pointer warnings
	several formats, removed punned pointer warnings
	configure: add ARCH_LITTLE_ENDIAN=1 to CFLAGS
	configure: missed autoconfig.h.in in last commit
	john: allow command line switch vs name of exe for extra utils (VC
	  only for now)
	gpg2john: Fixed #477
	gpg2john: mute subkeys (unless -S is used). Static added to many
	  globals
	gpg2john: bug in last code. Algo 16 was broken by my recent changes
	wpapcap2john: removed unverified key output (fixes #729 )
	opencl-GRUB: add LWS/GWS output in verbose mode, as listed in #839
	rar2john.c: POC code to add RAR5 support
	crypt: problems with #defines and strdup
	rar2john: switched vint handing from 32 bit to 64 bit in rar5 code
	rar2john: wrong value in hash line, removed some comments, split
	  defines into header
	removed exe bits from header
	rar2john: Completed, merge rar5 into rar2john
	rar5tojohn.py: moved to unused
	dynamic_40: updated comments and screen output listing pad20, vs pad16
	sse-intrinsic: SHA512 interface was 64 bit, but implementation was
	  using 32 bit../run/john -test=0 -form=bitcoin Now both use 64 bit
	bitcoin: OMP bug in 32 bit linux, caused buffer to not align 16 bytes.
	  New helper functions created
	memory.h: fixed spelling error
	pass_gen.pl: odf making null padding on content too large. It worked,
	  BUT was more than needed.
	rar2john.h some DOS eol in the file removed
	rar2john: handle rar files where main header record is longer than 13
	  bytes (seen on rar files with ascii comments
	benchmark-unify: updated to v1.8.0 formats
	benchmark-unify: missed an older md5crypt
	rar_fmt: removed allows_unaligned stuff in crypt all, and speed is
	  faster (5% or so)
	rar_fmt: additional simplifications, simplifying prior to SIMD port
	rar_fmt: even more simplifications
	pass_gen: added rar4 -hp mode, -p mode should be doable
	pass_gen.pl: added rar -p stored file processing
	pass_gen.pl: added -p for compressed data
	pass_gen: merged all 3 rar4 types into a single rar function
	rar: put a hash of the data object into the salt structure
	pass_gen: some cleanup
	rar: -hp was also having same salt problems
	opencl-rar: same issue (same salt) in this format as seen in the CPU
	pass_gen: odf-1, found a bug in Crypt::OpenSSL::AES, and worked around
	  it
	pass_gen: work around AES decrypt bug in a different way
	pass_gen: hopefully last fix for perl bug on ODF AES
	pass_gen.pl: added zip (AES) format
	zip: Speling eror in comment, lol
	opencl-pbkdf2-sha512: working on #539 issues
	pbkdf2-hmac-sha512-opencl: Added code to allow all input types, per
	  #539
	pbkdf2-sha512-opencl: issue #539, failing on some GPUs. Hopefully this
	  helps
	opencl-pbkdf5-sha512: converted 8 to 64 bit from password and salt
	opencl-pbkdf2-sha512: disable $ until we can get it working better
	configure: --help message, work towards #612
	configure: Fixed #612
	configure: removed a couple stray \n from --help
	configure help macro: added copywrite to edits, and some comment
	  changes
	ecryptfs: better valid, and custom salt was not working
	ecryptfs: added another non-default salt test string
	pass_gen: added ecryptfs handling
	pass_gen: added Office_2007. functionized get_salt, get_iv,
	  get_content
	BFEgg: adjusted OMP_SCALE, removed a FIXME
	bitcoin: improved valid() and removed many FIXMEs
	pbkdf2-sha512-opencl: switch uint64(32)_t to ulong/uint, some other
	  cleanup changes
	7z: improved valid(), removed many FIXMEs
	cloudkeychain: use better pbkdf2, updated valid(), removed many FIXMEs
	cloudkeychain: Added SIMD code to the PBKDF2-sha512
	androidfde: Added SIMD code for pbkdf2-sha1, and removed a FIXME
	blackberry: set OMP_SCALE and removed FIXMEs
	missed one of my comments
	cloudkeychain: reduced size of salt object and removed a FIXME
	eigrp: improved OMP scaling
	dmg: Added SIMD and removed a FIXME
	dmg: MMX code should continue and not return
	Makefile.legacy: removed old no longer c project mozilla2john
	base64_convert: quite compiler warnings
	base64_convert: bugs in base64_valid_length, flags not being used
	  properly
	django: better Valid() and removed a few FIXMEs
	EFS: better valid, ported to SIMD, cleaned up code
	EFS: small changes to valid
	gpg: improved valid even more
	gpg2john: removed a couple fixmes
	hsrp: Removed FIXMEs, OMP tuned
	EPI and hsrp: removed some fixmes and OMP tuned hsrp
	hsrp: Oops. last commit had code being copied the wrong way and was
	  lost.
	mozilla: improved valid()
	Some fixmes in KRB4, md2
	sip: changed benchmarks to get 1salt/many-salt tests
	net-md5/sha1: fixed salt length bug, and removed a FIXME comment
	twofish plug: removed fixme and changed code to not crash on
	  REQUIRE_ALIGN machines
	removed a few FIXMES
	tcp_md5: fixed salt size bug, remvoed a FIXME
	keepass: added twofish test hash. We will want to test on Sparc also,
	  since twofish may have issues
	VTP: better valid(), OMP scaling, improved speed a lot. removed FIXMEs
	eigrp: improved valid()
	dmg-opencl: comment removed same as in CPU format
	rsvp: improved valid()
	dmg-opencl: comment removed same as in CPU format
	efs: format renamed
	lastpass: improved valid()
	odf: improved valid()
	pbkdf2-hmac-sha512: improved valid()
	rawSHA256: added cisco4 and base64 processing where needed
	rawSHA256: left DEBUG turned on.
	gpg-opencl: improved valid()
	pkzip: removed a spurious fixme comment
	pbkdf2-hmac-sha512: better valid()
	new atou() function added to misc.c
	7z: change to usage of atou() in valid and in getsalt */
	7z: opencl fix to mirror CPU version
	pass_gen.pl: added office-2010 and 2013 formats
	pass_gen.pl: simplified the office formats with functions
	OMP scaling for several formats which had OMP_SCALE=1 and FIXMEs
	haval: OMP scaling (45x and 35x improvments seen)
	nukedclan: improved OMP scaling (about 80% gain)
	radmin: improved OMP scaling some
	SIP: improved OMP scaling
	openssl_enc: improved cygwin OMP speed 64x. Improved non-omp speed a
	  tiny bit
	truecrypt: for sha512, switch to internal pbkdf2 header. SIMD for
	  sha512. Moved logic from cmp_all/cmp_one into crypt_all
	truecrypt: salt align, fixed failure in not turning off sha512 and
	  ripemd160 in the whirlpool init

Dhiru Kholia (356):
	Add support for cracking KeePass 2.x files.
	Get rid of BOM.
	Add support for cracking PKCS #12 files.
	Use BIO_write instead of BIO_puts.
	Add one more test vector in pfx format.
	Fix OMP build.
	Bump LINE_BUFFER_SIZE. Needed for pfx format.
	Rename pdfdump to pdfdump_old and add new working pdfdump file
	Add OMP support to TrueCrypt formats
	Use correct value of BINARY_SIZE
	Remove debugging code (linux-x86-64-clang-debug was giving warnings)
	Fix warnings when building linux-x86-64-clang-debug target
	Add support for cracking Siemens S7 authentication protocol hashes
	Fix multiple bugs in sshng2john.py
	Document usage of ssh formats
	Fix problem in office format found by magnum by using valgrind
	Fix problem in office OpenCL format found by magnum by using valgrind
	The "cracked array" was not always reset correctly. Fix it.
	Integrate dmg2john with john
	Remove dmg2john target and stop confusing people
	Fix warnings in wpapcap2john
	Add wpapcap2john target in Makefile
	Add sample test vectors for IKE PSK format
	Add support for cracking Java KeyStore files (Ladghar special edition
	  patch)
	Fix running of KWallet format on big-endian systems
	The new split() in pbkdf2-hmac-sha512 did not use new interface
	  prototype in bleeding.
	Add support for WinRAR SFX files
	Fix warnings in dmg2john
	Add ssh2sshng.py utility for converting ssh hashes into sshng hashes
	Information on cracking Oracle APEX hashes
	Misc. fixes for putty2john utility
	Add support for handling multiple files in uaf2john
	Add support for handling multiple files in truecrypt_volume2john
	Dynamic type for md5($p,$s) for long salts
	Remove redefinition (issue #233)
	Move office2john.c to unused directory
	Fix ASAN crash in pkzip format
	make valid() "stronger"
	Fix ASAN crash in dmd5 format
	Document known ASAN related crash in ipb2 format
	Python port of dmg2john utility
	Commit another weird and custom format
	misc. fixes
	fix resource / memory leaks in dmg2john.c
	Remove dead code
	Remove dead assignment
	Remove unused code
	Fix ASAN related crash in nk format
	Fix compilation failure with Clang (trunk)
	Fix memory leak + "invalid read" in pwsafe formats
	Fix "invalid read" in keepass format
	Fix "invalid read" in ike format
	Fix misc. "invalid read" problems
	make valid() stronger in clipperz format
	make valid() stronger in radmin format
	make valid() stronger in pst format
	make valid() stronger in mozilla format
	fix potential leaks in dmg format
	fix memory leaks in zip2john
	fix typos
	fix warnings in gpg2john
	misc. small fixes in dmg2john
	Fix ASAN crash (without any performance loss)
	Fix problems pointed out by Frank
	Fix ASAN crash in oracle format
	Fix ASAN crash (still needs better valid)
	Add support for cracking bitcoin wallet files
	Fix problems found by Alexander Cherepanov in mozilla format
	Fix ASAN crash and (get|set)_salt methods
	Fix multiple ASAN related crashes
	fix clang-analyzer warning in mozilla DES code
	Fix mistakes made in commit 23dc44df
	fix potential memory leaks in rar2john
	Hopefully the "right" fix for the zip crash
	misc. fixes for zip stuff
	Fix a typo in keepass2john
	Fix base64 decoding bug and add support for Cloud Keychain files
	Add support for cracking Cloud Keychain files
	Make agilekc2john work under Python 3.3 too
	Make agilekc2john work under Python 2.4 to Python 3.3
	Rename agilekc2john.py to something more correct
	Agile Keychain optimizations (thanks atom!)
	Calculate only what we will use (thanks atom!)
	Even more optimizations (courtesy of atom)
	Add support for SHA-3 (Keccak) hashing function
	some less-than-ideal fixes for keyring2john
	misc. portability fixes
	more portability fixes
	Make dmg2john work under Python 2.4 to Python 3.3
	misc. Python portability fixes
	even more portability fixes
	Remove unused code from ml2john.py
	Make odf2john work under Python 3.3 too
	Make office2john.py work under Python 3.3 too
	Make sshng2john work under Python 3.3 too
	Make sshng2john work under Python 2.4 to Python 3.3
	portability fixes
	Fix crash for "qpdf" generated file and misc. PEP8 fixes
	Add error handling in pdf2john
	Fix various crashes found by Alexander Cherepanov
	Document that mozilla format fails on big-endian boxes
	Don't be too greedy. Fix failures caused by 07a3e05.
	Add support for cracking AIX smd5 hashes.
	Add aix2john utility
	Add support for "standard" smd5 hashes
	Add support for "SSHA variants" in aix2john
	Add support for cracking AIX ssha* hashes.
	Add "well-known" test vectors
	Add one more hash posted on john-users as test vector
	misc. fixes for AIX stuff, recommended by magnum
	Fix aix2john to use existing MD5 format
	Add more test vectors in MD5 format
	Add more test vectors in AIX format
	Fix build for older versions of OpenSSL
	Add variant of aix-smd5 format to handle longer password lengths
	fix crash in ike format
	fix crash in dmg format
	borrow valid from the corresponding CPU format
	fix crash in keyring format
	tighten check in episerver format
	Add support for cracking HAVAL hashes
	minor tweaks
	Add support for cracking Tiger hashes
	Add support for cracking ripemd hashes
	Add support for cracking LUKS
	fix self-tests in LUKS format
	Add support for cracking Whirlpool hashes
	fix yet another crash in dmg format
	check maximum hash length in episerver format
	check maximum username length in mongodb format
	fix crash in putty format
	New dynamic types from Alexander Cherepanov and "Waffle"
	fix crash in clipperz format
	fix crash in office format
	fix crash in sxc format
	fix crash in wbb3 format
	fix crash in pdf format
	fix leaks and a crash in LUKS format
	pbkdf2 usage optimization in zip format (thanks solar and sc00bz)
	Cracker for files encrypted using "openssl enc" command
	Add support for cracking Android FDE
	fix name ;)
	Add support for cracking RAR 5.0 "hp" mode archives
	minor fixes for rar5 format
	make androidfde2john run under Python 3.3.x
	Update OFFICE file
	OMP and binary_hash fixes for bfegg format
	OMP and binary_hash fixes for dominosec format
	dominosec optimizations
	try to fix build on old Mac hardware
	try to fix build on old Mac machine
	Add support for cracking MD2 hashes
	Add support for cracking PANAMA hashes
	Add support for cracking Snefru hashes
	Add support for cracking Skein hashes
	bitcoin format also works for litecoin wallet files!
	Add support for cracking scrypt stuff
	minor fixes for scrypt format
	Add support for SHA3-256 hashing function
	get rid of DEFAULT_ALIGN from panama format
	get rid of DEFAULT_ALIGN from radmin format
	get rid of DEFAULT_ALIGN from blake format
	get rid of DEFAULT_ALIGN from Keccak formats
	get rid of DEFAULT_ALIGN from ripemd format
	get rid of DEFAULT_ALIGN from skein format
	get rid of DEFAULT_ALIGN from haval format
	get rid of DEFAULT_ALIGN from scrypt format
	ensure salt alignment
	fail a bit more gracefully for -p mode RAR5 files
	get rid of DEFAULT_ALIGN from snefru format
	get rid of DEFAULT_ALIGN from whirlpool format
	get rid of DEFAULT_ALIGN from tiger format
	get rid of DEFAULT_ALIGN from ripemd format (again)
	get rid of DEFAULT_ALIGN from putty format
	get rid of DEFAULT_ALIGN from putty format, this time for real
	get rid of DEFAULT_ALIGN from md2 format
	Add support for cracking blockchain "My Wallet" files
	blockchain format actually works now ;)
	Use SIMD in blockchain format
	blockchain format optimizations
	make use of IV in blockchain format
	GPU support for blockchain format
	fix build problem caused by blockchain format
	fix function prototype in mscash2-opencl format
	fix OMP build problem
	some "dangerous" optimizations in the blockchain format
	copy optimization made in blockchain CPU format
	small optimization in ssh-ng format
	add GPU support for cracking GNOME Keyring files
	add support for cracking 7-Zip files using header encryption
	add GPU support for cracking 7-Zip files (aka GPU killer format)
	Fix Issue #311 (use Base64 instead of hex encoding)
	remove unused code from bitcoin2john.py
	remove broken feature from bitcoin2john.py
	add support for cracking IPMI 2.0 RAKP (RMCP+) hashes
	fix slow hash loading problem in RAKP format
	somewhat better valid for RAKP format
	ipmi_dumphashes2john utility is no longer required
	fix whitespace errors
	Cracker for BlackBerry Enterprise Server 10 hashes
	avoid naming conflicts with OpenSSL
	add documentation for cross-compiling MinGW builds
	MinGW portability fixes # 2 (for Makefile)
	MinGW portability fixes # 1
	GMP is not worth the trouble for MinGW builds (revisit later)
	a format for CRAM-MD5 cracking
	CRAM-MD5 format actually works now ;)
	format for cracking eCryptfs
	add ecryptfs2john utility
	add more test vectors in ecryptfs format
	add another test vector in md5ns format
	fixes for linux-ppc64 target
	fixes for OMP linux-ppc64 target
	ecryptfs format is actually correct now
	early preview of EFS format for cracking M$ EFS
	commit bwtdt format before I lose it!
	move "bwtdt" format to unused/
	pdf2john fixes for bugs triggered by CMIYC 2013 files
	add more test vectors in pdf format
	add another test vector in keepass format
	add another test vector in odf format
	add another test vector in pkzip format
	some KWallet format "improvements"
	more KWallet fixes, thanks to gaganpreet!
	fix math in kwallet format
	commit broken MD5 format
	get the build target right
	building gpg2john explicitly is no longer required
	fix typo in "bitcoin-qt" string
	document steps required to crack bitcoin wallet files
	add a note for building JtR-jumbo on FreeBSD
	misc. ASAN related tweaks
	fix stack-buffer-overflow detected by ASAN
	use our standard license wording in 7z format
	"fix" licensing in blockchain formats
	remove a "critical" function from ecryptfs format
	"fix" licensing in agilekeychain format
	fix licensing in agilekeychain OpenCL format
	fix licensing in LastPass format
	fix licensing in cloudkeychain format
	fix licensing in 1password2john.py utility
	fix licensing in office2john.py utility
	fix valid() in fde format
	fix valid() in blackberry-es10 format
	fix valid() in cloudkeychain format
	fix valid() in blockchain format
	fix valid() in blockchain-opencl format
	fix valid() in rar5 format
	fix valid() in eCryptfs format
	fix valid() in 7z format
	fix valid() in efs format
	clean up dmg stuff a bit
	"temporary" format for cracking RIPv2 MD5 hashes
	add more test vectors in net-md5 format
	add OSPFv2 test vectors in net-md5 format
	Start using Travis CI
	add "win64-mingw-x86-64" build target
	make "win64-mingw-x86-64" build target work
	build putty2john.exe properly
	add support for cracking TCP MD5 signatures (BGP RFC 2385)
	stop using "bzero" function
	make debugging of "win64-mingw-x86-64" builds easier
	fix broken MD5 handling in gpg format (thanks Lukas!)
	add support for cracking "SYB-PROP" hashes
	fix ASAN crash in "sybase-prop" format
	RAR 5 "-p mode" support
	handle multiple encrypted files in a RAR 5 archive
	add "-p mode" test vectors in rar5 format
	change "join" to "john" ;(
	Add support for Siemens S7-1500 PLCs
	handle "SPEC_SALTED" case properly in gpg parser
	handle "SPEC_SALTED" stuff properly in gpg format
	add lotus2john.py utility
	Add support for cracking Redmine hashes
	fix issue #456 (lotus85 format is seriously broken)
	eliminate false positives for PGP keys using 2 byte checksum
	assorted fixes for GPG format ;(
	add support for "IDEA" in gpg format
	we have a local "IDEA" implementation now
	partial fix for issue #472
	more fixes for gpg format (issue #472)
	remove multiple definition of "idea_options" (fix MinGW build)
	add support for cracking XenForo hashes
	slightly better support for XenForo hashes
	tweaks required for building on FreeBSD 10 (32-bit)
	enable static win64 MinGW builds
	fix overflow in clipperz format (fixes #493)
	fix building of luks2john with ASAN enabled
	fix building of luks2john (again!)
	whitespace fixes for dmg2john.c
	LUKS fixes (format change!)
	add python port of keychain2john utility
	turn off debugging by default in "grub-opencl" format
	make kwallet2john.py executable
	Use existing LDFLAGS for vncpcap2john.c too
	add support for NetBSD's sha1crypt
	fix memory leak in krb5-23 format
	add documentation about kerberos auditing
	fix a possible typo in formats.c (promiscuous)
	add support for cracking known_hosts hashes
	Old habits die hard ;(
	fix typos in keychain2john.py utility
	add "known_hosts2john.py" utility for processing known_hosts file(s)
	fix "crypt_key not specified in enclosing parallel" compilation error
	SecureMode tutorial
	add support for handling multiple files in rar5tojohn
	RAR 5 hashes from CMIYC 2014
	advertise rar5tojohn.py instead of simply bailing out
	Fix algorithm name in RAR 5 format
	Respect iterations in RAR 5 format. Hash re-extraction is required.
	Add documentation for cracking Apple DMG files
	rename DMG cracking tutorial
	fix a very bewildering false positive scenario in o5logon format
	Guard OpenMP block properly in o5logon format
	Add support for cracking HSRP MD5 authentication hashes
	add license in hsrp2john.py
	add license in rar5tojohn.py
	get the dedication bit right
	Support cracking EIGRP hashes. Highly speculative!
	Minor fixes for ssh-ng format
	misc. minor tweaks for recent cisco formats
	add support for cracking NTP authentication hashes
	slightly better NTP packet parser
	fix a weird zip overflow bug
	Add support for cracking VTP (Cisco L2 protocol) hashes
	add support for cracking sha1($salt.$pass.$salt) hashes
	Add support for cracking Dahua hashes
	add more dahua test vectors
	Add support for cracking RSVP authentication hashes
	Fix and enable SHA-1 support in RSVP format
	slightly better valid for vtp format
	Add support for cracking IS-IS authentication hashes
	remove exec. bit from a bunch of files
	Support cracking BFD authentication hashes
	Support SHA-1 hashes in BFD authentication
	slightly saner EIGRP format
	more EIGRP fixes
	Enable cracking of more EIGRP hashes
	More EIGRP related fixes and improvements
	Add support for cracking MDC-2 hashes
	disable the old and crappy mozilla format
	clean rewrite of the mozilla format
	mozilla2john.py helper script
	restore the partial hash pre-computation trick
	Add support for HMAC-SHA-256 hashes in EIGRP format
	Handle custom salt in ecryptfs2john.py [1/2]
	Handle custom salt in ecryptfs format [2/2]
	Add a test HMAC-SHA-256 hash in EIGRP format
	Fix memory clobbering in EIGRP format
	Clean up unused/ folder
	Clean up weird comments in dmg format
	Clean up weird comments in blockchain format
	Clean up comments in pcap2john.py
	Clean up kwallet2john.py (PEP8 fixes + a nasty logic fix)
	More EFS clean ups
	make little things right (TM)

Claudio André (192):
	Selectively pick stuff from Claudio's experimental tree.
	Get some nt-opencl fixes from Claudio
	Rebase on bleeding and copied 'my' formats.
	Fix small tweaks after merge.
	Remove any (#if FMT_MAIN_VERSION > 9).
	Small tweaks.
	Another small tweaks.
	Missing parameter.
	Fix the misaligned in xsha512.
	Change spaces to tabs.
	Space to tabs in john.c (only at lines I put there).
	Fix the misaligned in xsha512.
	Change spaces to tabs.
	Space to tabs in john.c (only at lines I put there).
	Create comments that document new shared functions.
	Use sha.h and sha2.h as recommended at
	  http://www.openwall.com/lists/john-dev/2013/01/21/20.
	Replace spaces to tabs (only).
	Fix some misalignments.
	Reintroduced some missed code during bleeding merge.
	Fix a bug in benchmark.
	Print the result transfer speed.
	Move the duration config control to opencl_get_user_preferences().
	More BINARY_ALIGN & SALT_ALIGN stuff.
	Put copyright information inside common-opencl files.
	Remove some trash from comments.
	Small tweaks.
	pwsafe-opencl: Auto-tune global work-size.
	Move some printouts to common code.
	Move more code to common.
	Cache compiled kernel for CPU too.
	Event more code moved to common.
	Applies the same idea of 84fda0e04d414a77bdaebf58997dfa119768c794 to
	  pwsafe.
	Mute some over verbosity find_best_lws (as done in
	  016f973d34b7ca34981acb7f078a0750a6d15d29)
	Revert some bad changes i did.
	Forgot to declare an extern function.
	During OpenCL initialization start only requested devices (not all
	  available ones).
	As defined in guidelines, include the 'new_keys' test.
	To be more error tolerant, only working devices will be listed as
	  ready to use (it makes sense). Well, if every requested device
	  fails, there is a new check that should make the experience nice.
	Use shared code in OpenCL raw-md4 and raw-md5 files.
	Remove a comment that does not apply.
	Include the duration check for GCN and stop auto-tune if 200ms limit
	  was reached.
	Use shared code in OpenCL md5crypt.
	Revert the 200ms kernel execution check.
	Now it runs an OpenCL build on a host without *any* working OpenCL
	  device or platform.
	OpenCL formats will be listed only if they can be used.
	More than 25% performance gain on sha512crypt on VLIW5.
	Small tweaks.
	Fix a misalign.
	Great improvement on VLIW5 (buggy but passes self test).
	Clean-up.
	Hopefully the bug is gone.
	Tested with TS and 'real' cases from
	  http://openwall.info/wiki/john/development/GPU#Acceptance-Tests.
	  Everything seems to be Ok and on VLIW5 (at least mine) it runs at 2x
	  faster.
	Better bounds detection Or I fixed a bug (i haven't found) or I
	  create a new one.
	Now opencl_find_gpu is called only if there is (at least) one valid
	  OpenCL device (previous patchs). So opencl_find_gpu must point to
	  one valid OpenCL resource (even if it is a CPU). It means
	  opencl_find_gpu will point: - to an OpenCL CPU. - or better,
	  to an OpenCL GPU (if any).
	Allow sha512crypt to be used on no_byte_addressable hardware.
	Refactor opencl_find_gpu() in order to show its real functionality.
	GCG! Ah GCN! Are you kidding me?
	Change a comment about binary kernels generation.
	Fix a problem on office2013 kernel on AMD.
	Try to detect if the OpenCL library exists on runtime.
	OpenCL SHA2 formats have to follow CPU get_binary code.
	Better auto-tuning setup (for split kernels).
	Wrong profile event was in use.
	Revert "Try to detect if the OpenCL library exists at runtime."
	Fix for Sayantan's formats.
	Use default uint64_t definition (stdint.h) for non-OpenCL code.
	Include uint64_t definition (stdint.h) in common-opencl.h.
	Add FMT_SPLIT_UNIFIES_CASE to a bunch of SHA-2 formats.
	Fix bf-opencl after a bogus merge conflict resolution.
	Fix des-opencl for bleeding
	Move salt transfer to set_salt() for sha256crypt.
	Move salt transfer to set_salt() for sha512crypt.
	Move salt transfer to set_salt() for xsha512.
	Proper event usage for LWS auto-tune.
	Remove the sha256crypt-ng: it is not necessary anymore.
	My branch becames the reference to the next merge.
	Small tweaks in sha512crypt OpenCL code.
	A proper fix to the incapacity to deal with passlen=24 AND saltlen=16.
	  Previous commit can handle it, but since it hurts performance a
	  litte, this is a best solution.
	Remove unused blank lines.
	Memory flags reviewed at NVIDIA OpenCL Best Practices Guide (chapter
	  3.1).
	Fix a memory leak.
	Mute some warnings on OSX.
	Create a cisco type 4 OpenCL format (re-using raw-sha256).
	Fix a bug inside -DDEBUG code.
	sha256 (raw): support max. length of 55 and minimize transfers to
	  actually needed size.
	Inform GWS auto-tune routine if the format has a maximum
	  global_work_size it can handle.
	Transfer partial data while JtR is still creating keys.
	Compute and show index transfer time for sha256 (raw).
	Merge raw-sha512 and xsha512 in order to use only one file.
	Fix a bug on GCN at bb06e7e589fa0e74c566f95861513c29f540f7cf.
	Mute a warning on OSX.
	strlen() was an important bottleneck.
	Initialize all important GPU buffers.
	Use a better default LWS for sha256 (raw).
	Small performance tweaks for sha256 and sha512.
	Remove the '__local' version of sha512 (raw) kernel.
	sha512 (raw): support max. length of 55 and minimize transfers to
	  actually needed size.
	Transfer partial data while JtR is still creating keys (sha512 [raw]).
	Mute (again) a warning on OSX.
	Cisco type 4 fix
	Remove unused xsha512 file.
	Unify valid() and binary() for crypt-sha512 formats
	Finish 0b7a3f5efbbbad94c421e34855b7168f04d4d92d (unify common
	  functions).
	Improve error handling and messaging while at --list:opencl-devices.
	Call OpenCL related functions only at format init(). - also, use make
	  sequential_id an int.
	Remove unnecessary OpenCL init() functions.
	sha256crypt-opencl fix for opencl_preinit().
	Revert to do a full check (device is really working) while
	  initializing a specific device.
	Unify OpenCL raw-sha256 and cisco-4, just like the CPU formats.
	Follow naming convention specified at: a77b867.
	Unify valid() and binary() for sha256crypt CPU and OpenCL formats.
	Remove (old) debug code.
	Remove fake multi-GPU support from sha256crypt.
	Improved shared LWS/GWS test (see 261d7b1).
	Document opencl_find_best_lws()
	Try to fix a regression on 13.4 Catalyst driver (revert performance to
	  13.1 situation).
	Unify common/shared code in order to try new LWS/GWS enumeration
	  schemes. See: 24e0565.
	Continuation of 24e0565. In order to apply the new LWS/GWS scheme,
	  some shared code is moved to a new function.
	Remove duplicated (auto tuning) code.
	Use common auto-tune functions for RAKP-opencl
	Move duplicated code from OpenCL formats to autotune.h file.
	OpenCL bug fixes and tweaks.
	Move auto tune functions to its own source file.
	Band aid fix for Intel HD Graphics auto "tune".
	Use real auto-tune for Intel HD Graphics.
	Start using pointers to OpenCL events. So, from now on,
	  crypt_all_benchmark() is not mandatory for formats using shared
	  auto-tune code.
	xsha512 format will not crack OS X 10.8 or higher (see
	  6947648242ca51260945d2dab8e1af129362fbc2).
	Use auto-tune always (at least, for this fast formats).
	Replace spaces with tabs in common-opencl.c file.
	User should be able to --list=opencl-devices -dev=0. See:
	  cb4d82165f6257fc710e1b6c2179514db83e9e2e
	Replace spaces with tabs in common-opencl.h file.
	Fix: select a proper name for a function.
	Deprecate opencl_rawsha512_fmt_plug.c and opencl_xsha512_fmt_plug.c.
	  See #676.
	Missed one file in 0287d486a8f21888ec9f111a74a790d00da6b5fa.
	The get rid of the "-ng" part in OpenCL formats raw-sha512 and
	  xsha512.
	Small tweak.
	Fix a typo.
	Grammar fixes.
	Use shared code for auto-tune in rar5.
	Small tweaks for LWS auto-tune (rar5 and PBKDF2-SHA256).
	Fix a few errors in shared auto-tune code.
	Refactored get_multiple macros. Improved auto-tune default behavior.
	Small tweks.
	Document the usage of john.local.conf for OpenCL settings. Remove
	  unnecessary examples.
	John.local.conf should be used to keep OpenCL settings.
	Shared OpenCL autotune tweaks.
	Optimize raw SHA512 to be ready to latest driver (14.6beta).
	Move shared macros to the header file.
	Small tweaks.
	Remove more unnecessary code.
	Shrink the kernel a little bit more.
	Remove one unused var.
	Clean raw SHA256 code.
	Rewrite some comments.
	Remove one unnecessary math operation.
	Comment about a pending task.
	Fix #392 (at least on AMD driver 14.6beta). No regressions (at least
	  on bull).
	Avoid unnecessary SWAP in cryptsha512-opencl. - 8% gain on GTX 570
	  (now it runs at 14.2K c/s) - Also, on HD 6770 (driver 14.6beta)
	  achieve the original performance (from 12.6 driver).
	Clean up lotus5-opencl initialization.
	pbkdf2-hmac-sha256-opencl off-by-one buffer overflow fix.
	Optimize sha256-opencl further.
	Fix an error in sha256crypt-opencl. Now it passes JtR-TestSuite.
	Small tweaks.
	Increase HASH_LOOPS for sha256crypt-opencl.
	Remove commented code.
	Autotune for sha256crypt-opencl (it is fast enough).
	Fix a formatting problem in sha256 OpenCL kernel file.
	On --list=opencl-devices show PCI information for NVIDIA cards.
	Last but one improvement for sha256crypt OpenCL file.
	Revert to use a safer memory access patern. Need to investigate what
	  is wrong with the program.
	Changed the API of OpenCL auto-tune init(). Make a relation between
	  the ADL/NVML device to "our" device number, using PCI ID (#750)
	Clean code in SHA2 fast OpenCL formats.
	Fix a bug in auto-tune seen in NVIDIA boards.
	Get the NVIDIA compute capability information.
	Optimize sha512crypt-opencl kernel.
	Fix a compilation problem on OSX.
	Minor clean-ups on sha512crypt (OpenCL) prepare.
	Shrink prepare binary code. On AMD driver 14.9 they reintroduced a
	  bug, workaround have to be applied again.
	Well, use this setup to fool the AMD driver madness.
	Fix a couple of comments.
	Shrink sha512 prepare further.
	Use __constant if possible (sha512crypt-opencl).
	Do a sane job during OpenCL initialization.
	Optimization for NVIDIA SM 30 and beyond . Gives 2000 c/s on GTX
	  Titan. - For future usage.
	Fix to #739.
	Ops: I missed one cast.
	'Improve' Raw-sha1 initialization too.
	Performance improvement on HD 6770 (4%). - also, apply magnum's
	  request to auto-tune always.
	Better for auto-tune on NVIDIA.
	Small tweaks for cryptsha512.
	Fix for auto-tune using Intel GPU.
	Avoid any type conversion between int and uint.

Frank Dittrich (166):
	Add get_source to --list=help:format-methods output
	Add binary and salt alignment to --list=format-[all-]details
	Fix typo in doc/README-OPENCL
	Fixed some more typos
	Add binary_hash_[56] and get_hash_[56] to 16 formats
	mozilla_des.c and .h: #if 0 unused functions
	sap2john.pl: improve coding style (tabs vs. spaces)
	doc/OPTIONS: remove the only [tab] which is not part of a heading
	Remove dead code from mozilla_fmt.c - used #ifdef DEBUF
	Fix grammar
	Adjust benchmark-unify to jumbo-8 format name changes
	Benchmark-unify: map KRB5 format names
	Fix a bug when using --stdout, introduced in e14ac00.
	benchmark-unify: adjust format name mappings Add "Mozilla SHA-1
	  3DES" mapping Adjust "pdf" mapping
	Fix bash completion for formats if --list=hidden-option has
	  --format=CLASS
	Bash completion: Workaround for --format=CLASS parsing
	Let --list=format-methods handle new format methods
	benchmark-unify: sort format name mappings
	chmod a-x for several files that don't need to be executable
	Rename formats: "Office 20xx" -> "MS Office 20xx", "M$ Cashe" -> "MS
	  Cashe"
	Enhance doc/README.bash-completion, mention prerequisites
	dynamic.conf: Move the dynamic_1501 format definition (Redmine)
	chmod a-x run/dynamic_flat_sse_formats.conf
	dynamic_flat_sse_formats.conf: adjust algorithm names
	dynamic.conf: avoid nested brackets [ [ ] ] in john --test output
	Add a space in dynamic_18 format name
	Add --list=format-tests.
	Ignore "reserved" dynamic formats for --list=subformats
	Makefile: Detect which address sanitizer option to use for clang debug
	  builds
	Revert "Makefile: Detect which address sanitizer option to use for
	  clang debug builds"
	doc/Option: Add --list=format-tests description
	Some bash completion improvements
	Fix typos in comments (run/repeats16.conf, run/repeats32.conf)
	doc/OPTIONS: "-example ciphertext" added to --list=format-details
	Grammer fix in doc/EXTERNAL
	In core doc files, use GNU-style double dashes for long option names
	1,$s#-for=#-form=#g in run/DYNAMIC, because -for= is ambiguous
	doc/DYNMIC_SCRIPTING: replace -form=$dynamic$ -sub=dynamic_1030
	  with -form=dynamic_1030 etc.
	--list=format-tests: Handle tests that contain line feed characters
	Improve valid() for clipperz, fixes issue #457
	Improve valid() for openssl-enc, fixing #498
	Improve valid() for django format, fixing issue #460
	Build ../run/luks2john (luks2john.c and Makefile fixed)
	Improve valid() in rar format, fixing issue #459
	Django format: document undefined behavior of atoi in valid()
	  ...and reduce risk of triggering that undefined behavior.
	Improve valid() of NETLMv2, fixing issue #461
	Fix --list=format-tests: for empty ciphertexts, call prepare()
	Fixed some more bugs in Django format (valid)
	Fixes for KeePass format's valid()
	Fixes for Bitcoin format's valid()
	Fixes for 7-Zip format's valid()
	Fixes for 1Password Cloud Keychain format's valid()
	Fixes for gpg format's valid()
	Format LastPass, sniffed sessions, additional check in valid()
	Fixes for ODF format's valid()
	Minor improvement of PBKDF2-HMAC-SHA512 format's valid()
	Replace 2147483647 with INT_MAX in valid()
	Even more checks in gpg's valid()
	Fix warning caused by ffc7812
	Add poor OpenMP scalability flag to --list=format-all-details
	dynamic_THIN_FORMAT_LINK: use PASSWORD_HASH_SIZES ... to make sure
	  all the binary_hash[i] and get_hash[i] methods get passed to the
	  thin formats.
	benchmark-unify: add some mappings to make it work with older
	  versions at least as well as unstable does...
	benchmark-unify: add/change mappings for changes in core 1.8.0 --test
	  output
	benchmark-unify: adjust logic for dynamic_n and old md5_gen(n)
	some relbench improvements and adjustments
	Fix -Wdeclaration-after-statement compiler warnings in dmg2john.c
	c3_fmt.c: support ./john --list=format-tests --format=crypt
	  --subformat=md5crypt
	c3_fmt.c: Print errors to stderr instead of stdout
	luks2john.c, use %zu for sizeof(), to fix compiler warning on
	  linux-x86
	bash completion: reuse --pot= logic for --loopback=
	bash completion: support --intermediate-enc= and --target-encoding=
	sh completion: support --mkv-stats=
	bash completion: support --bare-always-valid and --verbosity=
	.mailmap: make sure git maps my commits to my new email address
	Fix issue #494 (some log info was printed once per forked process)
	fix typo in comment
	Re-add an "if (john_main_process)" that is needed for MPI
	formats.h:define FMT_MAIN_VERSION earlier than before
	define a FLG_COST for new option --cost
	First revision of testing for different tunable costs among hashes
	Let 9 more formats report tunable cost values
	Tunable cost values for 7z and keepass
	Tunable cost values for skey format (S/KEY)
	Tunable cost values for agilekeychain and aix-ssha* formats
	Android FDE format: remove unneeded and misleading components from
	  salt definition
	Tunable cost for bitcoin format
	blackberry-es10: remove component "iterations" from salt definition
	7z-opencl: prepare for FMT_FORMAT_VERSION > 11 even if broken
	Tunable costs for cloudkeychain and Django
	BF_std.c: Fix a typo in a comment
	cloudkeychain: tunabme cost name "iteration count" instead of
	  "iteration_count"
	Report tunable cost values: dmg_fmt_plug.c drupal7_fmt_plug.c
	  encfs_fmt_plug.c
	episerver: report hash type as tunable cost (1: SHA1, 2: SHA256)
	Revert "blackberry-es10: remove component "iterations" from salt
	  definition"
	Revert "Android FDE format: remove unneeded and misleading components
	  from salt definition"
	doc/OPTIONS: better --cost= examples
	Minor adjustments to john's usage and --list=hidden-options output
	doc/README.librexgen: use --regex instead of --rexgen as option name
	commit b6b18713 broke KRB5 support for make -f Makefile.orig, fix it
	Make sure -j option works for make -f Makefile.orig
	Fix gcc warnings for non-autoconf 32bit Linux build
	Wordlist.c: Fix clang compiler warning (or even bug) in
	  restore_state() caused by commit 0dcff5d8
	wordlist.c: let all regex specific code depend on #if HAVE_REXGEN
	Fix AES-NI support for legacy (non-autoconf) 32 bit linux builds
	Format django-scrypt: report tunable costs N, r, p
	Log tunable costs even if they don't differ among salts
	ike format: report hash algorithm used for hmac as tunable cost
	keepass: report version as 2nd "tunable cost"
	keyring: report tunable cost (iteration count)
	LastPass, sniffed sessions: report iteration count as tunable cost
	odf: report "iteration count" as tunable cost
	office: report "MS Office version" and "iteration count" as tunable
	  costs
	oldoffice: report "hash type" as "tunable cost"
	pbkdf2-hmac-sha1: report iteration count as tunable cost
	pbkdf2-hmac-sha512: report iteration count as tunable cost
	pbkdf2_hmac_sha256: report iteration count as tunable cost
	pwsafe: report iteration count as tunable cost
	rar5: report iteration count as tunable cost
	sxc: report iteration count as tunable cost
	adjust some formats in src/unused to FMT_MAIN_VERSION > 11
	sha1crypt: report iteration count as tunable cost
	broken/opencl_7z_fmt.c: tunable cost related fix
	scrypt format: report N, r, p as tunable costs
	Use "$(CC)" instead of "gcc" in Makefiles
	some more Makefile changes
	Makefile.legacy: fix two errors for generic build
	Makefile.legacy: avoid make warnings for generic builds
	Makefile.legacy: make sure we really use the intended compiler for aes
	  subdir
	chmod a-x hmacMD5_fmt.c and aes/openssl/ossl_aes_crypto.c
	wordlist.c: avoid compiler warnings for debug builds
	doc/ENCODINGS: 2 grammar fixes
	Skip tunable cost reporting if no hashes were loaded This fixes a
	  possible segfault
	unicode.c: s/ansi/ANSI/
	john.bash_completion: improve completion for encodings
	listconf.c: call fmt_init for --list=format-[all-]details ...to
	  report an adjusted max. password length:
	reorder ripemd-128 tests (untagged hash first)
	Sync PBKDF2-HMAC-SHA256 CPU format tests with OpenCl format
	Sync OpenCL ODF format tests with CPU format tests
	Sync OpenCL RAKP format tests with CPU format tests
	Sync OpenCL Raw-MD4 format tests with CPU format tests
	Sync Raw-MD5 format tests (OpenCL / CPU / dynamic)
	Fix debug build warnings in opencl_pbkdf2_hmac_sha256_fmt_plug.c
	Raw-MD5: fix debug build breakage caused by 9aa03202
	Sync raw-SHA256 hashes
	opencl_keychain_fmt_plug.c: fix debug build warning
	Sync Raw-SHA512 format tests (CPU/OpenCL/CUDA)
	Bash completion: fix comletion for format classes
	Bash completion: Fix issue # 687 for real.
	Bash completion fix (format list still had "dynamic,")
	Report librexgen version for ./john --list=build-info
	listconf.c: '\t instead of ' ' between regxen's build time and runtime
	  version
	Re-add reporting of load time versions of NSS and NSPR libraries
	Fix a bug "use of logical '&&' with constant" in bench .c
	Fix generic build (-f Makefile.legacy) breakage which was caused
	  by commit 7ec88f81a3826006e667ff8b2972ec89d87612fa.
	Fix two compiler warnings for non-sse OMP builds
	rsvp format: report hash algorithm used for hmac as tunable cost
	Mute warning ‘sig_handle_reload’ defined but not used if SIGUSR2
	  is not defined
	Report some more tunable costs
	rsvp format: fix valid() to avoid segfaults
	Make sure --list=format-methods also reports source()
	Use "Disabled in configuration file" instead of "Disabled in john.pot"
	  in --list=format-all-details.
	One .include [List.Rules:OldOffice] in [List.Rules:Jumbo] is enough.
	Adjust bash completion bodge from commit a15e12e for --fork=
	Fix gcc warning introduced in 172e933
	OpenBSD SoftRAID: report iteration count as tunable cost and add
	  BENCHMARK_COMMENT
	s/varient/variant in comments

Sayantan Datta (73):
	mscash2-opencl:added multi-gpu interfaces,bug fixes
	opencl-mscash2:no segfault when mixing devices with large difference
	  in speed
	mscash2-opencl:code cleanup
	mscash2-opencl:code cleanup
	mscash2-opencl:code cleanup
	bf-opencl:code cleanup
	bf-opencl:code cleanup
	bf-opencl:code cleanup
	descrypt-opencl:code cleanup
	mscash2-opencl:ciphertext format changed, no trailing white spaces
	descrypt-opencl:cmp on gpu
	shared valid,split,prepare for cpu and gpu mscash2
	descrypt-opencl:improved compare
	bcrypt-opencl: fixed AMD 7970 ASIC hang
	mscash2-opencl: supports 128byte salts
	mscash2-opencl: fixed warnings and other issues
	mscash2-opencl:multi-gpu fix
	mscash2-opencl:fixed quick benchmark
	Raw-MD5-opencl: compare on gpu
	Raw-MD5-opencl: fixed memory cleanup
	Update opencl_rawmd5_fmt.c
	Raw-MD5-opencl: status check bug fix
	nt-opencl: no branching in coalasced loading loop.
	nt-opencl: cmp on gpu
	nt-opencl: use opencl_init instead of opencl_init_opt
	raw-md4-opencl:cmp on gpu
	raw-sha1-opencl: cmp on gpu
	New format added, mscash-opencl: ported directly from mscash-cuda.
	mscash-opencl: optimization patch #0
	mscash-opencl: optimization patch #1
	mscash-opencl: optimization patch #2
	mscash-opencl: optimization patch #3
	loader: added sequential id for salts
	mscash-opencl: compare on gpu
	nt-opencl: fixed bug causing inefficient keys transfer.
	added mask mode interface
	added new format param
	mscash2-opencl:adhere to device limits.
	mscash2-opencl: fixed zero min_keys_per_crypt bug.
	mscash2-opencl: improvedpreprocess kernel.
	mscash2-opencl: supports non-standard iteration count.
	mscash2-opencl: expected to fix problems with weaker gpus.
	Patch from the Hash Runner 2014 contest. Lotus5-opencl format.
	descrypt-opencl:fixed memory leak. An unrealesd Event object, although
	  innocuous in most cases turned out to be the root cause of this
	  issue.
	Updated mask mode. Now faster than incremental, as it should.
	new mask mode ?H placeholder bugfix and some other optimizations.
	duplicate check before inserting character following an escape
	  sequence.
	improved performance when using node/fork with mask mode.
	Generates skipped chunk using session/restore.
	mask mode resumes accurately without any loss of work.
	fixed compiler error introduced in 4b0612750841044
	fix ETA calculation with affecting work division among nodes.
	split mask mode functions.
	Hybrid-mask enabled.
	mask mode bug fix and performance improvement in hybrid modes
	mask mode now supports --max-length
	Hybrid mask: Bail out with error if [the used portion of] hybrid does
	  not contain ?w
	Hybrid-mask: leaner code for supporting --max-length param.
	Hybrid mask:added varibles mask_add_len and num_qw
	Hybrid-mask:fix mask_add_len
	mask mode escape sequence fix
	mask mode add_mask_len fix following the escape sequence fix
	mask mode escape sequence fix
	mask mode leaner code for max/min len iteration
	mask mode: fix redundant key generation after exhausting all
	  placeholders when using min-length
	mask mode fix: 9 does not gets dropped with--mask=[112010-998-0]
	mask mode fix: sequence of characters in a placeholder now conforms
	  with rules.
	mask-mode: fix distribution of candidates when using -min-length
	mask-mode: fix session/resume when using -min-length and fork.
	mask-mode: leaner code.
	mask-mode: update mask_tot_cand in truncate_mask()
	stretch mask with last placeholder
	mask-mode:fix issues with mask stretching.

Lukas Odzioba (27):
	CUDA multigpu first draft for pwsafe
	gpg2john: Handle multiple keys per in file, as well as multiple
	  infiles.
	Add OpenCL 1.2 error codes to our debug routines.
	Include OpenCL version information into --list=build-info
	(re-)enable agilekeychain format
	gpg2john fixes
	CUDA versions in --list=build-info
	Basename helper function in misc.c, also capable of stripping
	  extensions.
	gpg2john GECOS support
	fix crash in gpg format
	SIP valid() fix.
	SIP valid() fix.
	Implement shared fmt_default_binary_hash_N() for the common case.
	Last bunch of formats making use of shared binary_hash() functions.
	Commit PBKDF2-HMAC-SHA256 format
	Commit PBKDF2-HMAC-SHA256 OpenCL format
	tool to convert gadu-gadu auth packets to JtR format
	phpass OpenCL kernel tweaks
	Add binary_hash() functions to phpass-cuda and md5crypt-cuda formats.
	PBKDF2-HMAC-SHA256 Patch for splitted kernel.
	label test vectors in gpg format
	Fix some broken valid().
	Fix keyring valid()
	Multi-device bugfix for pwsafe-cuda.
	MD5crypt-opencl optimizations.
	pbkdf2-hmac-sha512-opencl
	Workaround for buggy CUDA memcpy() of length 0 in md5crypt.

ShaneQful (20):
	Added prepare method which checks for the old style pdf hashes and
	  converts them to the new style pdf hashes if necessary
	Cleaned up comments and added self to credits
	Fixed bug Dhiru found in pdf2john.py. There was an issue with one of
	  my regexs so that it didn't cover all situations
	Remove FIXME(s) (Don't scare Frank and magnum anymore)
	Removed assert which caused bugs in some documents generated with word
	  for the mac (cherry picked from commit
	  ddbbc65639305473a3311a339501da82473b1d77)
	Update CREDITS-jumbo
	Added License to pdf2john
	Unicode fixes for python 3 in office2john
	Added Python 3 support for pdf2john
	Fixed spelling error
	Changed is_meta_data_encrypted to return a boolean rather than a
	  string
	Changed get_encrypted_object_id to get_object_id in order to get any
	  object id from the trailer
	Impemented parse meta method, just get values methods left
	Fix for checking meta data encrypted in python 3.2
	pdf2john now gets the title and year created from xmp metadata
	pdf2john now gets all relevant metadata when metadata left unencrypted
	Fixed bug in pdf2john where wrong objects could have been used
	Small fix to get_xmp_values method in pdf to john
	Added ability to odf2john to generate a gecos field for meta data of
	  it exists
	Removed pointless fix to pdf2john

Solar (20):
	Fix breakage caused by commit aab646b42afe93ca909b
	Bleeding Backports from john-1.7.9.6-c6.
	john-1.7.9.6-selftest-1.diff
	john-1.7.9.6-done-1.diff
	john-1.7.9.6+done-reset-1.diff
	john-1.7.9.6+reset-crypt_all-2.diff
	john-1.7.9.6-LM-1.diff
	john-1.7.9.6+crypt_all+LM-crypt_all-pcount-1.diff
	PoC optimization for NTLMv1. Maintain a table for the third DES block.
	2nd version of NETNTLM patch
	Try to speedup cmp_all() by use of a bitmap. This only makes sense
	  when cmp_all() is called multiple times per crypt_all()'s actual
	  processing - that is, when cracking two or more C/R pairs at
	  once. There's a check for that in the code. Moreover, use of
	  the bitmap is automatically disabled when the C/R pair count
	  reduces to 1.
	raw-SHA512-ng, trivial optimizations.
	Licensing files
	john-rawSHA1_ng_fmt-omp-reduction.diff
	Add 'dokuwiki' external mode from
	  http://www.openwall.com/lists/john-users/2013/06/08/14
	Added scrypt format
	Mask mode for GPU
	john-descrypt-opencl-section0-fix.diff
	7z2john.py removal of some broken code
	Patches from the Hash Runner 2014 contest.

Alexander Cherepanov (16):
	Just a small patch to fix strncmp in NETLM format.
	WPAPSK bugfix.
	Some typos.
	Typo in dynamic.conf
	Replace unicode em-dash in putty files.
	Replace non-ascii char by hex code in pass_gen.pl.
	Replace several non-ascii copyright signs by "(c)" string.
	Fix typos in README.bash-completion.
	Fix some typos in README-OPENCL.
	Get rid of strncmp with n==1.
	Add some band-aid to valid() in sxc format.
	Improve robustness of valid() in pkzip format.
	Make valid() in sunmd5 format robust.
	Fix a crash in dynamic with an overlong salt.
	undrop: limit the length of password. (Fixes a crash.)
	krb5: ensure that username and realm are non-empty. (Fixes SIGFPE.)

rofl0r (15):
	factor out struct tcphdr
	Makefile: allow JOHN_LDFLAGS
	tcphdr.h: remove unneeded typedef
	tcphdr.h: special-case endian.h for mac/bsd
	timer.h: remove unneeded include (sys/timeb.h)
	timer.h: re-add sys/timeb.h to windows section
	rename vncpcap2john.cpp to vncpcap2john.c
	turn vncpcap2john.c into C
	vncpcap2john.c: fix memleaks
	vncpcap2john.c: initialize pointers
	vncpcap2john.c: remove unneeded check
	fix Makefile for vncpcap2john
	vncpcap2john: add license blurb for own contribs
	Makefile: add proper dependency information for vncpcap2john
	vncpcap2john: remove bogus NUL check in makehex()

bwall (13):
	Initial pwsafe optimization
	Removed OpenSSL tag from pwsafe_fmt_plug
	Updated copyright
	Optimized the iterated SHA256 in pwsafe-cuda
	Optimized the iterated SHA256 in pwsafe-cuda
	Added copyright information
	Applied optimizations to pwsafe-opencl and cleaned up copyrights
	Cleaned up and optimized pwsafe cuda and opencl
	Updated some copyrights of updated files
	fixed the multiple gpu revert issue
	Implemented split kernel on pwsafe-opencl
	Pushed for more optimal settings
	Increased the plaintext size to 87 in pwsafe-opencl

Harrison Neal (7):
	Add OpenCL plugin for RAKP
	Have RAKP OpenCL plugin be compiled and used
	SHA-1 OpenCL and/or AES-NI support for o5logon format
	Fixes for OMP support
	Initial centralized AES support (OpenSSL, AES-NI)
	Consolidate o5logon AES-NI and non-AES-NI formats
	Fixes for Mac OS X and parallel compilation

Tavis Ormandy (7):
	The second transpose in crypt() is not necessary, we can do it during
	  set_key().
	Move a multiplication in set_key into crypt() to vectorize it.
	Fix comments.
	testing omp support
	Use MEM_ALIGN_SIMD for message buffers.
	make cmp_all parallel in omp builds.
	Revert cmp_all omp parallel, performs poorly on AMD

Spiros Fraganastasis (6):
	add support for new openssh key format
	initial keyfile support in keepass format
	initial support for twofish in keepass
	add support for cracking VRRP hashes
	minor misc. fixes
	add support for cracking GLBP hashes

Aleksey Cherepanov (4):
	add --skip-self-tests option
	fix to repare build with defined BENCH_BUILD after add of
	  --skip-self-tests option
	Rexgen2rules: Convert of rexgen-like syntax into john rules.
	PoC rule generator for leetspeak

Jeremi Gosney (4):
	sse/xop implementation of raw-sha256
	More efficient loading of plaintexts
	sse/xop implementation of raw-sha512
	fixes for rawSHA512_ng format

Michael Samuel (3):
	Add External:KDEPaste. This takes advantage of CVE-2013-2120 to find
	  seeds that KDE Paste applet uses to generate passwords.
	Add license notice to KDEPaste external mode.
	Add external mode that replays the Awesome Password Generator 1.3.2
	  RNG.

Sanju Kholia (3):
	add instructions for cracking KWallet
	Added python code for kwallet2john.
	Added Python code for KeyStore2John and help file for cracking
	  KeyStore files.

Costin Enache (3):
	Fix for clock err in timers.
	rules.c: Provide enough space for \xHEX encoded lines (worst case, ie.
	  x4).
	Silly bug in sunmd5 busted the rounds parsing.

Thiébaud Weksteen (3):
	Add support for cracking OpenBSD disk encryption
	Add script to extract OpenBSD softraid hashes from disk image
	Use internal PBKDF2 implementation for OpenBSD softraid hashing

Deepika Dutta (3):
	Add bit-sliced MSCHAPv2 implementation by Deepika. This is added as a
	  new separate format: We now have mschapv2, mschapv2-bs and
	  mschapv2-naive.
	Add MMX version of DES_bs_crypt_plain().
	netntlm bitsliced conversion

junmuz (3):
	CUDA Multi Device Options Parsing Support Added
	Minor fix for Checking device id
	GPU DEVICE LIMIT log

Michael Ledford (2):
	Adds support for multiple keys existing in an encrypted DMG. When
	  multiple keys are found it selects the first password key header.
	  Adds support for DMG sparseimage files. Previously the first chunk
	  selected could be empty. Now chunk number one is chosen for DMG
	  sparseimage files and a new heuristic is added to the DMG format
	  plugin to look for 'Apple'.
	Adds support for DMG sparsebundle files.

Nicolas Collignon (2):
	McAfee ePO passwords converter
	enhance mcafee_epo2john.py and add license blurb

Dániel Bali (1):
	Add OpenCL target for Win32/Cygwin.

Vlatko Kosturjak (1):
	Expose markov stats file as "hidden" command line option
	  (--mkv-stats=FILE)

atom (1):
	office2john: Patch needed for cracking CMYC 2014 challenge 3.

bartavelle (Simon Marechal) (1):
	Updated copyright information

rejsmont (1):
	warning() should be static also in the header

Christopher Gurnee (1):
	For Bitcoin format, use JtR's SSE variant of SHA-512 instead of the
	  ossl one for an almost 2x speed improvement. Also a small speed
	  boost to the non-SSE variant by avoiding EVP_BytesToKey().

Oleksii Shevchuk (1):
	Add clWaitForEvents first

Péter Kasza (1):
	add support for IBM ClearQuest hashes

Sergey V (1):
	make blockchain-opencl non-plug

Lord_Rafa (1):
	fixed the arm profile to compile in parallella

Konrads Smelkovs (1):
	Perl utility to convert AIX's /etc/security/passwd to JtR format

Guth (1):
	pdf2john, validate trailer

Sébastien Kaczmarek (1):
	Lotus Domino 8.5 format added


The following changes were made between 1.7.9-jumbo-7 and 1.7.9-jumbo-8:

magnum (731):
	Add a "Section [%s] not found" before outputting the catch-all
	  --list=?
	Merge fix
	raw-md5-opencl: Report human readable errors
	opencl_mscash2_fmt.c did not declare clear_keys static.
	Fix mis-use of CL_DEVICE_MAX_WORK_GROUP_SIZE in a number of OpenCL
	  formats.
	Revert "Version change for Jumbo-7RC, and undefine
	  REPORT_OPENCL_WARNINGS" as this was only for the "jumbo-6-fixes"
	  branch.
	Add Alain's Truecrypt format as posted to
	  www.openwall.com/lists/john-users/2012/07/18/3. Make target for
	  truecrypt_volume2john is missing.
	Use maxlen in dumb16 and dumb32 external modes.
	Make sunmd5 check FMT_MAIN_VERSION, so the same file works for
	  non-bleeding as well as bleeding. Also fix some Linux warnings.
	  FIXME: This version still fails self-test under OMP. FIXME:
	  Jim and Simon, add your license statements!
	Fix new sunmd5 format struct so it works with bleeding too. Also fix
	  the ALGORITHM_NAME enumeration to new-style. This now says it's
	  using SSE2 but apparently it is not, on my gear.
	Sunmd5: fix SSE2 for 64-bit
	wordlist.c: fix segfault reported in
	  http://www.openwall.com/lists/john-users/2012/08/01/5
	wordlist.c: fix segfault reported in
	  http://www.openwall.com/lists/john-users/2012/08/01/5
	Define MMX_COEF in x86-64.h and drop the workarounds in SSE2 formats
	  that were needed cause it was missing.
	Use clear_keys() for SSE2 buffer cleaning in a couple of formats,
	  instead of doing it in set_key() if index == 0.
	Backports from john-1.7.9.6-c6.
	Replicate Vlatko's fix in 487c44ce to build_kernel_from_binary() in
	  magnum-jumbo and downstream.
	pass_gen.pl sync between branches
	wow_srp: Use the OpenSSL version, revert the -lgmp from Makefile.
	  TODO: put some (default commented out) HAVE_GMP stuff in Makefile.
	Add HAVE_GMP to Makefile, default commented out
	.gitignore update
	sed -ri 's/\bfree\(/MEM_FREE(/g' *[ch] (and then selectively
	  commit most changes)
	Bugfix for previous commit
	Limit External:Strip to 16 characters even if cipher_limit is higher.
	Do not use cipher_limit directly in External:KnownForce, because the
	  length is fixed - ie. no shorter lengths will be tried!
	Change a couple more ISO-8859-1 files (not in -fixes branch) to UTF-8
	mssql12: drop obsolete comments about SSE2. Also drop the
	  UTF-8-specific version of set_key() as we're not working against
	  vector buffers anyway and enc_to_utf16() can handle utf-8 too.
	External:Subsets: Revert defaulting to cipher_limit because it's often
	  too long. Instead, use cipher_limit to cap the used length.
	RAR: #ifdef galore
	dmg_fmt: #undef HTONL before defining it (warnings seen on OSX)
	mssql12: Unicode fixes
	Oldoffice: Proper Unicode support
	Make opencl_DES_fmt.c compatible with bleeding's format struct
	des-opencl: Use .h files for OpenCL includes (.c did not work on OSX)
	Fix a benign warning in OSX
	The new Kerberos formats depend on Kerberos 5 libs and headers. This
	  patch make them non-default - you have to uncomment HAVE_KRB5 to
	  build them.
	Make new Kerberos formats' structs forward compatible
	Use ASCII copyright signs
	Makefile: change a couple of hard-coded gcc to $(CC).
	Update some build targets with custom CFLAGS and LDFLAGS
	sunmd5: bugfix and miniscule optimization
	EncFS: Backport some fixes that was committed only to bleeding-jumbo
	OSX: Only link against krb5 if HAVE_KRB5 is defined.
	Office2john: Support multiple files in one run.
	Office format simplifications. Avoid a lot of alloc/free and
	  memcpy/memmove even though they did not hit performance much.
	Office: regression fixes for last patch
	Office: Get rid of the rest of malloc()'s + some other misc fixes.
	Office: Move Unicode conversion to set_key() so we don't have to
	  convert the same password several times. Add all sample hashes
	  we've got, as test vectors.
	OldOffice: Move Unicode conversion to set_key() so we don't have to
	  convert the same password several times.
	Ooops. Fix pbkdf2-sha512 format struct for bleeding.
	Special wordlist rule for cracking old office documents truncated at
	  15 characters.
	If ran under MPI though not built for it, complain!
	Improve the "OldOffice" wordlist rule
	Show SHA-1 in oldoffice FORMAT_NAME
	OldOffice: Inner-loop optimisations and much smaller memory footprint
	  per hash. Unfortunately the gain was smaller than I hoped for,
	  but it may be better IRL.
	Office: Very minor optimizations. OldOffice: For "salt-only"
	  formats (non-hashes), BINARY_SIZE should be 0
	Fix for sunmd5 for non-intel hardware, submitted by Sam Novak.
	RAR: gws_test() made static.
	New format office-opencl. This first version handles only Office 2007
	  and a max plaintext length of 19.
	Office-opencl: Fix some compiler warnings.
	Office: Fix some over-long test vectors that was due to a bug in
	  office2john.
	Fix format structs for new formats so they are compatible with
	  bleeding
	.gitignore update
	Office-opencl SALT_LENGTH bugfix
	Office (CPU version), optimizations for 2007/2010, 2x boost!
	Re-introduce APPLE in opencl_device_info.h
	Office-opencl renamed to office2007-opencl, and office2010-opencl
	  added. Both use split kernels, so durations should not exceed
	  200ms (by far).
	Added a CHANGES-jumbo.git which is (almost) raw output from "git
	  shortlog -n --no-merges", and placed (the changes part of)
	  Solar's announcement of Jumbo-6 in CHANGES-jumbo (mostly as a
	  placeholder, it might need editing).
	Update CREDITS-jumbo
	hmac-sha1 bug fix: Certain optimisations did not take SHA_BUF_SIZ in
	  account. Very few builds pick the old SHA-1 implementation that
	  uses 320 bytes instead of the now normal 64 bytes but native OSX
	  llvm now does, so triggered the bug.
	Add a version of our shared find_best_workgroup() that supports
	  vectorized formats.
	Bugfix for d708f98 (find_best_workgroup_vector())
	Revert recent find_best_workgroup() changes; they were no-ops. Also
	  remove some older no-op code.
	Merge 1.7.9-jumbo-7 as released, and bump the "unstable" version
	  string accordingly
	OpenCL: Read the LWS environment variable in the shared find_best
	  function.
	Fixes for new opencl_device_info.h names
	Add "Rules:None". I have added this as temporary a dozen times. It's
	  useful in some cases for Single mode and it really doesn't harm
	  having it in place.
	Office OpenCL formats: Run vectorized on some platforms (including
	  CPU).
	RAR kernel rearrangement, preparing for a split. This alone made for
	  some boost.
	OpenCL Office formats: Mitigate GPU hogging with much shorter kernel
	  durations. Barely any performance impact but much better desktop
	  response during cracking.
	Add some license stuff to RAR format, just in case. The wording was
	  already present in clamav's unrar sources.
	Forward-compatible format structs for sha256crypt-opencl and
	  postgreSQL
	RAR OpenCL: Finally, split kernel into quicker subkernels. Lousy speed
	  so far but passes self-tests. We use a 64x buffer, and run a
	  non-destructive SHA-1 over it instead of copying and flogging
	  bits around all the time. This eats loads of memory but we are
	  forced to use global memory anyway after splitting.
	RAR OpenCL: Use byte-addressed stores in some cases, if supported.
	RAR OpenCL: Back to 1x buffer and use private memory in inner loop.
	  Limit sub-kernel duration to 200 ms for GCN. Use local memory on
	  nvidia.
	RAR: Tweak GWS enumeration. Also a workaround to get the OpenCL kernel
	  running on Mac MBPr with GT 650M. This does not make any sense
	  at all, but it works. It is clearly a bug in OSX.
	Office 2013 OpenCL format added with fair performance given the task.
	  Currently fails self-test on HD7970 for no apparent reason.
	Office 2013-OpenCL: Vectorize (but only for CPU).
	Drop some bogus logic from Office OpenCL formats. I confused local
	  work size with global ditto.
	Office OpenCL formats: Add benchmark comments (iterations count)
	Add option --status-every=N
	Add a comment about Kepler (sm_30) in Makefile
	Unify CUDA and OpenCL "human_format" functions.
	RAR: Fix bugs with OpenCL profiling. In gws_test(), we did not take a
	  changed value of HASH_LOOPS into account. Worse, in crypt_all()
	  we had the global profilingEvent sent with
	  clEnqueueNDRangeKernel() even though we did not use it. This
	  lead to a memory leak and a slow but certain death.
	Office OpenCL formats: Remove unused code for shared
	  find_best_workgroup()
	Fix an inner loop memory leak in most (22 of 24) OpenCL formats that
	  use the shared find_best_workgroup() function. NOTE:
	  opencl_cryptsha256_fmt.c and opencl_cryptsha512_fmt.c are NOT
	  fixed here. They need some other fix, for example reverting to
	  private functions or a fixed (semi-fixed) value.
	Revert patch 4f12506 and implement a cleaner solution: We now use a
	  pointer for profileEvent, and it's set to NULL after
	  find_best_workgroup() so no more events will be created.
	Office OpenCL formats: Now that I got profiling straight, use the
	  shared find_best_workgroup() for a little boost on some
	  platforms.
	Add missing FMT_OMP to Office OpenCL formats.
	Another tiny (and benign) cl_event memory leak fixed in
	  common-opencl.c
	OpenVMS format: forward-compatible format struct.
	RAR: Prepare to use the shared find_best_workgroup() function - but
	  don't. For some reason, it returns a suboptimal figure. Also, it
	  takes time.
	Office OpenCL formats: Revert to fixed LWS yet again. Auto-conf is
	  simply too slow and unreliable.
	--list=cuda-devices: show number of SP, if known.
	Some added information in doc/BUGS - that might be candidate for
	  moving to some other documentation because it's not really about
	  bugs.
	common-opencl.c: Support split kernels with
	  opencl_find_best_workgroup(). RAR & Office OpenCL formats:
	  Implement the above but still, use hard-coded figures.
	RAR & Office OpenCL: Enumerate LWS if explicitly asked to.
	common-opencl.c: Add a way to pass parameters when building kernel.
	  RAR & Office OpenCL formats: Use this (more to come).
	Make RAR (OpenCL) much more responsive, doing less per kernel call.
	  Print Office kernel durations while benchmarking (GWS=0).
	Office2013-opencl: Fix minor bug in enumeration.
	RAR: GETCHAR/PUTCHAR macro optimisations (vs. arch)
	RAR: Tweaks.
	Silly bug: The new --status-every option clashed with the original
	  --status option. Rename the former to --progress-every.
	RAR: Fix bugs in auto-tuning to device. Office2013: Less X
	  hogging.
	NETLM/NTLM/v2 formats: Fix a signed vs unsigned char bug, and make
	  case shifting UTF-8 aware (as opposed to just codepage-aware).
	  Also bump some limits to accommodate for UTF-8 encoded user and
	  domain names.
	common-opencl.c: Add get_global_memory_size(), and tweak
	  find_best_workgroup().
	Add NTLMv2-opencl. Well behaved but I/O-bound. Vectorized on CPU,
	  passes Test Suite. Full Unicode support.
	NTLMv2-opencl: Change hard-coded challenge length figures to
	  SALT_SIZE_MAX and fix a bug in salt_hash() (our salt format is
	  different from the old).
	NTLMv2-opencl: Only run vectorized on CPUs.
	Encfs: Trying to nail an OSX problem. Change a dynamic allocation to
	  using alloca() explicitly. Some optimisations while at it.
	  Problem went from segfault to FAILED (cmp_all(1)) but it
	  actually seems to be a problem with whatever OpenSSL version I
	  happen to use here.
	Drop an erroneous linefeed from --list=hidden-options.
	Revert "Encfs: Trying to nail an OSX problem. Change a dynamic
	  allocation to using"
	Fix for common_opencl_pbkdf2.c that hid the actual error output on
	  "SYNC FAILED"
	Fix a common mispeling
	Add missing error handling in all CUDA kernels. Also add some
	  information in README-CUDA about too high THREADS settings as
	  well as a specific hint from HANDLE_ERROR for the "too many
	  resources requested" error. Finally, add some missing stuff in
	  Makefile so a header file change will cause a rebuild of
	  wpapsk-cuda or pwsafe-cuda.
	ssha-opencl: Tweak the device auto-tuning, fixing several problems.
	Bugfix in md5crypt-cuda. If we clear any_cracked we must also clean
	  the outbuffer.
	ssha-opencl: Further tweaks for work size selections
	encfs-opencl: Make it possible to specify GWS. LWS can already be
	  forced due to the shared find_best_workgroup function honoring
	  it.
	Respect "iterations" parameter in odf (sxc) PBKDF2 kernel
	For some reason the OpenCL kernel for OpenPGP/GnuPG was using unsigned
	  long for 32-bit integers. Fixing this made for a 20% boost on
	  Tahiti but it did not help the nvidia, which fails with the
	  cryptic message "Module-scoped variables in .local state space
	  are not allowed with ABI". Maybe that is just another driver
	  bug.
	Some added information in GPU docs, regarding temperatures, watchdogs
	  etc.
	Rename doc/README.opencl to README-OPENCL for consistency with the
	  CUDA docs.
	Update CHANGES-jumbo.git and CREDITS-jumbo.
	Manual corrections of CHANGES-jumbo.git and CREDITS-jumbo
	Move some less used options from main usage output to "hidden"
	  (shown with --list=hidden-options)
	Add description of --progress-every=N to doc/OPTIONS.
	OpenCL: Apple does not expose get_compute_capability() so we need to
	  find out SP count using mory hacky approaches.
	Add Max. GPRs/thread block to --list=cuda-devices
	Add more info to --list=cuda-devices.
	Support for codepages: CP852, CP1250 and ISO-8859-2.
	Update doc/ENCODINGS with newly supported encodings.
	Split kernel and some optimizations for wpapsk-opencl. And device
	  auto-tuning.
	wpapsk.h: The prf_512() function was doing four times more work than
	  needed. This change boosts OpenCL and CUDA formats a lot,
	  decreasing the CPU post-processing. HD7970 went from 66197 c/s
	  to 89468 c/s.
	Trying to work around AMD bugs in ntlmv2 OpenCL format, or help the
	  optimizer, or both. The RAR and Office OpenCL formats were checked
	  too but did not contain such code.
	OpenCL kernels RAR, Office, NTLMv2, WPA-PSK: Drop all pragma unrolls.
	  The compiler unrolls anyway where sensible.
	wpapsk-opencl: Move all post processing from CPU to GPU or otherwise
	  out of the inner loop. Great boost! Also bump max plaintext
	  length from 15 to 32.
	Add progress indicator during GWS enumeration in all my formats.
	ntlmv2-opencl: Implement clear_keys() for faster buffer cleaning.
	Update .gitignore
	opencl_rawsha256_fmt.c: Add missing stuff for FMT_MAIN_VERSION > 9
	opencl_rawsha256_fmt.c: Add more missing stuff for FMT_MAIN_VERSION >
	  9
	Add null-hash test vectors to some unsalted formats that lacked them.
	Add max. memory alloc. size to --list=opencl-devices
	ntlmv2-opencl: Use up to 1/4 of GPU memory
	ntlmv2-opencl: Map buffer instead of enqueing transfers. This can be
	  changed with a #define to use clEnqueueRead/Write. Until now, it
	  was mapped *and* enqueued transfers, which was a bug!
	ntlmv2-opencl: Don't try to account for clear_keys in gws_test().
	ntlmv2-opencl: Revert 65071a1. Documentation as well as google results
	  are contradicting but apparently it was correct as it was.
	  Use CL_READ_WRITE_INVALIDATE_REGION if available (OpenCL 1.2)
	OpenCL formats: more complete release_clobj() and other tweaks.
	Extend opt_flags to 64-bit and move all Jumbo-specific flags to
	  the high 32 bits. Core now have 7-8 free flags, Jumbo has 24.
	The previous patch reset a FLG_NONE behaviour that Jumbo did not have
	  before. This had unexpected consequences so this is now reverted
	  (FLG_NONE is 0 again). Also a cosmetic (code) fix for loopback.
	New GPU options: --request-vectorize and --request-scalar. These are
	  only supported by a few formats. Obviously they are mutually
	  exclusive.
	ntlmv2-opencl and office-opencl formats: Never run vectorized unless
	  asked to. There's just too many problems (driver bugs).
	OpenCL formats Office/rar/ntlmv2/wpapsk: Add a clFinish in
	  release_clobj() for safety. With a little luck this fixes some
	  problems and I'll regret blaming the drivers :-P
	cryptmd5-opencl: Selective use of bitselect, use pinned memory and
	  auto-tune to device.
	OpenCL: Shared find_best_workgroup() tweak for vectorized formats.
	office2010-opencl needed the same workaround for OSX that office2007
	  had.
	Regression fix for 11ecdb0: loopback mode did not work because
	  wordlist.c mis-read the 64-bit options flags.
	cryptmd5-opencl: Allocate/map buffer per nvidia's best practices for
	  pinned memory. This involves creating an extra buffer that we
	  have missed so far.
	ntlmv2-opencl: Allocate/map buffer correctly. Quite a boost on some
	  devices.
	office2007-opencl: Allocate/map buffer correctly. Also fixed what I
	  thought was an Apple bug. Silly me.
	office2010/2013-opencl: Allocate/map buffer correctly.
	RAR & wpapsk-opencl: Allocate/map buffers correctly.
	Re-work some OpenCL error handling and add a margin for max gws
	ntlmv2-opencl: Use macros for MD4 and MD5 (because they are same
	  whether vectorized or not)
	Office2007/2010 OpenCL: Use a macro variant of SHA1, that is also has
	  an optimized version for the short-length SHA-1's (idea from
	  wpapsk).
	wpapsk-opencl: Use Milen's SHA1 on AMD, and Lukas' on nvidias.
	ssh-ng: Benchmark with crippled plaintexts, so we get real speed
	  reported: It's about 10x faster than the old ssh format.
	OpenCL raw-md4/md5/sha1: Fix buffer allocations per nvidia's
	  recommendations
	Revert "OpenCL raw-md4/md5/sha1: Fix buffer allocations per nvidia's
	  recommendations"
	EncFS: Reduce effects of an OSX problem.
	Update .gitignore
	EncFS: Fix a bug that for some reason only surfaced on OSX.
	Fix format structs for krb-ng, lastpass-sniffed and mongodb to work
	  with version 10.
	Add ULL to the 64-bit options flags definitions.
	Move the "hidden" options printout to options.c. Move --plugin to
	  "hidden" and move --save-memory above format list.
	krb5ng: Various optimisations, including: Check for known plaintext.
	  Always use fast PBKDF2 for short keys instead of choosing at
	  compile-time.
	krb5ng: Make a couple of functions static.
	Update .gitignore
	krb-ng: Remove (#if 0...#endif) an unused function
	xsha512-ng: Fix a format struct problem for v10. The split() function
	  prototype has changed!
	Fix for "testpara" and "generic" make targets
	mskrb5: Use Dhiru's approach from krb5-ng, giving us proper binaries
	  instead of being a "salt-only" non-hash format. The known
	  plain-text trick is now used as a short-cut within crypt_all().
	  The benchmark may indicate a slight regression for single core
	  but IRL this is faster and scales better.
	New format: krb5ng-opencl. Core copied from WPAPSK but now made
	  generic so future formats using pbkdf2-hmac-sha1 will be easy.
	Various tweaks: Remove the "MS" from krb-ng format name. Bump limits
	  for wpapsk-opencl up to what is actually supported by WPA-PSK.
	  Remove some redundant code from wpa-psk kernel.
	wpapsk-opencl and krb5ng-opencl: Support vectorization. Great for
	  OpenCL/CPU and probably VLIW AMD. Currently default to off, use
	  with --request-vectorize
	OpenCL formats wpapsk/ntlmv2/office/krb-ng: Revert to always vectorize
	  on non-GCN AMD GPUs. Not on CPU, because I see some drivers
	  doing a very poor job of compiling it although it should be a
	  no-brainer and produce SSE2.
	Vectorized OpenCL formats: Add parens against ambiguity, and fix a
	  whole bunch of kernel bugs that crawled in there while I was in
	  WAT mode.
	Last vectorizing bug hopefully fixed.
	krb5pa-sha1: Last change to input format (hopefully). krb5ng-opencl:
	  rename to krb5pa-sha1-opencl, incorporate CPU format changes and
	  support etype 17 as well.
	Rename mskrb5 to krb5pa-md5 and support our new input format from
	  krbpa2john.py. The old input format is also still supported
	  although I am not aware of any tool outputting it.
	valid() tweaks in a couple of formats. If we print a warning about
	  salt length, we better a) be sure the hash is otherwise valid,
	  and b) include the FORMAT_LABEL in the printout.
	Add a self-test that fails if a format claims SPLIT_UNIFIES_CASE
	  despite using fmt_default_split. This finds several offending
	  formats.
	Implement a split() in krb5pa-sha1 formats
	KRB4: More robust valid()
	krb5pa formats: Make the new split() functions fmt struct v10
	  compatible.
	KRB4 valid() fix
	WPAPSK valid() fix
	krb5pa-sha1 valid() fix (use the one from krb5pa-sha1-opencl)
	Include some AMD extensions to OpenCL device list.
	Self-test "valid() killer" that unfortunately will produce a segfault
	  instead of FAIL when it hits a bug. (only active with -DDEBUG)
	Rearrange the AMD OpenCL device-list items.
	OpenCL device-list fix: Need to init device_info[d] earlier.
	OpenCL device-list fix: strip leading whitespace from buggy device
	  names, and other list-device tweaks.
	OpenCL device list: Mute a compiler warning on OSX. Print PCI stuff
	  with leading zeros.
	Unicode: Ensure that our 'UTF32' typedef does not end up 64-bit.
	ntlmv2-opencl: Partial binary transfer, for a little boost.
	Speed up iterated split-kernel formats auto-tuning by not doing all
	  the iterations.
	Speed up RAR OpenCL format's auto-tuning by not doing all the
	  iterations.
	OpenCL device list: Do not print "cache size" if zero (it's usually
	  not true).
	pass_gen.pl: Change deprecated 'utf8' encoding to 'UTF-8'
	NTLMv2: Do Unicode conversion on GPU. Support for short lengths
	  (faster), honor the --length option. Drop support for
	  vectorization.
	Rename --length to --max-length and also add --min-length. Make Markov
	  and Incremental modes honour them. Add req_minlen and req_maxlen
	  variables to External mode for accessing them. Change a bunch of
	  existing external modes to honour them. TO DO: --min-length
	  support for Wordlist and Single. And regression testing!
	Add some sanity checking to --min-length and --max-length. Support
	  --max-length in Single and Wordlist. Also, add some MPI stuff to
	  fprintf calls that lacked it.
	Support --min-length in Rules (includes Single mode) and Wordlist
	  without rules. This needs to be checked for performance
	  regression, especially for the case where we do not use the
	  option.
	Bugfix: Do not list request-vector/scalar in list of --list options.
	Enable crypt(3) for 64-bit OSX targets.
	rules.c: Skip (as opposed to truncate) words longer than maxlength.
	wordlist.c: Implement --min-length and --max-length in buffer loading
	  when rules are not in use. Move handling of unbuffered
	  --min/max-length away from dummy_rules_apply(), and into the
	  main loop. --max-length will skip words, not truncate them.
	Minor fixes for --min/max-length
	wordlist.c: Implement --min/max-length for pipe mode too. And a bug
	  fix for unbuffered/stdin reads.
	ntlmv2-opencl: If max length is decreased, reflect it in benchmark
	  comment.
	Silence a bunch of compiler warnings emitted by newer gcc (the ones
	  that were my bad)
	Drop SPLIT_UNIFIES_CASE from clipperz format, because, well, it
	  doesn't.
	formats.c bug fix: We must call clear_keys() after self-tests,
	  otherwise first batch of keys to crypt_all() in the real crack
	  might be thrashed. This made for failures in hmac-md5, hmac-sha1
	  and mssql but I just couldn't find the culprit until now.
	Silence a compiler warning from the OpenCL binary-caching patch
	Quick-response to "events" (like key presses) for my loop-kernel
	  OpenCL formats. I'll let Claudio and Sayantan decide for
	  themselves whether to use it or not. Note that the clFinish() is
	  needed within the loop for this to work correctly.
	Use OpenCL's "spinning wheel" cursor during self-test, so we can see
	  where it ends. We could have it within benchmarking too but it
	  would affect speed. It's not 'erased' until after benchmarking,
	  so we can still see when a real crack really starts.
	Make "my" OpenCL formats adjust global worksize to the count argument
	  to crypt_all(). On my laptop, this decreases self-test time for
	  Office 2007 from 3:30 to 0:41. This is also good for Single mode
	  since we can now set min keys per crypt to local worksize.
	Fix a bug introduced in ef133e4 where a system with OS_TIMER=0 would
	  run into problems when the formats called sig_timer_emu_tick()
	  during benchmark. To fix this, I made bench_running a global
	  variable. Maybe there are better ways. This patch also fixes a
	  minor bug in erasing the "spinning wheel".
	When StatusShowCand option (in john.conf) is true, add the figure to
	  log as well.
	Add a john.conf option NoLoaderDupeCheck, for skipping dupe-checking
	  while loading hashes. This is for testing purposes only.
	Sayantan's formats: errors/diagnostics to stderr, please.
	Fix .gitignore after 6b66504
	SAP formats: Add a salt length check in valid()
	RAR format: Since the OpenCL code no longer falls back to CPU in
	  Single mode, break out the OpenCL code into a separate
	  rar-opencl format just like the rest of them.
	Sayantan's formats: errors/diagnostics to stderr, please.
	Fix .gitignore after 6b66504
	SAP formats: Add a salt length check in valid()
	RAR format: Since the OpenCL code no longer falls back to CPU in
	  Single mode, break out the OpenCL code into a separate
	  rar-opencl format just like the rest of them.
	Drop "data_info" from raw-md4-opencl and raw-md5-opencl. It was
	  unneeded and just wasted time. Plus other tweaks.
	Use cached binaries for Apple platforms too.
	Bugfix for OpenCL binary caching. The old code depended on a null
	  terminator that wasn't guaranteed. Also, I'm not sure you can
	  pass a buffer to sprintf() both as destination and as one of the
	  arguments with defined results.
	Bugfixes for v10 format struct in opencl-encfs_fmt.c
	Fix a bug in options.c print_usage(), reported by scan-build.
	unicode.c: remove some dead code as indicated by scan-build.
	Remove dead increments in sapG, found by scan-build.
	Remove dead increment in sha256crypt, found by scan-build.
	Reset a "dangling reference" in single.c as found by scan-build. This
	  was not really a bug but we can reset it to NULL for good
	  measure.
	Comment out all "rar_dbgmsg()" from unrar sources, to silent some
	  tools.
	Fix a minor memory leak in rules.c userclass_expand() reported by
	  scan-build.
	Fix a non-issue in calc_stat.c just to silence scan-build.
	cuda_xsha512: reduce BSS with 70 MB or so and provide a done() embryo.
	opencl_xsha512: reduce BSS with 15 MB or so and provide a done().
	opencl_rawsha512: reduce BSS with 15 MB or so and provide a done().
	cuda_rawsha512: reduce BSS with 15 MB or so and provide a done().
	opencl_mscash2: reduce BSS with 8 MB or so and provide a done().
	opencl_bf_fmt.c: Reduce static footprint. More is needed but it's in
	  opencl_bf_std.c and can't be allocated in format's init() just
	  like that.
	OpenCL formats: rename all "release_all()" functions to "done()" in
	  order to prepare for upcoming core changes
	OpenCL: Change opencl_init_opt() to use the binary caching feature.
	common-opencl.c: Output "build" time even for cached binaries, in case
	  they take over 2 seconds.
	Makefile: Copy the OpenCL kernels using -p flag, so we don't
	  invalidate cached binaries unless actually needed.
	Bugfix: Cached binaries must include compile options as selection
	  criteria.
	raw-md4-opencl & raw-md5-opencl: Honour the -max-length option, for
	  performance.
	raw-sha1-opencl: Some optimizations, and honour the -max-length
	  option.
	Fix a silly bug in my MIN/MAX macros. They were not protected enough.
	Experimental: Let Incremental and Markov modes call
	  format->methods.clear_keys() after setting
	  options.force_maxlength to actual used length. This gives the format
	  a chance to optimize for that length if possible. No format
	  currently use this.
	Change whitespace to '_' in binary file names.
	OpenCL raw md4/md5/sha1 formats optmizations.
	common-opencl.c: No need to call include_source() with a cached
	  binary.
	common-opencl.c: Reflect that we are using a cached binary in case of
	  errors.
	No-op workaround for false positive in scan-build. See
	  http://www.openwall.com/lists/john-dev/2012/12/23/12
	formats.c: Add a self-test that puts maximum length candidates in all
	  buffer positions and then read them back to verify. This finds
	  incorrect claims of PLAINTEXT_SIZE as well as most kinds of key
	  buffer over-runs. It found 15 problematic formats right away.
	sapB: The new self-test actually gave a false positive on this format.
	  This patch works around it.
	raw-md4: fix a bug (SSE2 only) that made plain texts longer than 31
	  end up incorrect.
	Fix the max-length bug in Truecrypt formats. While at it, bump max
	  length to 64 because there is no gain in limiting it, and 64 is
	  the actual limit in Truecrypt according to
	  http://www.truecrypt.org/docs/?s=keyfiles.
	Reduce risk of new self-test to segfault due to problems.
	Fix the new max-length self test so it only runs once.
	RAR formats: Max length fix.
	sapG: Workaround for problems induced by the max length self test.
	sapG: Regression fix for non-OMP builds after b15beb1.
	DMG format still segfaulted from the valid() kill self-test. It also
	  made a strdup() before even checking the format tag, which is a
	  Bad Idea[tm].
	PuTTY format still segfaulted from the valid() kill self-test.
	formats.c: Only run the "valid() killer" once, even if we have a
	  larger keys_per_crypt than number of test vectors.
	Fortigate: optimize order of tests in valid().
	IPB2: optimize order of tests in valid().
	Unified raw-md4-opencl and raw-md5-opencl again, and fix max length
	  bugs in them and in raw-sha1-opencl. The raw md4/md5 formats
	  should be identical except s/md4/md5/. The raw sha1 format could
	  also be very very similar but is not yet.
	Fix a typo in numerous OpenCL formats.
	Numerous bug fixes and optimizations in mysql-sha1-opencl.
	Max length bugfix in ssha-opencl. This format can be optimized a whole
	  lot but I don't have the inspiration.
	Fix max length bug in IPB2.
	Fix max length bug in IPB2 (last patch did not really do it).
	SIP: Remove some weird double work. More optimizations are possible.
	Rar-opencl: Reduce self-test slow-down due to max. length test.
	Office OpenCL formats: Reduce self-test slow-down due to max. length
	  test. SIP format: drop a now unused variable.
	Max length bugfixes in dominosec, epi and krb4 (all just fence-post
	  bugs)
	Oracle11 workaround for new max-length test problems (not really a
	  bug).
	Make encfs-opencl a little more friendly. It still needs a split
	  kernel.
	UTF-8 reverse bodge for the max-length self-test. Formats the take
	  UTF-8 and convert to UTF-16 use to triple the reported max
	  length, and truncate themselves. We must do the same, or we'll
	  get false errors.
	mscash bug when using codepage, found with new max. length self-test
	  in conjunction with the almighty Test Suite!
	BENCH_BUILD ifdefs for the new self-test, needed after adding
	  options.utf8 stuff.
	Max-length fixes for dynamic.conf, fixing dynamic_1001..dynamic1013
	Bugfix for a truckload of formats that did this:
	Fix Lukas' pbkdf2-hmac-sha1 so it can handle a max. length of 64.
	  There is no gain in limiting it (actually the new code is faster
	  due to optimizations). Affected formats: agilekeychain, wpapsk,
	  dmg, encfs, keychain, krb5pa-sha1, strip - as well as CUDA and
	  OpenCL versions of them.
	ODF: Use our own PBKDF2. Also, bump max length in OpenCL version - the
	  PBKDF2 is not made from the plaintext but from a hash of it.
	Change the PBKDF2-HMAC-SHA1 in keychain.h to take an output length
	  argument and make ZIP and SXC use it instead of Gladman code -
	  2x boost!
	OpenCL fixes: 2x boost for ODF and 4x boost for SXC. These format are
	  still very rough.
	Improve max-length self-test so it better reflects real world.
	Further improve max-length self-test to avoid false positives and
	  catch even more real problems. This also fixes an older problem:
	  Some formats depend on all keys being set before calling
	  crypt_all() so now we do call set_key() for indexes that are
	  otherwise skipped.
	dynamic_fmt.c valid() bugfix: It did not reject overlong raw hashes.
	More dynamic_fmt valid() fixes. Still passes Test Suite so should be
	  OK.
	Dynamic bugfix. If DynamicAlwaysUseRawHashes = Y, we must disable it
	  for thin formats.
	Reduce BINARY_SIZE for OpenCL formats that was transferring partial
	  binaries anyway.
	OpenCL: Only replace whitespace with '_' in device name part, not
	  path.
	Some updates to README-OPENCL. This whole file should be reworked but
	  I am not the man.
	Reduce global work size to 'count' in more OpenCL formats, speeding up
	  self-test and helping Single mode a lot. Also some bugfixes. And
	  unify the various non-split pbkdf2 kernels we had, so there is
	  only one to maintain. RAR is currently b0rken.
	s/Alocate/Allocate/g
	More fixes to Dhiru's PBKDF2 OpenCL formats
	OpenCL pbkdf2_unsplit fixes
	More OpenCL fixes
	Silly bug in SXC and ODF found by Dhiru
	SXC bug tracked down, plus other minor bugs in SXC and ODF. Both work
	  now.
	ssha-opencl: Check device max allocation size.
	Make use of mem_calloc() in a bunch of GPU formats. Also change some
	  mem_alloc_tiny to mem_alloc and add MEM_FREE() in done().
	Makefile: Ensure that a change of common_opencl_pbkdf2.h will result
	  in re-compile of common_opencl_pbkdf2.o and
	  opencl_mscash2_fmt.o.
	More Makefile tweaking
	gpg-opencl fixes. View this patch with "git diff -w"
	gpg-opencl cosmetical fix.
	Make it safe to call clear_keys() for --stdout
	Drop an unused function in gpg-opencl
	Change the plugin magic in Makefile so formats are loaded in
	  alphabetic order of format struct names. Also, change the struct
	  for raw-sha512 so it will take precedence over other 64 byte
	  (128 hex chars) bare hash formats (currently raw blake2).
	Change name of blake2-512 to raw-blake2-512, so it doesn't get bullied
	  by the rest of the raw format gang.
	Change calc_stat so that the -p option enables support for 8-bit
	  characters as opposed to just mute the warnings. The usage
	  output already claimed this was the case.
	UTF-8 validity check in Markov mode.
	Fix for UTF-8 validity check in Markov mode.
	Full UTF-8 validity check in Markov. Markov mode now works pretty good
	  with UTF-8 provided you use -p with calc_stat and --enc:utf8
	  with Markov mode.
	Revert "expose markov stats file as command line option"
	Add usage output for mask mode.
	Register GPU formats first (even before core formats - this is
	  experimental)
	Revert "Mask mode bugfix"
	Load raw-md5 and raw-sha1 OpenCL formats before others.
	Do not trust the compiler to optimize away strlen of constants in
	  valid()
	Change the format tag of raw-md5-opencl to dynamic_0 just like the
	  others.
	Rename raw-blake2-512 to raw-blake2 and reflect SIMD usage in
	  ALGORITHM_NAME
	Fix lastpass format struct
	Fix a bug introduced with e82b54e. When running --stdout, we have a
	  limited format struct, and params.label is NULL.
	Fix a bug in rar2john - it tried to fclose() twice.
	Add big-endian versions of our dump_stuff() debug functions.
	Allow running an OpenCL build with no platforms detected.
	Drop UTF-8 test from Markov. The performance impact is not worth it.
	  For slow formats we could use an external filter.
	OpenCL crypt-md5: Get rid of global memory use in inner loop. More
	  effective buffer use and some other tweaks. Significant boost on
	  both nvidia and AMD.
	A few more md5crypt-opencl tweaks, mostly cosmetical.
	Shared (unsplit) PBKDF2-hmac-sha1 OpenCL kernel endian bug fixed (only
	  affecting non-word key lengths). And some other ZIP tweaks.
	Revert "Load raw-md5 and raw-sha1 OpenCL formats before others."
	Bugfix for Office OpenCL formats when running vectorized.
	Cludge for a problem where benchmark_timer is reset (because benchmark
	  time was reached) but the benchmark timer is still active,
	  leading to SIGALRM with no handler. If we ever saw
	  benchmark_running, we keep away for good.
	Revert f8bf37d and try a cleaner fix.
	OpenCL Office formats: get_key() bugfix, affecting UTF-8 mode.
	Unify output. "work size" and "work-size" are changed to just
	  "worksize". Not that it's more correct, but it's the shortest
	  version :-)
	Turn off OpenCL warnings. And bump version string to
	  1.7.9-jumbo-8-unstable.
	Drop an nvidia workaround that just affect 9600GT on 295.49. If
	  needed, we must make the selection criteria more narrow because
	  it makes krb5pa-sha1 fail on Bull.
	gpg-opencl: Honour LWS and GWS environmental variables.
	strip-opencl: Honour LWS and GWS environmental variables.
	xsha512-opencl: Honour LWS and GWS environmental variables.
	keychain-opencl: Honour LWS and GWS environmental variables.
	nt-opencl: Honour LWS and GWS environmental variables, plus
	  optimizations.
	pwsafe-opencl: Honour LWS and GWS environmental variables.
	raw-sha512-opencl: Honour LWS and GWS environmental variables.
	Ignore environment LWS in common find_best_workgroup. Formats that
	  handle that won't call this anyway. Fix a minor bug in
	  nt-opencl: This format does not honour the count argument to
	  crypt_all() so we better set min_keys_per_crypt same as max.
	phpass-opencl: Honour LWS and GWS environmental variables.
	mysql-sha1-opencl: LWS/GWS (environment variables) fixes.
	Ensure local/global_work_size are reset in all OpenCL formats. When
	  running --test, we may otherwise end up using figures from a
	  previous format.
	raw-sha1-opencl: LWS/GWS (environment variable) fixes.
	Final fix to the SIGALRM problem. My previous attempt at installing a
	  restarting signal handler was correct but incomplete (only
	  worked on some platforms).
	Office OpenCL formats: Once again revert to using scalar code for all
	  devices due to what seem to be driver bugs.
	Common-opencl: do not release unused event. No harm done but it can
	  produce confusing debug messages.
	Wpapsk-opencl, krb5pa-sha1-opencl: Faster LWS enumeration (no
	  iterations).
	Bugfixes for the new restart code in bench_handle_timer().
	bench.c: For --test=0, make the OpenCL formats also do quick
	  benchmarking (for self-tests, not benchmark figures).
	CUDA fixes. The --request-scalar/vector options does not apply to CUDA
	  (yet).
	Less ambiguous usage text for --raw-always-valid
	bench.c: Include stdlib.h for setenv
	OpenCL: Print AMD-specific "board name" along with device name.
	OpenCL: Bump cached file name buffer to PATH_BUFFER_SIZE after seeing
	  problems with very long names (long device name plus long
	  options made for 130 characters full path name).
	Obey CL_KERNEL_WORK_GROUP_SIZE in a number of OpenCL formats.
	bench.c: Add a linefeed after FAILED, and add output when all formats
	  pass.
	More LWS/GWS vs. min/max-keys-per-crypt fixes.
	The dreaded format struct stuff, for kwallet
	raw2dyna: fgets wrapper macro for muting compiler warnings
	README-CUDA: Now featuring magnum's "OpenCL vs. CUDA parlor", showing
	  how to tweak your CUDA formats using the values from OpenCL's
	  automatic tuning.
	SybaseASE: Allocate key buffer using calloc (should not be needed
	  though)
	Drop obsolete External modes (deprecated by the --min/max-length
	  options)
	Fix the "fopen: john.rec: No such file or directory" bug. It was
	  caused by path_init() not being called early enough. Not sure
	  who did that.
	Move the 500+ lines of --list logic out of john.c and into its own
	  file.
	dynamic_fmt.c: Mute compiler warnings about breaking strict-aliasing
	  rules. listconf.c: Add JimF in copyright blurb.
	Makefile: Add -Wno-attributes for muting loads of "warning:
	  always_inline function might not be inlinable"
	Revert 8a1b909 and introduce another change suggested by Frank.
	Fix a subtle bug in the OSX workaround for rar-opencl. Found by the
	  max-length self-test. Also bump max length to 22 and drop a couple
	  of obsolete "FIXME" in unrar code.
	Re-enable a 9600GT workaround in ntlmv2-opencl and wpapsk-opencl, but
	  not in krb5pa-sha1. This should work on Bull as well.
	phpass-opencl bugfix.
	Make dynamic_fmt fully movable between unstable and bleeding.
	Documentation updates.
	Update CHANGES-jumbo and CREDITS-jumbo (and the .mailmap that helps
	  producing them).
	Add Milen to CREDITS-jumbo.
	Lastpass: Bugfix in valid().
	dmg-opencl: valid() bugfix (segfaulted from the valid-killer[tm])
	common-opencl: I believe "source size" is poor wording for binary
	  size.
	Truecrypt formats: Change benchmark output to raw.
	PuTTY, GPG and krb5-pa-sha1: Change benchmark to raw. SybaseASE: Move
	  stuff from crypt_all() to set_salt(). It did not make much
	  practical difference though.
	Some more typos, and GPU README updates (supported formats list).
	OpenCL: Change the -DAPPLE for OpenCL build options to -D__APPLE__.
	Commit 04cf5f1 hurt performance for dynamic because data locality
	  suffered. This patch reverts it and use a union instead, to
	  satisfy the compiler.
	Relbench: Ignore the new "All nn tests passed self-tests"
	Single mode: Optionally load the full GECOS field (before splitting)
	  as one extra candidate. This is controlled with PristineGecos in
	  john.conf (and defaults to disabled).
	Use list_add_unique() for the optional PristineGecos loading.
	truecrypt_volume2john had CRLF line endings.
	clang debug target fix.
	Add self-tests that fail if you have a binary size > 0 but are using
	  fmt_default_binary() - and a similar test for salt. I believe this
	  does not emit any false positives but I'm not 100% sure yet.
	BFEgg: Don't convert to base64 in crypt_all(), instead implement a
	  proper binary() that does the reverse.
	formats.c: Degrade the latest self-tests to just warnings, and they
	  are also completely disabled unless -DDEBUG.
	Fix a logic error for some only-once warnings.
	Use correct value of BINARY_SIZE: GPU formats, and a couple Dhiru
	  missed (?)
	Revert "clang debug target fix."
	NetHalfLM and XSHA512: Alignment fixes.
	Backport OpenCL fixes that was only committed to bleeding.
	Revert "OpenCL: Change the -DAPPLE for OpenCL build options to
	  -D__APPLE__."
	Fixes to keychain-opencl, strip-opencl and agilekeychain-opencl that
	  were only applied to bleeding.
	Use -DDEBUG for the clang-debug targets!
	Office OpenCL formats: Better valid(), with CPU format as template.
	RAR formats: Implement a real bastard of a valid(). I will soon start
	  denying having written it.
	Minor self-test tweaks.
	Bwall's pwsafe patch broke builds using CommonCrypto. This fixes it.
	Fix a hideous bug in rar2john introduced by in 216cc57. A variable was
	  declared as just "unsigned" (taken as int) instead of "unsigned
	  char" which lead to incorrect output. Not sure why the compiler
	  did not warn.
	Correct ALGORITHM_NAME of mssql-12, pbkdf2-hmac-sha512 and the
	  Truecrypts. Use sha2.h for a number of formats that depended on
	  OpenSSL 0.9.8 (all but Truecrypt). Bump max length to 125
	  for pbkdf2-hmac-sha512 format. There's absolutely no point in
	  limiting it to 15.
	Fixes for builds using Jim's homebrewn SHA-2.
	Warnings from valid() should be suppressed if ldr_in_pot is set.
	Fix for ldr_in_pot.
	Introduce hash functions to hmac-md5.
	Introduce hash functions to hmac-sha1.
	Try to automagically detect and locate NSS, GMP and KRB5 libs, and
	  enable corresponding formats if successful. This is using Posix
	  find/grep and backticks. And pkg-config, if available.
	MPI: Limit scope of an internal variable.
	BLAKE2: Do not "secure zero memory".
	SIPdump fixes (CppCheck). Also revert using MEM_FREE() and mem_alloc.
	  That is not a good idea for a stand-alone.
	(Ab)use bench_running variable for keeping opencl_process_event() from
	  processing events while self-test is running. Otherwise a slow
	  self-test in combination with a short Save interval will thrash
	  the .rec file during start of a resumed session.
	WPAPSK formats has a minimum password length of 8. This patch adds
	  code to john.c that enforces this. We may want to add min_length
	  in the format struct later on, and remove this hack.
	WPA-PSK had a silly ESSID length limit of 14 that was already bumped
	  to 32 (the actual real-life limit) for the OpenCL version.
	  Moreover, it segfaulted on longer names. This patch bumps it for
	  CPU & CUDA too. For some reason the hccap buffer size is 36
	  (from hccap2john) so I kept that. Perhaps it's because it ends
	  up aligned including room for a NULL.
	Decrease PLAINTEXT_LENGTH for all WPA-PSK formats to 64, because that
	  is the spec. limit. More interestingly, the spec. says the
	  characters set must be 0x20-0xfe (printable ASCII) so we also
	  unset FMT_8_BIT.
	Add two WPA-PSK test vectors, including one for WPA (as opposed to
	  WPA2).
	Get DMD5 straight, and add OMP support. This format was seriously
	  broken.
	dmg: Make _memmem() static inline (will hopefully optimised away the
	  switch), enable 64-bit tests on 64-bit arch and disable
	  unaligned checks on platforms that does not support it.
	  dmg-opencl: Same fixes to _memmem(). ssh-ng: Provide an own
	  static inline copy of _memmem() instead of using one from dmg.
	Bump OMP_SCALE for DMD5.
	Unify Kerberos names.
	DMD5 format should not lowercase nonce hashes. They are used as-is!
	hmac-sha1 bugfix for get_hash().
	Cosmetical changes.
	SAP formats: Minor fix mostly for satisfying Valgrind.
	Fix an off-by-one in dynamic.
	Office: Use calloc instead of alloc, just for muting Valgrind.
	memory.c: When -DDEBUG, we turn mem_alloc_tiny() into a normal alloc,
	  to better track problems.
	Drop some #ifdef DEBUG, or change them to specific ones like
	  RAR_DEBUG.
	Wow-srp: This format is not case sensitive so unset FMT_CASE, and also
	  make the upper-casing in set_key() encoding-aware.
	Wowsrp has a minimum password length of 8, so add it to the hack we
	  did for wpa-psk.
	Drop a bunch of old formats from the unused/ directory. We can always
	  get them back from git if needed, or from old tar balls.
	Adjust a stack buffer after the recent bugfix to Office 2007. This
	  doesn't matter but it makes the code less confusing.
	Get rid of all use of alloca() and dynamic size arrays. Also fixes a
	  bug in keyring format: The "crack array" was not always reset
	  correctly. Makefile: Add OMPFLAGS comments for OSX llvm-gcc.
	  Truecrypt format: Use signed int for OpenMP loop, as required by
	  spec.
	DMG: Another alloca() found and changed to fixed size stack array.
	Dynamic: make sure valid() is looking at de-hexified data if
	  applicable.
	Pwsafe-cuda: Adjust BLOCKS according to count argument. Shaves a
	  minute from self-test and helps Single mode. Verified with the
	  Test Suite.
	CUDA formats: Adopt to count argument to crypt_all().
	ZIP: Implement a proper cmp_all() instead of returning 1 and relying
	  on cmp_one(). This should be faster due to less function call
	  overhead.
	Office OpenCL formats: avoid false sharing of crack array.
	Unify dynamic_fmt.c among branches
	Move WPAPSK test vectors to wpapsk.h and add a length 63 test.
	wpapsk-cuda: Some compilers did not like having the test vectors in
	  wpapsk.h so we define it out when building kernel.
	git grep -l '<stdint.h>' | xargs sed -ri 's/<stdint.h>/"stdint.h"/'
	Fix a bug in dmg formats, and add debug output.
	WPAPSK (CPU and GPU): Exploit same-essid weakness. Huge speedup when
	  applicable. See
	  http://www.openwall.com/lists/john-dev/2013/01/29/13 and on for
	  discussion.
	DMG debug bugfix (duh!), and a new test that seems pretty generic.
	dmg2john error message.
	dmg2john: Temporary fixes to handle large files and iteration count.
	DMG: Support iteration count. DMG-opencl: A bunch of fixes. This
	  format was not up to par with CPU format. Serious flaws fixed.
	  Add a known plain test for 8 consecutive nulls.
	SIMD support for NTLMv1 and OMP tweaks for non-SIMD. (cherry
	  picked from commit f3c6622be4054faf8992112c4c5101d5731baff1)
	Merge Solar's 2nd version of NETNTLM patch. (cherry picked from
	  commit 6ab65c5, manually merged from ea46591)
	NTLMv1: Very effective hint to the optimiser in cmp_all(). And
	  benchmark using crippled plaintexts, so we measure real-life
	  performance.
	NT2: Bugfixes to experimental OMP support (defaults to disabled).
	  (cherry picked from commit 884e277d25b7ae441ea1f1ee5aee335fd412ae47)
	DMG formats: Disable all but the NULL test, but bump that one to 16.
	  (cherry picked from commit
	  17b2c582debddf2ee482c18516e9d03cdbae8901)
	DMG: Re-enable the other plaintext checks (but not Apple). (cherry
	  picked from commit 5d47bdc00ac037456f53369099c860e1397946c4)
	DMG: properly re-enable plain checks, for OpenCL too. (cherry
	  picked from commit 7be93725d5b8b0ad9ac6a42735ce16fa5ad334a6)
	NTLMv1: Bugfix, and compact the hash functions (before merging the new
	  stuff to mschapv2)
	MSCHAPv2: SIMD support and exploitation of weakness just like NTLMv1
	  (the formats are very similar)
	NTLMv1 and MSCHAPv2: reject hashes in valid() as hinted by Solar.
	Bugfix for Jim's patch. Some debug functions were not static, and they
	  were included several times for GPU builds so the compiler
	  bailed. Also wrap that debug stuff in WPAPSK_DEBUG.
	MSCHAPv2, NTLMv1: After the 3rd DES block check in valid(), cache the
	  indexes so we don't have to loop again in binary().
	Truecrypt: replace a dynamic array with alloc/free. The format is so
	  slow this does not hurt performance at all.
	NTLMv1 & MSCHAPv2: Use multiple blocks for the SSE version (still
	  single threaded) for bumping "many salts" speed. Actually we
	  bump it to the ceiling of what JtR can report - the output is
	  capped at 4294M c/s.
	bench.c: Support benchmark speeds over 2^32.
	NTLMv1/MSCHAPv2: Use memset for bitmap if more than 200 keys per
	  crypt.
	NT2, NTLMv1, MSCHAPv2 tweaks for experimental OMP+SSE2.
	Dynamic: Bugfix for MMX (I think it's right, I can't link it).
	Raw MD4/MD5: MMX fixes.
	More MMX fixes, including a cludge in the max-length self-test, for
	  MMX formats that use total_len.
	dynamic.c: Bugfix.
	Use DO_ALIGN macros in Jumbo .S files.
	Portability fixes from building on ancient Sparc Solaris 32-bit.
	MSCHAPv2 & NTLMv1: Emit a warning after loading 100 c/r pairs,
	  informing about slow loading and alternative formats.
	  Re-introduce the old versions as mschapv2-naive and
	  netntlmv1-naive. Also fix the DES caching in NETNTLM: it may be
	  called from prepare() so the cache must be checked not only in
	  binary() but also in valid().
	o5logon: Minor optmizations.
	CUDA device list: Add PCI id to output, and replace a deprecated
	  parameter with a new, getting more detail.
	Add any_cracked to a bunch of OpenCL formats that use crack array.
	Add "naive" to the ALGORITHM_NAME for old load-fast-run-slow versions
	  of MSCHAPv2/NTLMv1, as in [32/64 naive]
	Add wpapcap2john to .gitignore.
	GPG: Optimizations, and bump max length to 32.
	Endianness & alignment fixes from testing on a Sparc32.
	More BE and alignment fixes. Some problems were in shared code in
	  unicode.c and the problems has been fixed backwards until now.
	  Most unicode.c functions convert/process UTF-16LE *regardless of
	  arch* and any endian fixes must account for that (normally none
	  is needed).
	Make itoa64 and the likes const.
	Crypt-SHA formats: Use a ROUNDS_MIN of 1.
	pbkdf2-hmac-sha1: Support OSX 10.8 from "the Dave Grohl tool" as well
	  as GRUB hashes, without converting them. We support hashes
	  longer than 64 bytes but we don't calculate/verify past 64 even
	  in cmp_exact() - the chance for such a collision is
	  slim-to-none.
	pbkdf2-hmac-sha1: Do a complete calculation & verify for full binary
	  size, just for good measure.
	pbkdf2-hmac-sha512: Improve the warning messages given for partial
	  matches.
	Endian fixes for BFEgg, wpapsk, pbkdf2-hmac-sha152, pwsafe and shared
	  pbkdf2-hmac-sha1. Also a bugfix for openvms but it still
	  segfaults for me. This is now the only format that doesn't pass
	  self-test.
	Drop run-time version checks for NSS that would be bad if run-time lib
	  is older than build-time one.
	Mscash: Get rid of compiler warnings on linux-ppc32.
	Alignment fixes.
	Rules.c bugfix for -max-length. Format's max length is already
	  adjusted down to max-length, and the RULE macro would do an
	  unwanted incrementaion.
	Fix indentation for sha2[ch] before merging it to bleeding. This is a
	  pure whitespace fix.
	On second thought, use the SHA2 version that was in bleeding instead.
	  Also try to mitigate a bogus strict aliasing warning. We are
	  already using a proper union for all I can see.
	Mute harmless compiler warnings if MIN() already defined.
	Better fix against that alleged strict-aliasing violation.
	Move md5_eq.c to unused.
	Remove md5_eq.o from Makefile.
	formats.c: Stop trying to use system's strnlen(), instead always use
	  our supplied fmt_strnlen(). We could move it to misc.c too at
	  some point.
	Revert SHA2 strict-aliasing fixes. They did not work at all for BE.
	We can force Jim's generic SHA-2 with -DFORCE_GENERIC_SHA2. This patch
	  adds a way to force OpenSSL over CommonCrypto, using
	  -DFORCE_OPENSSL_SHA2.
	Alignment fixes
	Mute a warning for generic target.
	Merge the current MSCHAPv2 naive format (with FreeRadius support) to
	  Deepika's bitsliced format. Then drop the original format and
	  use BS format as "naive". Lots of whitespace changes, view with
	  -w.
	DES BS plain SSE asm: Properly underscore P if applicable. It works on
	  OSX anyway but I'm not sure it will on others that
	  -DUNDERSCORES.
	Alignment fix for mschapv2-bs
	MSCHAPv2-BS: Merge two loops into one. This made a 5% boost here.
	MSCHAPv2 BS: #ifdefs for FMT_ flags
	Add some formats to benchmark-unify.
	Update CHANGES-jumbo.git & CREDITS-jumbo.
	I always end up confusing crypt(3) base64 with MIME Base64: Add some
	  comments.
	Fix a slight bug in sha512crypt binary() that could never surface. It
	  was processing the trailing NULL. Also drop some copy-paste
	  artefacts.
	Some Kerberos libs are not thread safe, but fortunately we can find
	  out using the krb5_is_thread_safe() call.
	Decrease OMP_SCALE in a number of formats. This number needs to be
	  tweaked for each format, not just copied from a template.
	listconf.c: Rewrite the formats list function. It was overly complex
	  and buggy.
	Add format groups "opencl", "cuda", "cpu" and "gpu" for use with
	  --test as well as with things like "--list=formats" and so on.
	  Also allow wildcard in the end, as in wpapsk* or krb5*.
	listconf.c: Suppress leading space in benchmark_comment.
	Document --format group aliases/wildcards.
	OpenCL DES: Honour device limit for LWS.
	Documentation updates.
	Disable the max-length self-test unless -DDEBUG.
	NT2: Five percent boost for codepage encoding, from optimizations in
	  set_key().
	raw-md5u: Three percent boost for codepage encoding, from
	  optimizations in set_key().
	ntlmv1/mschapv2: Five percent boost for codepage encoding, from
	  optimizations in set_key().
	mssql05: Optimizations in set_key() for codepage encoding.
	DES-opencl: Safer LWS capping (ensure GWS is still multiple of LWS).
	ODF formats (all three): Handle content.xml sizes less than 1024 bytes
	  correctly.
	ODF formats: Make valid() a little more picky about hex length.
	Add OSX clang-debug target.
	Add macosx-x86-sse2-opencl (ie. 32-bit) build target.
	uint64_t vs OpenCL fixes. In OpenCL, long is always 64-bit while long
	  long (if supported at all) is 128-bit. On host side, we use
	  "stdint.h" (not <stdint.h>).
	Use "stdint.h" in pbkdf2-hmac-sha512 format.
	DMG formats bugfix for "0 iterations" (assume 1000).
	Truecrypt: Simplify cmp_all(), unfortunately for no performance gain.
	dmg2john: bugfix.
	dmg2john: Use base name of file name in output.
	DMG formats: Serious bug fixes for 3DES v1 images. This fixes the
	  problem with false positives as well as an even worse one: false
	  negatives o.O
	Add wpapcap2john from bleeding-jumbo.
	uaf2john: Do not support writing to outfile, only to stdout. And add a
	  make target.
	zip2john: Use base name of filename for login field.
	MSCHAPv2 & NTLMv1: Smaller hot array. 25% boost for many salts, a
	  couple for one salt. Also enable OMP for SSE2.
	MSCHAPv2 & NTLMv1: Again disable OMP for SSE2 - it works fine on some
	  CPUs but not on others.
	Make odf2john work with python 2.6 (as well as 2.7).
	Change odf2john so we fall back to the deprecated function only if the
	  newer one is not supported.
	Fix SAVE= timer similar to Costin's patch.
	Fixes for the recent timer changes. Fixes a bug introduced for
	  --max-run-time where a resumed session would immediately abort
	  again. And if OS_TIMER, we only call status_get_time() if
	  --max-run-time or --progress-every was given.
	Update CHANGES-jumbo.git and CREDITS-jumbo.
	Document --request-vector and --request-scalar options in
	  README-OPENCL.
	mscash2-opencl: Fix for forced LWS larger than kernel's max.
	Document the OSX problem with OpenCL kernel header files.
	Wordlist bug fixes: Reject wordlist containing NULL bytes, and handle
	  inconsequent line feeds (eg. spurious CR within a line). This fix
	  will do for Jumbo-8 so we don't introduce new problems.
	cisco2john: Fixes after testing with lots of real config files. And
	  add some more stuff to seed output (hostname, communities).
	Fix the postgre format: Rename it to postgres, including the tag. The
	  old format is still supported. Also improve valid().
	Rename the postgre source file too o.O
	Some format name changes to clarify what they are.
	s/Staroffice/StarOffice/
	Add CXX variable to Makefile. Add separate PROJ_ sections for C++ as
	  well as pcap, so John does not fail building even if they do.
	  Also add uaf2john and truecrypt_volume2john to the main targets
	  and move office2john to unused.
	Makefile tweaks.
	uaf2john: Fix an aliasing problem.
	Fix another warning in wpapcap2john (fread return value).
	Fix generic build after the timer fixes.
	Move wpapcap2john from PROJ_PCAP to PROJ - it does not depend on
	  libpcap!
	Revert 8e992e4 and instead bump RULE_BUFFER_SIZE in params.h by 4. We
	  should look into this more closely but this will do for now.
	Makefile: Add a "Done." after building the pcap targets.
	Fix valid() in ntlmv2-opencl. It counted salt length incorrectly.
	pass_gen.pl: Support UTF-8 for -salt argument when -utf8 option is
	  given.
	Stop user from trying to use any encoding other than iso-8859-1 with
	  formats that lack support for it. It would just end up in false
	  negatives.
	Drop bogus FMT_UTF8 flag from Truecrypt.
	Change MPI reduction for benchmarks for accurate average speeds. Also,
	  reduce the int64 properly (only affects 32-bit or BE systems).
	Update README-mpi.
	Comment out all atexit(done) in OpenCL formats and let the OS do the
	  clean-up. Otherwise we got segfaults in the end after a --test
	  run. The real fixes are already present in bleeding branch.
	CUDA formats: Tweak default THREADS*BLOCKS so they work on weaker
	  devices.
	Dynamic: Change name of "salted Cisco PIX" to "Cisco ASA"
	Copy the improved ZIP valid() to the OpenCL version of same format.
	Refuse to translate \x00 into a null in user classes.
	Add external mode filters for UTF-8 validation. This is slow though.
	Rename NETNTLM_old_fmt_plug.c to NETNTLM_bs_fmt_plug.c.
	Change self-test use of set_key("", index) into something that
	  actually passes a large enough buffer for any use.
	Change self-test use of set_key(current->plaintext, index) into
	  something that actually passes a large enough buffer for any
	  use.
	Sparc fixes. Latest optimization of mschap/ntlm formats broke BE.
	PDF format still used the Bad Idea[tm] version of valid().
	Add missing deallocations in OpenCL DMG & RAR formats' valid().
	SAP F/G: Bump maximum length. We over-ran a buffer with the latest
	  self-tests.
	Bug fixes to thin dynamic formats PHPS, formspring, mediawiki, osc and
	  phpassMD5. They over-ran buffer when given bad input files.
	More robust valid() in salted sha1 / nsldap formats.
	Do some actual validation in SIP valid().
	Actually, while at it we should just as well validate it is lower-case
	  hex.
	WOW-SRP fixes. Not sure I found all, this is a mess.
	rar2john big-endian fixes for Unicode filenames in RAR.
	Makefile tweaks for JOHN_CFLAGS etc.
	Canonical fixes for new tcphdr.h (failed on Sparc)
	Revert "JtR-Dynamic_validation_raw_hashes-2.patch". It made things
	  worse.
	Macros for prefixing MD[45]_(Init|Update|Final) with "john_" for
	  avoiding clashes with OpenSSL library.
	Endian stuff.
	Drop un-needed header in ssha-opencl.
	Add macosx-x86-64-native build target. To use it, you need to copy
	  osx_as_wrapper.sh (from the src directory) to /usr/local/bin/as or
	  to some other directory (but the script MUST be called 'as') and
	  ensure this directory is first in your $PATH.
	Precedence: MSCHAPv2 should pick sploit version over BS one.
	Generic crypt format bugfix.
	Testpara vs. HAVE_OPENSSL fix.
	kwallet2john: Handle multiple files, and strip suffix and path from
	  login.
	truecrypt_volume2john: Use filename as login field, and convert to a
	  john symlink.
	Makefile fixes for OSX 32-bit cross-compile.
	Bugfix for memory.c under -DDEBUG. In order to easier track bugs,
	  mem_alloc_tiny() is changed to a normal alloc. But it was supposed
	  to still maintain requested alignment!
	Dynamic bugfix for $HEX$.
	Change the way -DDEBUG affects mem_alloc_tiny(). The outcome is
	  practically the same but this is cleaner.
	Revert "Change the way -DDEBUG affects mem_alloc_tiny(). The outcome
	  is practically"
	Final canonical change for -DDEBUG versus mem_alloc_tiny.
	Do not misalign SSE2 buffers when --save-memory=3 or above. The
	  previous fix did not catch all cases.
	Relbench tweaks, for ignoring warnings.
	OMP_SCALE tweaks. There are massive gains to win in some formats. All
	  OMP formats should be revised, but there are so many :-/
	Fixes for a couple of make targets.
	Drop inconsistent paths in the auto-conf hack.
	Drop the wchar stuff from gpg2john. 8-bit GECOS now works fine.
	Netscreen: Better valid().
	DMD5: Better valid().
	Update CHANGES-jumbo.git and CREDITS-jumbo.
	More restrictive valid() in nsldap, salted-sha1 and ssha-opencl.
	Comment out dynamic_1028. It was using un-implemented functions...
	Improve valid() in all MSCHAPv2 and NETNTLMv2 formats.
	Remove unused variable from agilekeychain-opencl.
	doc/MARKOV note about UTF-8 filter.
	Revert "SIP valid() fix."
	Copyright blurb.
	VMS: Better valid().
	Drop unused variable from VMS.
	Merge recent sxc fixes to sxc-opencl.
	Merge a whole bunch of fixes made to CPU formats, to the OpenCL ones.
	  Conflicts: 	src/opencl_agilekeychain_fmt.c
	Updated doc/BUGS for unstable.
	Typo in README-OPENCL.
	Update .mailmap for git shortlog.
	Update CHANGES-jumbo.git (CREDITS-jumbo does not need update).
	Document some requirements in doc/INSTALL.
	100% white-space cleaning.
	Change name from 1.7.9-jumbo-8-unstable to 1.7.9-jumbo-8-RC
	Change --raw-always-valid (et al) to --bare-always-valid to avoid
	  confusion.
	Documentation updates.
	Add a line to --list=hidden-options:
	Fix a cosmetic bug when listing formats with wildcards that match
	  dynamic.
	Fix a couple of problems with raw-sha1-opencl. And while at it, bump
	  max length to 55 and use "compressed" key buffer for a nice
	  boost.
	mkvcalcproba: Support reading from stdin.
	genmkvpwd: Change %lld to %llu for correct printing of large numbers.
	bash-completion: Drop trailing whitespace.
	bash-completion: Redirect dynamic.conf errors to /dev/null.
	Update CHANGES-jumbo.git (CREDITS-jumbo needed no change).
	Add repeats16 and repeats32 external modes (from the obsolete contest
	  branch).
	Update CREDITS-jumbo & CHANGES-jumbo.git.
	Add a comment in ext_init explaining a confusing bail-out.
	Endianness fixes in Blake.
	Bad wordlist.c bug fixed, triggered when running -loop under MPI.
	Bugfix for pbkdf2 CPU/OpenCL/CUDA code. Bug may have affected several
	  formats where salt length was larger than 23. Thanks to Marcus
	  Desto for reporting.
	Update CHANGES-jumbo.git (CREDITS-jumbo needed no change).
	Fix a bug where -DDEBUG would cause an infinite loop in
	  mem_alloc_tiny() because MEM_ALLOC_SIZE is set to zero
	  (Jumbo-specific) and we ended up never breaking out of the while
	  loop. Thanks to bytebieger for noticing the problem and
	  patiently convince me.
	Fix another potential problem with -DDEBUG vs. mem_alloc_tiny().
	Print human readable OpenSSL version string with --list=build-info.
	Update CHANGES-jumbo & CREDITS-jumbo.git
	Use the recent mem_alloc_tiny() bugfix for size zero even when not
	  -DDEBUG because returning a pointer might be asking for problems.
	Unicode bugfix for OpenCL Office formats.
	raw-sha1-opencl: Fix bug where obsolete code that only handled up
	  to length 23 was accidentally used. And drop the obsolete code.
	wpapcap2john: Add SSID in "user" field for Single mode use.
	hccap2john: Add SSID in "user" field for Single mode use.
	Make Oracle 10 format more robust (allow lower-case salts even when
	  prepare() is not used).
	Another tweak to the mem_alloc_tiny() vs. -DDEBUG issue.
	wpapcap2john: Ensure we don't overrun SSID buffer with overlong tags,
	  and print a debug message. Thanks to bytebieger for reporting
	  this issue. We still do not know the cause. See
	  https://github.com/magnumripper/JohnTheRipper/pull/366 for
	  discussion.
	NVCC tweaks (mostly comments, but add -fmad=true) in Makefile.
	Fix an obscure bug in mscash where an overlong key would truncate
	  to 28 instead of 27 in UTF-8 mode. NT already had a fix for it so
	  unify the code for them.
	Protect a CUDA macro from being expanded to something not intended.
	  I'm not sure there was a problem, just saw the dangerous definiton.
	Change malloc() to mem_alloc() in a bunch of formats. The latter sits
	  in memory.c and has error checking.
	Update CHANGES-jumbo.git and CREDITS-jumbo
	sapG: Add FMT_UTF8 even though we are not FMT_UNICODE.
	Improve valid() in netlm, nethalflm and mssql12.
	Improve valid() in krb5pa formats.
	Explicitly state that wpapsk formats do support WPA and WPA2.
	Update CHANGES-jumbo.git & CREDITS-jumbo
	Merge recent change to DMG CPU format to OpenCL.
	Use 8x for SIMD SHA-1, for gcc >= 4.7 if AVX or XOP.
	Fix OSX build targets for CUDA for Xcode 5.0 and CUDA 5.
	mysql-sha1 formats: SPLIT_UNIFIES_CASE bugfix and unify test vectors.
	Better description of MySQL formats vs. versions.
	Bugfixes from bleeding back-ported to unstable.
	Fixes for building CUDA on OSX Mavericks.
	Makefile CUDA: Add natural path to nvcc with an NVCC macro, and
	  make the OSX -ccbin quirk a macro too.
	CUDA fix for when nvcc is not in /usr/local/bin.
	Drop -cl-strict-aliasing from OpenCL build options. It's deprecated.
	Print a warning when FMT_NOT_EXACT.
	pkzip: Bugfix for #467. Two early rejection tests had to be disabled.
	  Hopefully they can be re-enabled by JimF after some tuning.
	Update CREDITS-jumbo & CHANGES-jumbo.git
	Fix an old bug with CPstoreUTF8 vs. split hashes and --show. Some
	  cracked hashes with passwords containing 8-bit characters would be
	  output as partially uncracked in case CPstoreUTF8 was enabled.
	SAP B passed salts to loader with possible garbage in the end
	  (variable length). This lead to loader potentially seeing
	  "different" salts even though they were the same. Closes #608.
	It turns out krb5-23 are just NT hashes. Drop the krb5-23 format
	  (it was a lot slower) and change kdcdump2john.py so it outputs
	  $NT$ tags for those.
	Add some alternative addresses for Dhiru to .mailmap so Git knows
	  he is one same person

Dhiru Kholia (337):
	BONUS: pwsafe format also cracks Password Gorilla databases.
	Integrate psk-crack (from ike-scan) into john.
	Add support for cracking Nuked-Klan CMS hashes.
	Fix build.
	Bump LINE_BUFFER_SIZE. Needed for pfx format.
	OpenCL implementation of Keychain format
	Keychain format is now 2.4x faster on CPU and scales almost linearly.
	  Thanks to Lukas!
	Fix keychain format crash due to stack smashing
	Add support for cracking 1Password Agile Keychain files
	Reduce false positives in agilekeychain format
	OpenCL implementation of Agile Keychain format
	integrate keychain2john program with john
	Add support for cracking ODF 1.2 AES encrypted documents
	Update FORMAT_NAME in ODF format
	Remove my hacks from ODF format
	misc. minor fixes
	Add AES-256 encrypted ZIP file test vector.
	OpenCL implementation of ZIP AES format
	Do not build Truecrypt unless OpenSSL >= 1.0.1
	Add support for cracking M$ Outlook's PST files
	GNOME Keyring cracker patch for JtR
	Add keyring2john program (for now it is standalone).
	Add support for cracking Office 97-2003 encrypted files
	EncFS cracker patch for JtR
	OpenCL implementation of EncFS cracker
	OpenCL implementation of ODF format
	SXC cracker patch for JtR
	OpenCL implementation of SXC format
	Respect "iterations" parameter in PBKDF2 code
	Respect "iterations" parameter in keychain PBKDF2 kernel
	add test vectors from CMIYC 2012
	add test vectors from CMIYC 2012
	add test vectors from CMIYC 2012
	pdf2john fixes by JimF
	Add OMP support in PDF format.
	Detect PDF files using AES encryption and bail out early
	Fix bug in PDF format exposed by a new test vector (added to pdfdump)
	Detect unsupported PDF files and bail out
	Implement npdf format which will eventually replace the existing pdf
	  format (once npdf2john is committed).
	Remove ":" from npdf test vectors
	Make npdf format compatible with core changes
	Use our own SHA2 implementation
	Fix breakage in keychain2john program
	Add support for cracking PuTTY private keys
	Rename ppk format to putty
	Use our faster HMAC-SHA1 implementation
	Add support for cracking OpenPGP / GnuPG private key files
	Add support for more hashing algorithms
	add test vectors from CMIYC 2012
	OpenCL implementation of GPG format
	Make NVIDIA OpenCL compiler happy
	Integrate gpg2john with john
	Add documentation for gpg format
	Add OMP support in gpg-opencl format
	Add support for cracking MS SQL 2012 hashes
	Add support for cracking MySQL network authentication hashes
	Make mysqlna format compatible with core changes
	(v5) Add support for cracking DMG files
	simplify DMG format
	fix detection of plain DMG files
	add more test vectors
	Add dmg2john to .gitignore
	Add OMP support in dmg format
	OpenCL implementation of DMG format
	Begin adding Office RC4 CryptoAPI Encryption support
	Office RC4 CryptoAPI Encryption support is done for doc files
	Office RC4 CryptoAPI Encryption support is done for ppt files
	Office RC4 CryptoAPI Encryption support is done for xls files
	Fix some correctness issues
	Add support for cracking Office 2013 files
	Add support for cracking STRIP Password Manager databases
	ml2john.py extracts Mountain Lion hashes
	fix permissions
	fix shebang line
	Fix OMP support in new KRB formats
	Fix krb5-23 format on OSX
	Fix krb5-18 format on OSX
	Make Pyflakes happy
	OMP build fixes for EncFS format
	Add support for cracking GRUB2 and OS X 10.8 hashes. Coded by Lukas.
	Remove my hacks from VNC format
	Update for Office 2013
	OpenCL implementation of STRIP format
	Improve error handling
	Add support for parsing newer Office files to office2john.py
	Support cracking of iSCSI CHAP authentication hashes
	dos2unix on chap_fmt_plug.c
	Update OleFileIO_PL code
	Use only filename instead of full path
	Fix a correctness issue in Office format
	Fix warnings and indentation in FGT format
	Fix FGT format crash when built using linux-x86-64-clang-debug target
	Add another test vector in CHAP format
	Fix memory leaks in EncFS formats
	Remove dead assignments
	Fix license issues
	Begin adding OMP-support to hmac formats
	Add OMP support to hmac formats
	Add support for cracking Oracle O5LOGON protocol hashes
	PPC fixes
	add more test vectors in o5logon format
	Add support for PostgreSQL MD5 challenge-response cracking
	Add usage instructions in VNC format
	Speed-up o5logon format.
	Remove my hacks from o5logon format
	Revert "Remove my hacks from o5logon format"
	Fix build when using ICC
	Integrate OpenVMS support 2.4 patch by David Jones
	Pull changes from v2 version of VMS patch
	New version of office2john that rips keywords from document metadata
	  and puts them in GECOS field for use by Single mode. Also bump
	  some figures in params.h to cope with more words in said field.
	Fix issue #100 gpg-opencl does not work
	Fix static build on Owl-current systems
	Add some more test vectors
	Add ssh-ng format which is 4 to 5 times faster than ssh format
	add DSA test vector in gpg format
	Add another test vector (from MIT Kerberos 1.9 setup)
	Add MS Kerberos 5 AS-REQ Pre-Auth aes256-cts-hmac-sha1-96 format
	add crypt(md5(p),salt) format
	Add support for cracking WebEdition CMS hashes
	Add support for cracking sniffed LastPass hashes
	Add support for cracking Clipperz databases
	Add documentation for Keyring and Keychain formats
	Add another test vector (from Windows 8 + 2012 AD setup)
	Fix format flags
	Cracker for both MongoDB system and sniffed network hashes
	Add more MongoDB network test vectors
	Add more MongoDB network test vectors
	Add one more test vector (stolen from chapcrack)
	Fix valid in gpg-opencl format
	Add support for parsing rc4-hmac hashes and unify input format
	make ciphertext parsing more robust in dmg formats
	make ciphertext parsing more robust in gpg format
	make ciphertext parsing more robust in npdf format
	make ciphertext parsing more robust in chap format
	make ciphertext parsing more robust in agilekeychain formats
	make ciphertext parsing more robust in keychain formats
	make ciphertext parsing more robust in keyring format
	make ciphertext parsing more robust in mysqlna format
	make ciphertext parsing more robust in krb5-18 format
	Make dmg parser more robust
	make ciphertext parsing more robust in RACF format
	make ciphertext parsing more robust in ssh-ng format
	Fix valid in RACF format
	fix use-after-free bug
	Make magnum and Clang happy at the same time
	Add one more dynamic_1009 sample
	make ciphertext parsing more robust in putty format
	Fix build failure on FreeBSD 9.1
	Add support for sha1($s.$p) which is used by SilverStripe CMS
	Revert "Add support for sha1($s.$p) which is used by SilverStripe CMS"
	Add another test vector in sha1-gen format
	make ciphertext parsing more robust in keepass format
	make ciphertext parsing more robust in encfs format
	make ciphertext parsing more robust in encfs-opencl format
	make ciphertext parsing more robust in strip formats
	Revert "Add support for sha1($s.$p) which is used by SilverStripe CMS"
	Add another test vector in sha1-gen format
	Fix earlier breakage of odf-opencl format
	make ciphertext parsing more robust in odf formats
	Reduce weirdness in dmg format
	make ciphertext parsing more robust in sxc formats
	Fix potential memory leak in pwsafe format
	Avoid pointless memcpy call in npdf format
	Fix check (and avoid Clang warning) in ssh-ng format
	Fix potential memory leaks and warnings in keepass2john
	Avoid Clang warning in unrar library code
	Fix warnings in gpg format
	Fix potential leaks indicated by scan-build
	Fix potential leaks indicated by scan-build in pdf2john
	make ciphertext parsing more robust in pfx format
	make ciphertext parsing more robust in ssh format
	make ciphertext parsing more robust in o5logon format
	make ciphertext parsing more robust in wbb3 format
	Fix to pass new self-test for maximum length
	Fix to pass new self-test for maximum length
	Fix "Bad Idea" in agilekeychain formats
	Fix "Bad Idea" in chap format
	Fix "Bad Idea" in gpg formats
	Fix "Bad Idea" in keychain formats
	Fix "Bad Idea" in keyring format
	Fix "Bad Idea" in ssh-ng format
	Make ciphertext parsing more robust in LastPass format
	Make ciphertext parsing more robust in MongoDB format
	Get rid of Clang warnings for rar2john
	Silence clang warning in KeyDBCracker.c
	1. Fix valid in pdf format (patch from Narendra) 2. Avoid dynamic
	  memory allocation
	Make agilekc2john more robust against bad data
	Make encfs2john more robust against bad data
	Make keepass2john more robust against bad data
	Make zip2john more robust against bad data
	Max length bugfix in pkzip format
	Integrate keyring2john with john
	Misc. updates for keyring2john
	Get rid of some clang warnings
	Add support for BLAKE2 hash function (https://blake2.net/)
	Add another BLAKE2 test vector
	Add some more "popular" BLAKE2 test vectors
	Fix description and make Frank happy
	Add support for cracking ODF files using AES encryption on GPU
	Output ML hashes in gangnam (err... magnum) style
	Fix badness in odf format
	Add support for cracking LastPass's offline database
	Implement fix suggested by magnum
	Rename keychain.h to pbkdf2_hmac_sha1.h, add pbkdf2_hmac_sha256.h
	Add npdf2john.py written by Shane
	Get rid of older pdf format
	Remove references to pdf2john which is now gone
	Rename npdf to pdf
	Use optimized implementations of BLAKE2 on supported platforms
	Add htdigest2john.py utility. Thanks to Jim for help!
	Fix generic build (BLAKE2 build problem)
	Add OMP support to TrueCrypt formats
	Rename pdfdump to pdfdump_old and add new working pdfdump file
	Use correct value of BINARY_SIZE
	Remove debugging code (linux-x86-64-clang-debug was giving warnings)
	Fix warnings when building linux-x86-64-clang-debug target
	Document usage of ssh formats
	Fix multiple bugs in sshng2john.py
	Fix problem in office format found by magnum by using valgrind
	Fix problem in office OpenCL format found by magnum by using valgrind
	The "cracked array" was not always reset correctly. Fix it.
	Integrate dmg2john with john
	Remove dmg2john target and stop confusing people
	Fix running of KWallet format on big-endian systems
	Fix warnings in dmg2john
	Add support for WinRAR SFX files
	Information on cracking Oracle APEX hashes
	Misc. fixes for putty2john utility
	Add support for handling multiple files in uaf2john
	Add support for handling multiple files in truecrypt_volume2john
	Dynamic type for md5($p,$s) for long salts
	Remove redefinition (issue #233)
	Add utility to convert Cisco type-4 hashes into raw-sha256 hashes
	Fix ASAN crash in pkzip format
	make valid() "stronger"
	Fix ASAN crash in dmd5 format
	Fix ASAN crash in oracle format
	Fix ASAN crash (still needs better valid)
	Fix ASAN crash (needs another look)
	Commit another weird and custom format
	Fix ASAN crash and (get|set)_salt methods
	Python port of dmg2john utility
	Fix ASAN crash in ipb2 format
	Fix multiple ASAN related crashes
	Fix ASAN related crashes in SAP formats
	Revert "Fix ASAN crash (needs another look)"
	Fix ASAN crash (without any performance loss)
	Revert "Fix ASAN related crashes in SAP formats"
	Document known ASAN related crashes
	Fix mistakes made in commit 23dc44df
	Revert "Fix ASAN crash in ipb2 format" due to speed loss
	Document known ASAN related crash in ipb2 format
	Fix ASAN related crash in nk format
	Revert "Fix ASAN crash in dmd5 format" (better fix coming)
	Fix ASAN crash in dmd5 format
	Fix problems pointed out by Frank
	fix clang-analyzer warning in mozilla DES code
	misc. fixes
	Remove dead code
	Remove dead assignment
	fix resource / memory leaks in dmg2john.c
	Remove unused code
	misc. small fixes in dmg2john
	Fix a very weird compilation error with GCC 4.8.0
	Fix compilation failure with Clang (trunk)
	Fix memory leak + "invalid read" in pwsafe formats
	Fix "invalid read" in keepass format
	Fix "invalid read" in ike format
	Fix misc. "invalid read" problems
	make valid() stronger in clipperz format
	make valid() stronger in radmin format
	make valid() stronger in pst format
	make valid() stronger in mozilla format
	fix potential leaks in dmg format
	fix memory leaks in zip2john
	fix potential memory leaks in rar2john
	fix typos
	fix warnings in gpg2john
	Fix problems found by Alexander Cherepanov in mozilla format
	Fix valid in sip format
	Fix various crashes found by Alexander Cherepanov
	Fix crash in zip format found by Alexander Cherepanov
	Fix various crashes found by Alexander Cherepanov
	Revert "Fix crash in zip format found by Alexander Cherepanov"
	Hopefully the "right" fix for the zip crash
	misc. fixes for zip stuff
	Fix crash in dmd5 format found by Alexander Cherepanov
	Fix django crash found by Alexander Cherepanov
	Fix a typo in keepass2john
	Fix base64 decoding bug and add support for Cloud Keychain files
	Make agilekc2john work under Python 3.3 too
	Make sshng2john work under Python 3.3 too
	Make sshng2john work under Python 2.4 to Python 3.3
	Make agilekc2john work under Python 2.4 to Python 3.3
	Fix crash for "qpdf" generated file and misc. PEP8 fixes
	Remove unused code from ml2john.py
	misc. Python portability fixes
	Make dmg2john work under Python 2.4 to Python 3.3
	Fix for django format crash (one of the many) :(
	more portability fixes
	Make odf2john work under Python 3.3 too
	even more portability fixes
	portability fixes
	Make office2john.py work under Python 3.3 too
	Add error handling in pdf2john
	some less-than-ideal fixes for keyring2john
	Agile Keychain optimizations (thanks atom!)
	Calculate only what we will use (thanks atom!)
	Even more optimizations (courtesy of atom)
	misc. portability fixes
	Add ssh2sshng.py utility for converting ssh hashes into sshng hashes
	Add support for cracking Siemens S7 authentication protocol hashes
	misc. portability fixes
	make s7 format compatible with unstable-jumbo
	Don't be too greedy. Fix failures caused by 07a3e05.
	Document that mozilla format fails on big-endian boxes
	Changes from commit 7eecef982c5d458a22d8c9c3b870743edfc5ba76
	Pick changes from bleeding-jumbo
	Pick tweaks from corresponding CPU format
	fix crash in ike format
	fix crash in dmg format
	borrow valid from the corresponding CPU format
	fix crash in keyring format
	tighten check in episerver format
	tighten check in clipperz format
	New dynamic types from Alexander Cherepanov and "Waffle"
	fix yet another crash in dmg format
	check maximum hash length in episerver format
	check maximum username length in mongodb format
	fix crash in putty format
	fix crash in office format
	fix crash in sxc format
	fix crash in wbb3 format
	fix crash in pdf format
	clean up dmg stuff a bit
	Start using Travis CI
	tweaks required for building on FreeBSD 10 (32-bit)

Claudio André (157):
	Improvement: pre-compute modulus values.
	Improvement: multi-kernel mode created.
	Improvement: allow to select at runtime the kernel to be executed.
	Improvement: create a default/safe kernel.
	Fix: allow user to run the software without
	  cl_khr_byte_addressable_store
	Improvement: create a fast mode (more aggressive defaults).
	Fix: inside get_processor_family (OpenCL) code.
	Fix: missed some checks on common-opencl.c for disabled
	  cl_khr_byte_addressable_store.
	Improvement: create a better way to select default global work size.
	Improvement: a new AMD kernel that run in a set of stages.
	Improvement: a new NVIDIA kernel that run in a set of stages.
	Some incorrect comment changed.
	Improvement: merge CPU and default kernels.
	New OpenCL sha256crypt format.
	Fix: code clean-up.
	Merge with jumbo-6-fixes
	Fix: more code clean-up.
	Merge with jumbo-6-fixes
	Fix: decrease memory usage.
	Fix: code cleanup.
	Fix: proper get_salt and set_salt.
	Fix: proper get_salt, set_salt, valid and cmp_one.
	Create an OpenCL sha256crypt for AMD hardware.
	OpenCL kernels (cryptsha256) ready.
	Fix: salt usage.
	Fix: computation of GWS and LWS.
	Fix: code clean-up.
	Fix: detection of no_byte_addressable. Fix: new cryptsha512
	  working on CPU.
	Fix: new cryptsha512 working on AMD.
	Fix: code clean-up.
	Include a referente to sha256crypt-opencl on DOC.
	Fix: typos i made on kernel names.
	Fix: new cryptsha512 working on NVIDIA.
	Fix: some code clean-up.
	Fix: use static when it makes sense.
	Fix: remove commented code.
	Fix: code clean-up.
	Improvement: create a new raw sha512-ng.
	Fix: unnecessary data conversion.
	Fix: better (more correct) usage of John API.
	Fix: get_hash error detected by TS.
	Fix: code clean-up.
	Use the fast approach to test on Jumbo.
	Fix: code clean-up.
	Applied: All known changes from JimF, along with unification of
	  differences between core-jumbo-magjumbo-bleeding
	New control to PLAINTEXT_LENGTH. Check if magnum agrees.
	Apply magnum technique of DEBUG usage to add tests.
	Change type of large constants.
	Version that uses __local memory. Keep on git to test different
	  hardware when possible.
	Transfer less data between host and device. 5% faster.
	Fix a compiler warning on 32-bits Set Plaintext size to 32.
	Remove a develoment/debug function call from source code.
	Code cleanup.
	Use mem_alloc instead of malloc.
	New validation of max global memory allocation size (very usefull to
	  fast formats).
	Fix output format string.
	Fix a typo.
	Use dinamic allocation for the build log buffer.
	Better control of auto-setting process.
	Try on raw SHA-512 magnun's MaxRunTime setup.
	As magnum said on list, this check is not necessary anymore (on JtR).
	Improvement: 7% performance gain.
	Avoid unnecessary data moving.
	Code clean-up.
	Revert name used.
	Create a new version that uses __local memory. Good (at least) in
	  7970.
	Remove copied code from everywhere. A new .h file has all necessary
	  code.
	Fix format identification message.
	Fix no_byte_addressable code.
	Apply the same fix of no_byte_addressable to raw_sha512 and
	  sha256crypt.
	Rename all those names to eg. DEV_UNKNOWN, DEV_NVIDIA and so on.
	Go on and rename all those names to eg. DEV_UNKNOWN, DEV_NVIDIA and so
	  on.
	Fix an architecture misdetection.
	Use magnun's MaxRunTime setup (256 and 512 SHA crypt). LWS command
	  line proper detection (Fix). Change name: from pFmt to self.
	Mitigate GPU hogging with much shorter kernel durations (AMD GPU
	  only). Better desktop response during cracking. Some
	  algorithm clean-up (on AMD at least 20% performance improvement).
	Better defaults.
	Tried to implement a salt_hash function. It is failing despite the
	  hash calculus is working.
	Remove some debug code.
	Fix a problem with salt detection.
	Fix: do not show an error message twice.
	Split kernel execution (for NVIDIA).
	Strategy change on AMD GPU.
	Fixed a logical error.
	Fix a typo.
	Remove unused code.
	Split kernel execution.
	New names pattern applied.
	Set plaintext size to 32.
	Create a version of sha256crypt that uses __local memory.
	Faster memory transfers.
	Revert sha256crypt plaintext size to 24. With 32 the performance
	  impact on gcn is not acceptable.
	Fix error reported on OSX.
	Mute a compiler warning on OSX.
	Fix memory leak, as reported by magnum.
	Use firstEvent and lastEvent. Nothing bad happened, but less than
	  optimal values were selected some times.
	Revert. Saw zero benefits.
	Few ideas on LOCAL approach.
	Fix to allow this format to be used on bleeding.
	New OpenCL raw-sha256 format created.
	Missing files to raw-sha256 format.
	Fix: size of OpenCL buffer.
	Some code clean up.
	Some fixes on raw sha256.
	Small optimizations.
	Update ALGORITHM_NAME to the text pattern used in jumbo-7.
	Fix a bug in GPU.
	Clean up on raw-sha256 code.
	Revert "Few ideas on LOCAL approach".
	On fast hashes: implement clear_keys() for faster buffer cleaning.
	Add missing stuff for FMT_MAIN_VERSION > 9
	Revert "On fast hashes: implement clear_keys() for faster buffer
	  cleaning.". Hurts performance.
	Use defines instead of numbers.
	Add null-hash test vectors to "my" unsalted formats.
	Links for wiki page on new formats.
	Fix align as reported by magnum.
	Mute a warning.
	Improvement on LWS/GWS management. Fix a typo.
	Set (min/max) KEYS_PER_CRYPT=1 and adjust to the real value on init().
	New format xsha512-ng-opencl: a little bit faster than stock code.
	  On bull: Benchmarking: Mac OS X 10.7+ salted SHA-512 (pwlen <
	  32) [OpenCL (inefficient, development use mostly)]... DONE Many
	  salts:	67346K c/s real, 67346K c/s virtual Only one salt:
	  23130K c/s real, 26214K c/s virtual
	Include a new observation about credits.
	New wiki page created.
	Remove duplicated code.
	On raw-sha256: unroll 'block' and use defines when possible.
	More code clean-up.
	Fix a bug on NVIDIA.
	Partial revert on raw-sha256. More code clean-up.
	raw-sha512-ng: Fix a format struct problem for v10.
	Fix a bug inside get_salt.
	Fix a bug inside get_salt (not OpenCL files) .
	Put Johnny information on README file.
	Inside shared find_best_workgroup avoid creating new queues.
	Revert "Fix a typo."
	Shared code to allow to build and use binary OpenCL kernels.
	Move all OpenCL files to a new folder.
	Missed rar on 6b66504.
	Quick-response to "events" (like key presses) for my loop-kernel
	  OpenCL formats. Adjust min_keys_per_crypt to local_work_size.
	  Adjust global worksize to the count argument inside crypt_all().
	  Rewrite find_best_gws to avoid any warning using sprofile.
	  Rewrite of auto-tuning (gws_test) code. Auto-tuning by doing
	  less iterations. Show (if required) execution times and detais:
	  - print: pass xfer: 10.01 ms, crypt: 3.46 ms, result xfer: 1.84
	  ms Clean code. Create new files to handle duplicated code. -
	  See magnum work at commit fff72afafcb0a502163e57d97491c6b57c7f8cc2.
	  In auto-tuning, adjust max run time for GPU and CPU accordingly.
	  sha256crypt, sha256crypt: use cached-binary OpenCL kernels.
	  Remove temp (__local) buffer on prepare (it produces no benefits).
	Quick-response to "events" (like key presses) for "my" loop-kernel
	  OpenCL formats. Adjust min_keys_per_crypt to local_work_size.
	  Adjust global worksize to the count argument inside crypt_all().
	  Rewrite find_best_gws to avoid any warning using sprofile.
	  Rewrite of auto-tuning (gws_test) code. Auto-tuning by doing
	  less iterations. . See magnum work at commit fff72af. Show
	  (if required) execution times and detais: . print something like
	  this: pass xfer: 10.01 ms, crypt: 3.46 ms, result xfer: 1.84 ms
	  Clean code. Create new files to handle duplicated code. In
	  auto-tuning, adjust max run time for GPU and CPU accordingly.
	  sha256crypt, sha512crypt: use cached-binary OpenCL kernels.
	  Remove temp (__local) buffer on prepare (it produces no benefits).
	Remove sha512crypt version that uses __local memory. No benefit using
	  it.
	Adjust min_keys_per_crypt to local_work_size. Adjust global
	  worksize to the count argument inside crypt_all(). Treat the
	  new_keys condition. Include a new salt_hash fucntion. Fix
	  the bug reported on wiki JtR-valid-bugs. Proper done
	  (atexit(release_all)) method. Can handle md5crypt_MaxDuration in
	  config file.
	Adjust min_keys_per_crypt to local_work_size. Adjust global
	  worksize to the count argument inside crypt_all(). Proper done
	  (atexit(release_all)) method. Can handle MaxDuration in config
	  file.
	Include LWS/GWS information inside john.conf for formats that miss
	  that.
	Fix: use the decreased global work size in cmp_all().
	Use binary kernels on 'my' fast hashes too.
	Fix: missing colon on DEBUG target.
	Include LWS/GWS information for raw-sha256 inside john.conf.
	More tests for DEBUG target.
	Fix a bug inside get_binary.
	50% performance gain on GCN for sha512crypt. Recommended for (at
	  least) 12.08 Catalyst driver. From: Local work size (LWS)
	  64, global work size (GWS) 16384 Benchmarking: sha512crypt
	  (rounds=5000) [OpenCL]... DONE Raw:	8316 c/s real, 409600
	  c/s virtual
	Small tweaks on default configuration. Local work size (LWS) 64,
	  global work size (GWS) 32768 Benchmarking: sha512crypt
	  (rounds=5000) [OpenCL]... DONE Raw:	13159 c/s real, 819200
	  c/s virtual
	Fix: for md5crypt on CPU.
	Fix: use a safer check to find gws.
	Fix a bug using sha256crypt on OSX CPU.
	Small tweaks on sha512crypt OpenCL file.
	Include uint64_t definition (stdint.h) in common-opencl.h.
	Add FMT_SPLIT_UNIFIES_CASE to a bunch of SHA-2 formats.
	Mute a few warnings when using test=0 on OSX.
	Mute some warnings.

JimF (64):
	Add our own SHA-2, enabling 19 new formats for users stuck with
	  OpenSSL 0.9.7. OpenSSL or not, boost sha256crypt with 10-20%.
	Fix radmin format under Windows.
	Alignment fixes SHA2 on Sparc
	Handle CommonCrypt in our SHA-2
	CommonCrypto fix in sha256crypt
	JtR-bleed-align-macro-fix-1.diff
	JtR-Bleed-make-generic-unaligned.diff
	JtR-New-Dynamic-35-36-SHA-types.diff
	ike-crack.h: use our local stdint.h instead of global
	JtR-MAG-UNSTABLE-ONLY-Dynamic-sha256-addition.diff
	Updated dynamic adding sha2 formats, and GOST, also made a thin format
	  formspring to do regen-salts type 6
	Dynamic name change (for display), and adding config option and
	  command line switch to cause dynamic to always use raw hashes
	Missed this file in the dynamic raw-hashes-allways-valid patch
	john-1.7.9.5-c6-sunmd5-v1.patch
	New, SSE2 capable sunmd5
	sunmd5 fixed for mmx, sunmd5 added to pass_gen.pl
	Updated sunmd5 and added a couple of optimizations. Added finer
	  granularity memory dumping to memory.c/.h
	many changes I had staged. many were performance changes, some were
	  porting changes. dynamic is now also updated. Also the POC wow_srp
	  format added
	Added OMP, removed a few compile warnings, depending upon compile
	  conditions, oSSL/GMP builds
	GMP fix for 64 bit
	changes to dynamic, adding new methods to give more flexability to
	  larger formats, multiple output types, upon rehashing. Also updated
	  documentation
	Portability issues fixed
	stack overwrite bug fixed
	added JtR tool to_dyna to the build. This tool converts hash:salt or
	  salt:hash into proper dyna format, converting salt to $HEX$ if
	  needed
	Dynamic fixes, from Jim.
	Here is a patch that removes any plug dependencies.
	1. in formats.c, the 2nd loop in the 'max length' check, should start
	  at 0, not at 1.
	Bug fixes for mask mode.
	Some changes to raw2dyna
	Mask mode bugfix
	Fix generic build (dynamic_generic_fix.diff)
	Bug fixes for dynamic union crypt_key
	SSE2 support for WPA-PSK. The code was taken and modified from my code
	  in mscash2. They are pretty different, due to how the main
	  format logic is (mscash2 split out just the inner function, this
	  one did not break out the crypt). But they do about the same
	  things. Also, in SSE2, mscash2 BE's the binary data. I do not
	  do that here, since the wpapsk.h is common code to
	  CPU/CUDA/OpenCL, and that is where that functionality is. So, there
	  simply is a call to alter_endianity_to_BE when the results are
	  stored at the end of crypt. There really should be no speed
	  impact, due to this fact.
	Here are a couple more fixes
	Implement ldr_sort_salts(), currently hard-coded to only apply to
	  wpapsk formats. In the future we will probably want a format
	  struct entry for format->methods.salt_compare().
	Some porting items. The typecasts are due to void* having an undefined
	  size (on some compilerrs). error C2036: 'void *' : unknown
	  size
	Dynamic: Remove many more of the typecasts, putting them into anon
	  unions.
	listconf.c: Ensure we have a proper version of NSS lib before calling.
	bench.c: Get around a crash in VC (and mingw), in -test=0 mode.
	  These only use clock(), so if the bench is fast, there are 0 clocks
	  used. I simply put a 1 in the time slot, if it is 0.
	mingw port issues
	More mingw port issues
	Another version check for NSPR in listconf.c
	Some warning pasifications
	pass_gen.pl: Support creating WPA-PSK test hashes!
	dyna_17_BE.patch from Jim
	basename portability 'fix'.
	Portablity fixes for VC.
	fix wpapcap2john warnings
	Dynamic bugfix, spotted by new warning in gcc 4.8.0.
	Fixed mem leaks, found by mshell.
	Minor fixes.
	JtR-jumbo-dynamic_1014_fix_non_sse.patch
	JtR-Dynamic_validation_raw_hashes.patch
	JtR-Dynamic_validation_raw_hashes-2.patch
	Re-apply JtR-Dynamic_validation_raw_hashes-2.patch but with some
	  missing stuff added.
	JtR_Bleeding_Dynamic_Salt2_UserID_Salt_Bug.patch
	JtR_Bleeding_Dynamic_MEM_ALLOC_SIZE.patch
	JtR_unstable_Dynamic_bare_hash_fix.patch
	JtR-SunMD5-SSE2-scale.patch
	Disable OMP for MMX in wpapsk format
	Dyna21-crash.patch
	dynamic-valid.patch
	JtR-Unstable-crash-fix-dyna_21.patch
	JtR-Unstable-Dyna-big-hash-fixes.patch

Frank Dittrich (57):
	Make --list= a little bit more user friendly
	Bash completion: add support for --list=format-methods[:WHICH]
	Silence -Wpointer-sign warnings in hmacSHA*_fmt_plug.c, take 2
	Add --help option to john (prints usage summary)
	Define new [List.External:Repeats_*] sections
	New external mode variable "maxlen"
	Rename external mode variable maxlen to cipher_limit
	Rewrite Filter_ROT13 external mode to allow easier adjustment
	Dummy format: warn about unsupported password length
	Define new external modes to generate sequences of characters
	Fix compiler warnings in dummy.c
	Make use of cipher_limit in some more external formats
	Fix warning in dummy.c, this time for real
	Bash completion: add trailing space for --nolog etc.
	bash completion fix
	Fix bash completion for hidden options
	Fix bash completion for --subformat
	Fix bash completion for --option[=value]
	Rewrite bash completion for automatic handling of new john options
	Refer to "doc/OPTIONS" for help regarding --fix-state-delay=N
	Fix ./john --list=parameters:SECTION (with .include [other])
	Bash completion: support (src)$ cd ../run; ./john -[tab]
	sunmd5_fmt_plug.c: Fix -Wunused-variable and -Wunused-but-set-variable
	  for generic builds (on a 32bit Linux system)
	Adjust EPI format documentation
	Rename doc/EPi.patch.README to doc/README.format-epi Reason: there
	  is no longer a separate patch
	Fix broken links in source code
	SAP CODVN B and F(G): be more restrictive in valid()
	Fix "Compiler error in ./john.conf at line 612: Unknown identifier"
	  which occurred when using $ ./john --list=ext-filters-only
	Separate function john_list_build_info
	Add GMP library version to --list=build-info
	Add even more version info to --list=build-info
	Remove some obsolete FIXME comments from bash completion script
	Fix a few typos in listconf.c comments
	Fix typos in calc_stat.c
	Fix more spelling errors
	Fix spelling: then -> than
	Fix typo in doc/README-OPENCL
	Fixed some more typos
	Add binary_hash_[56] and get_hash_[56] to 16 formats
	mozilla_des.c and .h: #if 0 unused functions
	sap2john.pl: improve coding style (tabs vs. spaces)
	doc/OPTIONS: remove the only [tab] which is not part of a heading
	Remove dead code from mozilla_fmt.c - used #ifdef DEBUF
	Fix grammar
	Adjust benchmark-unify to jumbo-8 format name changes
	Benchmark-unify: map KRB5 format names
	Fix a bug when using --stdout, introduced in e14ac00.
	benchmark-unify: adjust format name mappings Add "Mozilla SHA-1
	  3DES" mapping Adjust "pdf" mapping
	remove unused variable in putty_fmt_plug.c, valid()
	Fix bash completion for formats if --list=hidden-option has
	  --format=CLASS
	Bash completion: Workaround for --format=CLASS parsing
	Fix bash completion for formats if --list=hidden-option has
	  --format=CLASS
	Bash completion: Workaround for --format=CLASS parsing
	dynamic_THIN_FORMAT_LINK: use PASSWORD_HASH_SIZES ... to make sure
	  all the binary_hash[i] and get_hash[i] methods get passed to the
	  thin formats.
	benchmark-unify: format name mappings sorted (sort --ignore-case)
	benchmark-unify: add/change some mappings
	.mailmap: make sure git maps my commits to my new email address

Sayantan Datta (25):
	common-opencl.c:Added build from binary
	mscash2-opencl:bitselect optimization
	New opencl format:DES-BS
	DES-opencl:various optimizations
	des-opencl:use local memory
	des-opencl:Performance improvement
	des-opencl:performance improvement, broken ATI 4xxx
	des-opencl:fixed ATI 4xxx
	opencl-des: nv performance improvement
	des-opencl:use bitselect for AMD gpus
	bf-opencl:added cpu optimized kernel
	mscash2-opencl: split kernel
	des-opencl:runtime kernel preprocessing
	des-opencl:slightly lowered memory usage
	des-opencl: minor kernel improvements
	mscash2-opencl:auto detect gws,apple cpu bug
	des-opencl:fixed detection of matching salt
	des-opencl:hardcoded kernel
	des-opencl:added fall back kernels
	opencl-mscash2: bug fix
	mscash2-opencl:bug fixes
	opencl-mscash2:bug-fixes
	mscash2-opencl honours LWS and GWS env variables, des-opencl and
	  bf-opencl honours GWS environment variables, added functions to
	  detect optimal GWS for bf-opencl and des-opencl
	bcrypt-opencl: fixed AMD 7970 ASIC hang
	bf-opencl:fixed 7970 ASIC hang

Lukas Odzioba (22):
	Make Truecrypt formats non-plugin and only build for OpenSSL >= 1.0.0
	Fixed valid in pwsafe formats
	Fixed valid() in pwsafe formats
	removed rm/remove
	Replace malloc() with mem_alloc() in many places.
	I did some minor changes mostly in opencl/cuda formats. I also
	  added mem_calloc(size) to memory.c/h, not a big deal but helps
	  clean tables for candidates with just one line of code.
	Changed names of fmt_main structs listed below, to be consistent with
	  naming convention we use most often: -name starts with
	  "fmt_" prefix, or "fmt_opencl", "fmt_cuda" for gpu formats.
	More fmt_main name convention fixes
	Rename CL_VERSION_1_0 macro to HAVE_OPENCL to clean the code a bit.
	Some formats didn't respect -dev option given by command line.
	gpg2john: Handle multiple keys per in file, as well as multiple
	  infiles.
	Add OpenCL 1.2 error codes to our debug routines.
	Include OpenCL version information into --list=build-info
	CUDA versions in --list=build-info
	(re-)enable agilekeychain format
	gpg2john fixes
	fix vncpcap2john exception handling
	Basename helper function in misc.c, also capable of stripping
	  extensions.
	gpg2john GECOS support
	GPG valid() fixes.
	SIP valid() fix.
	SIP valid() fix.

ShaneQful (18):
	Added author comment at top of file & chmodded it to be executable
	Added prepare method which checks for the old style pdf hashes and
	  converts them to the new style pdf hashes if necessary
	Cleaned up comments and added self to credits
	Fixed bug Dhiru found in pdf2john.py. There was an issue with one of
	  my regexs so that it didn't cover all situations
	Remove FIXME(s) (Don't scare Frank and magnum anymore)
	Removed assert which caused bugs in some documents generated with word
	  for the mac
	Fixed spelling error
	Update CREDITS-jumbo
	Added License to pdf2john
	Added Python 3 support for pdf2john
	Changed is_meta_data_encrypted to return a boolean rather than a
	  string
	Changed get_encrypted_object_id to get_object_id in order to get any
	  object id from the trailer
	Impemented parse meta method, just get values methods left
	Fix for checking meta data encrypted in python 3.2
	pdf2john now gets the title and year created from xmp metadata
	pdf2john now gets all relevant metadata when metadata left unencrypted
	Fixed bug in pdf2john where wrong objects could have been used
	Small fix to get_xmp_values method in pdf to john

Alexander Cherepanov (16):
	sunmd5 coinflip speedup
	Just a small patch to fix strncmp in NETLM format.
	WPAPSK bugfix.
	Some typos.
	Typo in dynamic.conf
	Replace unicode em-dash in putty files.
	Replace non-ascii char by hex code in pass_gen.pl.
	Replace several non-ascii copyright signs by "(c)" string.
	Fix typos in README.bash-completion.
	Fix some typos in README-OPENCL.
	Add some band-aid to valid() in sxc format.
	Improve robustness of valid() in pkzip format.
	Make valid() in sunmd5 format robust.
	Fix a crash in dynamic with an overlong salt.
	undrop: limit the length of password. (Fixes a crash.)
	krb5: ensure that username and realm are non-empty. (Fixes SIGFPE.)

Solar (11):
	hccap2john fixes
	RAdmin, SIP speedup
	sunmd5: minor fixes
	sunmd5: Get rid of modulo
	Sunmd5: Eliminate some more uses of sizeof(string). Also replace one
	  use of MAX_KEYS_PER_CRYPT with count - should help with single
	  crack mode.
	Merge Solar's Jumbo-7 changes selectively.
	Merge Solar's john-1.7.9.6-selftest-1.diff. This was meant to be
	  committed to core -> bleeding-jumbo and we should have it in
	  1.8-unstable-jumbo by now but progress is so slow I (magnum)
	  lost faith. Original comments follow:
	PoC optimization for NTLMv1. Maintain a table for the third DES block.
	Try to speedup cmp_all() by use of a bitmap. This only makes sense
	  when cmp_all() is called multiple times per crypt_all()'s actual
	  processing - that is, when cracking two or more C/R pairs at
	  once. There's a check for that in the code. Moreover, use of
	  the bitmap is automatically disabled when the C/R pair count
	  reduces to 1.
	Licensing files
	Add 'dokuwiki' external mode from
	  http://www.openwall.com/lists/john-users/2013/06/08/14

Narendra Kangralkar (10):
	Make ciphertext parsing more robust in nk format
	Make ciphertext parsing more robust in episerver format
	Make ciphertext parsing more robust in IKE format
	Make ciphertext parsing more robust in vnc format
	Make ciphertext parsing more robust in django format
	Make ciphertext parsing more robust in pbkdf2-hmac-sha512 format
	Make ciphertext parsing more robust in office format
	Make ciphertext parsing more robust in oldoffice format
	Make ciphertext parsing more robust in zip format
	Add support for cracking KDE KWallet files

Vlatko Kosturjak (7):
	Fix: handle error handling better. Helps in debugging OpenCL errors.
	  For example, was getting OpenCL error
	  (CL_INVALID_PROGRAM_EXECUTABLE) instead of OpenCL error
	  (CL_INVALID_BUILD_OPTIONS) because program did not handle
	  previous error and continued to run even if build did not
	  succeed.
	Fix: If Apple is in question, turn off build options as Apple OpenCL
	  does not like it. At least on Mac Book Pros having ATI Radeon HD
	  6750M.
	Print to stdout without message for consistency
	expose markov stats file as command line option
	Initial import of ZSH completion for john
	make targets for zsh completion
	"polishing" changes

bwall (6):
	Initial pwsafe optimization
	Removed OpenSSL tag from pwsafe_fmt_plug
	Updated copyright
	Optimized the iterated SHA256 in pwsafe-cuda
	Added copyright information
	Applied optimizations to pwsafe-opencl and cleaned up copyrights

rofl0r (6):
	timer.h: remove unneeded include (sys/timeb.h)
	factor out struct tcphdr
	Makefile: allow JOHN_LDFLAGS
	tcphdr.h: remove unneeded typedef
	tcphdr.h: special-case endian.h for mac/bsd
	timer.h: re-add sys/timeb.h to windows section

Deepika Dutta (3):
	Add bit-sliced MSCHAPv2 implementation by Deepika. This is added as a
	  new separate format: We now have mschapv2, mschapv2-bs and
	  mschapv2-naive.
	Add MMX version of DES_bs_crypt_plain().
	netntlm bitsliced conversion

Myrice (3):
	Bug fixed: xsha512-cuda long password bug
	rawsha512/xsha512-cuda change thread/block number for better
	  performance
	Add mask mode

Michael Samuel (2):
	Add External:KDEPaste. This takes advantage of CVE-2013-2120 to find
	  seeds that KDE Paste applet uses to generate passwords.
	Add license notice to KDEPaste external mode.

Costin Enache (2):
	Fix for clock err in timers.
	Silly bug in sunmd5 busted the rounds parsing.

Julien Perrot (2):
	add support for sips uri (with explicit port number)
	adds support for sips uri (with explicit port number) when converting
	  input from sipdump

Tavis Ormandy (2):
	Avoid useless roti operation for R75, minor syntax cleanup.
	manually unroll the cmp_all loop a few times, as gcc refuses to do so.

bartavelle (Simon Marechal) (2):
	sunmd5.hack.diff
	Updated copyright information

Linus Lüssing (1):
	MSCHAPv2: Add support for freeradius-wep-patch challenge/response
	  format

alexandru (1):
	Default value for number of iterations

tomrittervg (1):
	fix typo in memory allocation check code

Mat G (1):
	New format: Fortigate (FortiOS)

Diogo Ramos (1):
	fix opencl kernel build on macosx

Michael Ledford (1):
	Adds support for multiple keys existing in an encrypted DMG. When
	  multiple keys are found it selects the first password key header.
	  Adds support for DMG sparseimage files. Previously the first chunk
	  selected could be empty. Now chunk number one is chosen for DMG
	  sparseimage files and a new heuristic is added to the DMG format
	  plugin to look for 'Apple'.

Camille Mougey (1):
	New formats: KRB5-18 and KRB5-23


The following changes were made between 1.7.9-jumbo-6 and 1.7.9-jumbo-7:

magnum (109):
	define REPORT_OPENCL_WARNINGS in bleeding after it was undef'ed in magnum-jumbo
	Version notice for magnum-jumbo
	RAR: make self-test comments more clear about what is what
	Fix for common_opencl_pbkdf2.c for Mac (uint -> unsigned int)
	options.c format list: Workaround for silly Windows bug at column 80
	Brainfart in magnum-jumbo version: it's supposed to be 1.7.9-jumbo-6+unstable, not 1.7.9-jumbo-6+bleeding
	Remove the "unreliable, will miss guesses" from rawsha512-opencl and -cuda after myrice's fixes. They pass the Test Suite.
	Fixes for raw-md4, raw-md5, nt2 and raw-sha1 when *not* using reduced binary size (ie. for bleeding-jumbo)
	Drop the "unreliable, will miss guesses" from xsha512-cuda. It now passes the Test Suite.
	opencl_bf_std.c: replace uint to unsigned int
	Drop the "unreliable, will miss guesses" from xsha512-opencl. It passes the Test Suite now.
	Add a "Section [%s] not found" before outputting the catch-all --list=?
	Merge fix
	raw-md5-opencl: Report human readable errors
	opencl_mscash2_fmt.c did not declare clear_keys static.
	Fix mis-use of CL_DEVICE_MAX_WORK_GROUP_SIZE in a number of OpenCL formats.
	Version change for Jumbo-7RC, and undefine REPORT_OPENCL_WARNINGS
	Drop a bogus run/pfx2john from the tree
	Fix two declaration-after-statements in MPI code Add run/pfx2john to .gitignore
	Fixes after last patch
	Make clear_keys in dynamic_fmt.c static
	testpara-native test target added
	Allocate one more byte for opencl source. Weird errors seen when not.
	Use common find_best_workgroup() for a number of formats, fixing various problems. Alloc/free kernel source memory instead of mem_calloc_tiny(). Make global_work_size global. Always print diagnostics to stderr.
	Fix a (possible) problem introduced in the previous patch
	Pick a better fallback for optimal_work_group
	raw-md4-opencl added (very near a copy of raw-md5-opencl except kernel)
	common find_best_workgroup(): Use proper GWS when calculating LWS
	Revert the "shared find_best_workgroup" from opencl_xsha512_fmt.c - it had a special loop for calulating 10 samples and made worse without it.
	Fix for global global_work_size
	common-opencl.c: Fix for Apple CPU + do a warm-up run
	Fixes for shared find_best_workgroup(): formats must use profilingEvent. Use a loop targeting half a second. Again, use the shared function for opencl_xsha512_fmt
	Fix LOTS of output in OpenCL formats so they go to stderr (lmgtfy)
	Fix a compiler warning
	Fix sha1-per-key calculation
	opencl_cryptsha512: Errors to stderr, please.
	Use Sayantan's bitselect in RAR kernel (unless nvidia)
	Add keychain2john to .gitignore
	declaration-after-statement in wpapsk.h
	Unify case in hmac formats, and set the flag. Also, fix bugs in rawSHA-2 formats, which claimed they unify, but did not.
	raw SHA2 formats: accept upper- or lowercase hashes
	Fixes after Jim's patch (new-style format interface mixed in)
	Ditch the last pFmt stuff (except in dynamic)
	Add "LC_ALL = C" to Makefile, for better compatibility with some non-GNU systems.
	wordlist.c: fix segfault reported in http://www.openwall.com/lists/john-users/2012/08/01/5
	pkzip: Drop a now unused label, muting a compiler warning
	Fix the self-test's clear_keys().
	mscash formats: Warn when rejecting too long salts
	rar_fmt: Move new CMIYC tests to the debug section so they don't skew benchmarks
	Update doc/BUGS and add "unreliable" to pwsafe-cuda
	Fix pwsafe-cuda by limiting max length. Also move an endian-swap from crypt_all() to get_salt() - and same fix for opencl format.
	pwsafe-cuda: Bump PLAINTEXT_LENGTH to 32 again, this time with an array size to fit.
	bf-opencl and sha512crypt-opencl: use stderr for diag/error output.
	pwsafe-opencl: merge fixes from -cuda version
	bf-opencl: Workaround for AMD APP problems running this format on CPU. This fix does not affect GPU at all.
	sha1 OpenCL kernels: Fix compiler warnings (on OSX) and optimise a little while at it.
	Revert a buggy change to ldr_load_pot_line() in 1c637ba that lead to segfaults. This may mean $HEX$ fixups for dynamic will be broken again, until fixed some other way.
	RAR: Drop the warning about device being CPU. I have seen OpenCL outperform a CPU-only OMP build by 2.5x.
	wordlist.c: We can't free the word buffer memory upon exit from do_wordlist_crack() because some formats just copy the pointer in set_key() and the final status line will call get_key(). Problem seen with oracle_fmt.
	RAR: Add some early rejects. Huffman table check still TODO
	OpenCL platform/device selection from john.conf was not working properly (it was read too late)
	RAR format: Use mem_alloc() and MEM_FREE().
	RAR: Finally, quite effective early rejection! Verified with almost 70,000 test files, with no false rejects. And we are rejecting over 96% of the candidates without resorting to a slow full check (which in turn may reject semi-early, especially if it's a PPM block)
	RAR: Correct benchmark output when running vectorized.
	RAR: Smaller salt struct. Minor and benign bug fixed.
	RAR bugfix. It's a wonder it worked as good as it did.
	RAR debugging
	Drop the "MaxOrder < 64" constraint - I have files with MaxOrder 165 that was not cracked due to the limit. (-m4, -m5, -mct)
	Change a bunch of ISO-8859-1 source files to UTF-8
	Use LC_ALL=C for plugins' sed incovation in Makefile
	Change all non-ascii copyright signs to (c) in source files.
	RAR: Use mem_alloc_tiny() instead of mem_alloc()
	Accidental spaces in Makefile replaced with TABs (it matters).
	RAR: Memory leak fixed. It was introduced with early reject.
	Update CREDITS-jumbo and CHANGES-jumbo
	RAR: fix a compiler warning on 32-bit
	RACF: Fixed a compiler warning and made format struct forward-compatible
	VNC: Fixed a compiler warning and made format struct forward-compatible
	memory.c: print some clues if alloc() fails. RAR: handle expected bogus alloc sizes (bug introduced in 8f3e452)
	RAR: User-settable max. duration (mitigating kernel exec. timeouts)
	Simplify that last patch a little
	Fixes for OSX's CUDA and OpenCL targets, and add macosx-x86-64-gpu.
	Assorted OpenCL and CUDA fixes needed for OSX. - Always use "static" or "inline" for non-kernel functions. - Avoid comparing integers of different signs. - Change %Zd to %zd - Rename all local implementations of memcpy to _memcpy - change "uint" to "uint32_t"
	OpenCL: Do not add -cl-nv-verbose on OSX
	MPI fix for loopback mode (cosmetical)
	RAR: fixes from magnum-jumbo that should be in -fixes too
	Makefile: Fix for linux-x86-sse2 target
	OSX performance fixes
	gcc 4.7 performance fix
	EPIserver: Add proper Unicode support. A bunch of other formats: Unicode fixes (no problems seen but better safe than sorry).
	RAR: Make check_huffman() less greedy (I had a false assertion-fail, for an invalid data stream)
	RAR: Correct BINARY_SIZE (it should be zero!)
	Raw-SHA1-ng: Set min_keys_per_crypt to 4 to avoid unnecessary performance hit in Single mode.
	Opportunistic copy of john.bash_completion to any (all) present directories out of: /etc/bash_completion.d /usr/local/etc/bash_completion.d /opt/local/etc/bash_completion.d
	OpenCL auto-find GPU if no specific device requested. Also, an OSX OpenCL fix of unknown importance.
	OpenCL/CUDA: differentiate gpu_id -> ocl_gpu_id and cuda_gpu_id. This was a necessity just waiting to happen.
	A couple fixes for OSX. After this, ALL formats except some OpenCL ones builds and works fine under OSX 10.8 - including with HAVE_NSS, HAVE_KRB5 and HAVE_GMP. The separate make targets vncpcap2john and office2john are tested too and works fine.
	OpenCL tweaks depending on platform. Add a new function get_platform_vendor_id().
	GPU tweaks (cosmetically, if that)
	Office 2007 leaked about 1 KB of memory per second
	Office: Remove a no-op from DeriveKey() and protect us from segfault in GeneratePasswordHashUsingSHA1() in case DeriveKey() returned NULL. Are there cases we don't cover?
	Common-opencl.c: It turns out strcasestr() is not standard, so cease and desist.
	pass_gen.pl: Print a notice if we stop due to --count limit.
	The "arbitrary characters in rules, using \xnn" introduced by Jim in commit ad56c30 did not work for preprocessor ranges. This is now fixed and tested.
	Fix for wpapsk for big-endian, submitted by Sam Novak.
	Drop radmin & pfx formats, and pfx2john. These will be in Jumbo-8.
	Added a CHANGES-jumbo.git which is (almost) raw output from "git shortlog", and placed (the changes part of) Solar's announcement of Jumbo-6 in CHANGES-jumbo (mostly as a placeholder, it might need editing).
	Update CREDITS-jumbo
	hmac-sha1 bug fix: Certain optimisations did not take SHA_BUF_SIZ in account. Very few builds pick the old SHA-1 implementation that uses 320 bytes instead of the now normal 64 bytes but native OSX llvm now does, so triggered the bug.

JimF (25):
	SKEY was lacking fmt_default_clear_keys in it's format struct
	pass_gen.pl: Support for sha256crypt and sha512crypt
	pass_gen.pl: add XSHA512
	Dynamic format bug fixes post Jumbo-6, from bleeding
	Fix radmin format under Windows.
	GOST: Fixes for clang (bswap stuff)
	Dynamic_Diff_Clear_Keys.diff
	Fix for dynamic_1003
	Jumbo-7RC-JimF-fixes.diff
	JtR-New-Dynamic-35-36-SHA-types.diff
	JtR-Dynamic-Algorithm-Changes-35-36-37-fixes.diff
	Add dynamic_27/28 to pass_gen.pl
	JtR-Dynamic-27-28-fix-non-mmx.diff
	JtR-J7-RC-ONLY-Dynamic-changes-NO-sha256.diff
	fixes to dynamic split, fake_salt static removal and gost_plug multiple init allow
	fix to dynamic-27/28
	Bugfixes to strnzcpy() and strnzcpyn()
	All known changes from JimF, along with unification of differences between core-jumbo-magjumbo-bleeding
	dynamic: $HEX$ fixes
	Fixed dynamic valid, removing all HEX data prior to validation of hash line
	dyna_1008 had to have a couple tests commented out (NULL bytes). epi server improved. pkzip format, old code left in, just in case, but in a #if 0 block
	added some new formats to pass_gen
	parser functions that were not properly in code
	Added mssql-2012 format
	Portability change

Frank Dittrich (23):
	Adjust LDFLAGS for clang targets
	Make --list= a little bit more user friendly
	Bash completion: add support for --list=format-methods[:WHICH]
	New --list=help instead of --list=?
	Add --list=help:help and improve output in case of wrong method name
	Bash completion: add support for --list=option[:value]
	pdf2john.c: compare pointer to NULL, not to 0
	Make some more --list= commands work despite a broken config
	Drop unneeded (and buggy) memsets from KRB4
	Add --help option to john (prints usage summary)
	Fix dynamic_1010 format name
	Fix salt size of dynamic formats in --list=format-details
	benchmark-unify: make sure dynamic_NNNN is followed by a colon
	john.bash_completion: improve comments
	Fix salt size of dynamic formats in --list=format-details
	Add OpenSSL version info to --list=build-info
	Add FMT_MAIN_VERSION, CHARSET_V and MAX_MKV_* to build-info
	New --list=[sections|parameters=SECTION|list-data=SECTION]
	Bash completion: convert upper case section names to lower case
	calc_stat.c: more verbose stderr output for non-ascii characters
	Add [List.External:Filter_Rot13]
	Make bash completion work for OS X
	Bash completion: work around differences between GNU sed and OS X sed

Claudio André (22):
	Fix: use the same tests available in cryptsha512_fmt.c Improvement: create another test vector.
	Improvement: better set_salt and set_key out of bounds management.
	Better constants and control on find_best_gws.
	Improvement: renamed AMD OpenCL file.
	raw-md5-opencl: Do not use byte addressed stores
	Improvement: use shared find_best_workgroup. Fix: invalid use of __OPENCL_VERSION__.
	Fix: remove commented code.
	Fix: proper usage of profilingEvent in host code.
	Improvement: use shared find_best_workgroup. Fix: invalid use of __OPENCL_VERSION__.
	Fix: remove commented code.
	Fix: proper usage of profilingEvent in host code.
	Revert: usage of shared find_best_workgroup.
	Fix: allow user to run the software (sha512crypt-opencl) without cl_khr_byte_addressable_store
	Fix: wrong if inside get_processor_family (OpenCL) code.
	Improvement: create a default/safe kernel. Improvement: allow to select at runtime the kernel to be executed.
	Improvement: create a better way to select default global work size.
	Improvement: code cleanup.
	Improvement: better parsing of user input.
	Improvement: change shared find_best_workgroup to allow cryptsha512-opencl use it.
	Improvement: change shared find_best_workgroup to allow cryptsha512-opencl use it.
	Better 'no_byte_addressable' detection.
	Change Format-specific settings names (john.conf)

Dhiru Kholia (20):
	Add support for cracking KeePass 2.x files.
	Get rid of BOM.
	Add support for cracking PKCS #12 files.
	Use BIO_write instead of BIO_puts.
	Add one more test vector in pfx format.
	Fix OMP build.
	Fix build.
	Add support for cracking RAdmin v2.x hashes.
	Add a fast test vector in pfx format.
	Integrate pfx2john with john.
	Remove my hacks from pwsafe format.
	Complete Office format documentation.
	Add documentation for pwsafe format.
	alignment fix in radmin format.
	BONUS: pwsafe format also cracks Password Gorilla databases.
	Fix license in MD5 OpenCL kernel.
	Update 1.7.9-jumbo-6-fixes
	Update 1.7.9-jumbo-6-fixes
	Fix build.
	Drop "inline" from rar malloc stuff. It was probably done wrong.

Solar (9):
	hccap2john fixes
	RAdmin, SIP speedup
	Optimized mscash2-opencl
	Use "unsigned short" rather than simple "short" for single crack mode's buffered key offsets.
	We use "short" for buffered key indices and "unsigned short" for buffered key offsets - make sure these don't overflow.
	john-sha1-r3-bitselect.diff
	wordlist.c truncation bugfix (from contest edition)
	pwsafe-cuda: Bugfix (w[14] init) and optimisations
	Final Jumbo-7 changes.

Lukas Odzioba (5):
	Fix a multitude of declaration-after-statement warnings.
	cudasha256speedpatchv3.diff
	wpapsk-valid_fix.diff
	Fixes for CUDA mscash formats.
	opencl_cryptsha512_fmt.c: Change type of large constants

Myrice (4):
	Bug fixed: xsha512 and raw-sha512 opencl/cuda IRL
	Bug fixed: xsha512-cuda long password bug
	xsha512-cuda: low min_keys_per_crypt and dynamic block number
	Fixed xsha512-opencl, raw-sha512-opencl/cuda long time run. Extend password length to 20 for these formats

Sayantan Datta (4):
	mscash2-opencl:bitselect optimization
	mscash2-opencl: automated bitselect selection
	bf-opencl:simpler kernel code
	mscash2-opencl:code cleanup

Knug Carl Gustf (2):
	Speed up RACF encryption with a pre-computed lookup table
	Speed up VNC encryption by pre-computing DES_set_odd_parity()

Vlatko Kosturjak (2):
	Fix: handle error handling better. Helps in debugging OpenCL errors. For example, was getting OpenCL error (CL_INVALID_PROGRAM_EXECUTABLE) instead of OpenCL error (CL_INVALID_BUILD_OPTIONS) because program did not handle previous error and continued to run even if build did not succeed.
	Fix: If Apple is in question, turn off build options as Apple OpenCL does not like it. At least on Mac Book Pros having ATI Radeon HD 6750M.

Tavis Ormandy (2):
	test conservative storage of binary.
	try redundant binary format.

Pavel Semjanov (1):
	pkzip: Bugfix for check_inflate_CODE1()

Elijah [W&P] (1):
	Fix CUDA targets for (future) Windows builds.

Erik Winkler (1):
	macosx-x86-64-cuda build target added



The following changes were made between 1.7.9-jumbo-5 and 1.7.9-jumbo-6:

magnum (334):
	This patch reverts part of the NT format to using an incorrect and no longer needed length check. That beats me, but it will do until the reason is figured out.
	Changes Makefile test targets for Test Suite 1.10
	Correct truncation for NT format. This time with no performance loss
	External filter now truncates at format's max length. Turn off wordlist memory buffer if an external filter is used (a modification would trash the buffer if a word got longer)
	Reduced verbosity for normal test targets and added verbose ones
	Replace length checks in nt2 too. Strangely enough it is faster with them.
	XSHA intrinsics. Does not support OMP.
	XSHA: added "option" to revert to OpenSSL for OMP builds. Also fixes 32-bit MMX builds.
	XSHA: Added support for OMP with intrinsics
	pass_gen.pl added to run/ directory. This has only been available in separate patches (like the test suite creation scripts) until now, and that version was not up to date. This is a gem for testing stuff.
	XSHA: More optimised salt handling, better OMP scaling
	mysqlSHA1 32-bit set_key() for SSE2
	Bug fixes to lotus5 (OMP builds) and both mssql formats (MMX builds)
	mysql-sha1 set_key tweaks
	Salted-sha1: performance tweaks
	Raw-MD5-unicode made thick again, using much faster code (2x dynamic)
	raw-md5u final fixes (all linux builds pass test suite)
	MD5_std vs intrinsics / arch.h PARA fixes. Never disable SSE for MD5, revert to 4x instead.
	mssql05 hash functions size 5 & 6
	Oracle11: Added intrinsics
	Oracle11 optimisations
	drop cmpt_cp.pl and mkdumb16.pl (will be placed in the separate patch)
	corrected a typo in the PARA gcc version tests
	Adapt trip_fmt to Jumbo
	Added MMX/SSE/intrinsics to sapB as well as lots of optimisation.
	Fixed bug in unicode.c where specifically giving --enc=raw did not work as expected
	sapB: Various fixes. Max salt length 12 (changed self-test hash). Changed cur_salt to struct pointer. Non-SSE builds fixes. Replace 8-bit characters with '^'.
	sapG: Added MMX/SSE/intrinsics. Decreased salt length to 36 (12 x UTF-8) (changed self-test hash).
	sapB and sapG: re-worked valid() for variable salt length. We still support the old format (padded with spaces to 40 characters) but also non-padded.
	make testpara target, for determining best SSE_PARA values
	hmac-MD5 optimisations. 32-bit set_key().
	RawSHA1: Optimised set_key() for some 17% speedup.
	PARA tweaks from Solar's tests
	testpara: decrease threshold for accepting a higher value from 5% to 1%.
	sapB bugfix for 8-bit salts
	sapG minor fix in get_salt() (only affected over-long salts)
	sap_prepare.pl renamed to sap2john.pl and changed not to pad salt
	sapB: Various bugfixes. Use enc_strupper() for proper uc of UTF-8, but init the Unicode system in a way so it does not uppercase double-s
	sapG: Various bugfixes. New cleaning mechanism. Seems to work fine now. Intermediate key will never be longer than 192 bytes, decreased max number of limbs to three. Dropped the internal UTF-8 conversion. It was never appropriate. sapG now behaves like any other 8-bit format. If you want UTF-8, feed UTF-8.
	sapG: Optimisations, 30% boost (now 2x compared to Jumbo-5)
	HDAA: OMP support
	sapG Bugfixes. Insufficient key cleaning in rare cases plus a really hideous bug in "magic array" enumeration.
	sapB: key cleaning bugfix. This was a mean one. Weird algo.
	HDAA: get rid of a compiler warning
	sapB & sapG minor optimisations
	sapB & sapG: trim trailing spaces from (truncated) plaintext. Raise sapG plaintext length (for UTF-8 encodings of long passwords) Warn if --encoding=utf8 is used/not used depending on format: these formats are well defined in that aspect.
	DragonFly BSD crypt-SHA2 formats added. Should work for 32-bit "versions" of the bugs in them.
	OMP support for raw-sha2 and DragonFly sha2 formats
	DragonFly, cosmetic
	Crypt-SHA2 formats using OpenSSL and with OMP support
	Copyright and license statements overhaul
	Fixes in a number of formats after failing new self-tests. A few of them were probably real bugs.
	Revert the not strictly needed fixes from last commit. Add a couple other fixes.
	Deprecated raw-md5 thin (moved to unused) in favour of thick version
	IPB2: fix in binary(), it was reading twice the size of ciphertext and probably overwriting something.
	Change #include "omp.h" to #include <omp.h> in a number of formats.
	SHA-crypt-256/512: Change benchmark to only output raw figure since there is no difference between one/many salts. Also output "rounds=5000".
	Drop x86-ssei.h in favor of x86-sse.h, add tests that disable intrinsics for gcc older than 3.4.6 (the oldest we know work at all) and fallback to asm. This means the sse2/sse2i targets now work similar to 64/64i for newer versions of gcc, that is, sse2i just means "precompiled intrinsics".
	MSCHAPv2 salt() alignment
	DragonFly SHA formats: Add 64-bit versions (in same format files: dual structs)
	loader.c: fix for --user=<uid> when loading pwdump files
	bugfix for previous patch
	loader.c: restore the defined-out block for DES bare hashes with whitespace salt.
	DragonFly formats: cosmetics
	Make all sse2i targets use x86-sse.h. Add new test target linux-x86-64-32-sse2asm.
	sapG fix for long candidates (over 64 octets)
	Jim's new SHA-1 intrinsics. Uses 16x4 buffer instead of 80x4. Improved "make testpara32" to compare asm figures too. Updated SHA1_SSE_PARA for 16x4 code. New pre-compiled intrinsics.
	Dragonfly formats: Type-cast void pointer arithmetic
	Adds --max-run-time=N option, for graceful exit after N seconds of cracking.
	Makes --max-run-time disregard init & loading times
	Correct a bug in the "double10" external mode
	pass_gen.pl: Show usage blob when no options given
	pass_gen.pl: Add salted sha-1 (of any length up to 16) and fix bugs in base64 encoding
	Salted SHA-1: Support any salt size
	Change MPI defaults to be more stable (no MPI_Barrier nor MPI_Abort)
	sapG: add const for safety/optimisations
	More randomness for HDAA in pass_gen.pl (lengths etc)
	md5-mmx.S: new interface needed for multi-limb (>55 bytes) crypts (for HDAA)
	HDAA intrinsics, 3x original speed
	Wordlist.c hack for reading candidates from a pot file: 1. if --wordlist given without a name, use default pot file 2. if wordlist name (after 1) ends in .pot, parse it as such
	Added hmac-sha1 and hmac-sha256 formats. Added wikipedia self-tests to sha-md5
	Added hmac-sha224/384/512 (and made hmac-sha256 a non-plug like these)
	Changed benchmark type to raw for all HMAC formats
	SAP B format: Optimisations
	sapG: made "theMagicArray" static const. This alone made a 4% boost
	sapB regression fix
	Wordlist mode: Fix dupe suppression for non-buffered mode. Make the pot file parsing mode aware of any custom field separator.
	Replace the muting of "#!comment" lines when in memory buffer mode
	sapB bugfix for generic builds
	wordlist.c MPI fix for dupe suppression in non-buffered mode. We must incrementent the line counter when skipping, because the different nodes will have different views of what is a dupe.
	sse2i_winfix.pl modified so it can handle any .S file
	Copyright/license statements
	More copyright/license blurbs
	IPB2: OMP & intrinsics support, over 3x speed
	IBP2: 32-bit mmx/sse fixes
	hmacSHA1: Support key lengths >64
	All hmac formats: Support key lengths >64
	All hmac-SHA formats: fix for salt containing '#' and self-tests for keys larger than pad size (n/a for sha-384/512 as of now due to lack of support from John itself for lengths gt 125)
	New format: Drupal7 (non-plug, OpenSSL >= 0.9.8, OMP)
	Copyright/license stuff
	Add missing opencl-mysql declarations to john.c
	Windows fixes for new sse2/sse2i scheme
	Change Unicode tables to const - might help the optimiser
	Unified make target linux-x86-64-gpu including both CUDA and OpenCL. Also adds intrinsics to the 32-bit CUDA and OpenCL targets.
	change -lcrypto -lssl to -lssl -lcrypto (helps static linking)
	options.c: Sort formats list
	New para-best.pl for "make testpara"
	options.c: enable format name printing all the way to 80th column
	options.c fixed erroneus output of \0
	NT-OpenCL: Add FMT_UNICODE flag
	loader.c: Do read gecos and homedir from pwdump-style input. http://www.openwall.com/lists/john-users/2012/02/22/1
	Makefile typo (cosmetic)
	Manual sync with Samuele's tree's b890a51
	Support specifying OpenCL platform on command line
	Add a trivial platform/device lister (to unused/ for now). The plan is to make JtR capable of outputting this list.
	Mute compilation log if it's no more than a line-feed
	Correct BENCHMARK_LENGTH for raw-sha1-opencl
	Rename sha-crypt-256/512 to cryptsha256/512
	OpenCL: rename -gpu to -device and support -platform=LIST (or -device=LIST)
	Drop the separate listocldev.c
	Auto memory size suffixes when listing devices
	rar_fmt: 15% speedup if ARCH_LITTLE_ENDIAN && ARCH_ALLOWS_UNALIGNED. This version can successfully crack non-hp archives with method "store" ("m0b") without spawning unrar. Also fixed a bad memory leak. rar2john: Pick best candidate from RAR file. Prefer stored files over compressed, and prefer smaller files over larger.
	Fix for gpu builds imlicitly using pre-built icc intrinsics
	RAR format: Proper support for -p mode. OMP Support and optimisations.
	RAR: Do not prefer zero-byte files. Use basename of filename for user. Improve error output at salt loading. Clean up rar2john variable definitions.
	rar2john: Handle Unicode file names. Less output unless -DDEBUG.
	Fix for Unicode filenames. We need to zero the whole buffer between files.
	Proof of concept patch for OpenCL options in john.conf
	Make the RACF format a plugin
	Fix for -subformat=list. The config file was not yet read so we could not get info for user formats.
	SIPdump added. Needs libpcap-dev so for now it's a separate make target "make SIPdump"
	Add LDFLAGS to SIPdump build target
	Cosmetic changes to cryptsha256/512 (CPU)
	ssha-opencl: If KPC was requested, use it when enumerating LWS
	Revert "ssha-opencl: If KPC was requested, use it when enumerating LWS". This did not work well.
	Fix for cryptsha512-opencl in -gpu and OSX -opencl targets
	Revert enabling of OMP in Makefile that was introduced in 0763f0d
	Fix for OpenCL/CUDA targets w/ pre-built intrinsics
	Fixed over-allocation in all OpenCL SHA-1 kernels. They used 320 bytes per key buffer instead of just 64.
	New pre-built intrinsics for latest sse-intrinsics.c icc version 12.1.0
	Add Local Memory Type, LE/BE and ECC info to OpenCL device list.
	ssha-opencl: Move salt and datai buffers preparation away from crypt_all() just for good measure. There might be a miniscule speedup for single-salt.
	common-opencl.c: Add -DDEVICE_IS_CPU to the build options when applicable, for self-adjusting kernels.
	mozilla2john: Error (and usage) to stderr Makefile: revert OMPFLAGS (please stop committing that!)
	Mozilla_fmt bugfix: globalSalt array was smaller than needed, causing segfaults. This should be forwarded to the FireMasterLinux project.
	Mozilla_fmt: corrected updating of cracked[] array. Also set BENCHMARK_LENGTH (possibly temporarily) for seeing how the upcoming get/set_salt() fix will affect performance.
	Enable atexit() in opencl_cryptmd5_fmt.c and opencl_phpass_fmt.c just to get rid of compiler warnings
	RAR format: OpenCL support added (in the same one format). Support for AES-NI instructions by using OpenSSL EVP instead of low-level calls. Experimental support for reverting to CPU in Single mode (when doing a lot fewer than max keys per crypt in a batch). Currently #defined out. Added inline storing of RAR data in input file when files are small enough. Added lots of self-tests. Default to use same length tests as cRARk. Changed format tag from $rar3$ to $RAR3$ to enforce re-running rar2john. Moved slow code from set_salt() to get_salt() and keep all allocations during the whole run.
	Set OS_TIMER to 0 in arch.h if AMD APP SDK in installed and building OpenCL, or if mingw is used to build 64-bit Windows build.
	Silly me forgot an #endif in x86-64.h
	RAR: Mute warning about AES-NI engine (it may be false) fix comments
	RAR: Re-introduce find_best_kpc() - only used when specifically saying KPC=0
	sapB optimisations and sap2john overhaul
	RACF: trivial fix to mute a compiler warning for non-OMP builds
	RAR fixes for OpenCL. Better error handling (especially if -DDEBUG). Now works fine on AMD Cedar (previously segfaulted).
	RAR: minor optimisations. Enable fallback to CPU in Single mode (it's safe now)
	A couple more .gitignore entries
	Make hmacMD5 a non-plugin in order to force it to load after mscash2. Now only hmacSHA1 was a plugin of all hmac's so I threw it in as well.
	Create doc/CHANGES-jumbo, generated from commit descriptions
	Remove obsolete file opencl/PBKDF2.cl
	Fix a typo in common-opencl.c
	Cryptsha512-opencl Makefile fix for 32-bit build targets
	RAR: various optimisations.
	RAR (OpenCL): drop all use of byte_addressable_store. This also avoids lots of endian swapping. Added four versions of RawPsw, one for each aligment, and copy 32-bits at a time whenever possible.
	RAR: Tweak auto-tuning. Unroll first loop. Do endian swapping only once when preparing RawPsw.
	RAR: KPC enumeration tweaks
	RAR: Made us of local memory optional (default disabled). Re-added find_best_workgroup() and tweaked adjusting to device. Found a way to reduce register use by 16, all else equal.
	RAR: Optimisations for GTX580. Now 4400 c/s. Major overhaul of auto tuning.
	Office format: Unicode support
	RAR: Better granularity w/ KPC=0 (vs auto-homing). Auto-define NVIDIA from cl_nv_pragma_unroll for architecture tweaks. Bump plaintext length for better coalescion. Init lengths to 6 so the self-tests don't end up wildly diverging threads (when it just sets a few keys out of thousands).
	RAR: Fix LWS at 64, there is no point in evaluating it.
	RAR: Decrease register use a lot, only one RawPsw buffer. KPC tweaks. Get rid of the switch (for AMD) in sha_final() using a new bit flip macro. Optional fixed length in kernel. Approaching 10,000 c/s on HD 7950
	RAR: Minor optimisations verified on GTX580. Self-test length fixes. Unroll inner loop by four for fixed-length kernels, dropping a switch statement.
	RAR: Disable the 4x inner loop unrolling for AMD, it was detrimental
	RAR: Use vectorized memcpy if AMD
	RAR: Drop impossible conditionals for unrolled nvidia code.
	RAR: Vectorize output copy for AMD. This too made an unintuitive boost.
	Added hccap2john to .gitignore
	common-opencl.c: Add -cl-nv-verbose if device is nvidia
	Include a vectorized kernel in same file as non-vectorized. It is not used yet. Add an opencl-rar.h file.
	RAR: Disable fixed_len that was accidentally active
	RAR: Remove a debugging notice unless actually debugging
	Added a note about bash completion in the "Notes to packagers" in params.h
	Fix a typo in bash completion
	Fixes for bash completion's Makefile target
	More fixes for bash completion make target
	common-opencl.[ch]: Added some nvidia-specific stuff. Also ran indent on it because it was a mess.
	New (hidden) options: --list=[inc-modes|rules|externals|ext-filters|ext-modes] to be used by bash completion as well as GUI's and other things.
	New hidden option: --list=ext-filters-only. Unlike --list=ext-filters, this does not include modes that also has generate()
	New hidden options --list=build-info and --list=<section> Also includes Solar's patch for compiler.c
	--list: Missing CR for icc version output. Removed FLG_STDOUT.
	Version string now reflecting magnum-jumbo (1.7.9-jumbo-5+unstable)
	Add -list=hidden-options
	bash completion now including incremental/external modes and rules
	Tab vs space in doc/RULES
	RAR: Separate FIXED_LEN from vectorizing (the latter needs the former but on nvidias we may only want the former).
	RAR: Fix EVP and unrar memory leaks. Early reject if rar_decode_number would return > MaxNum. Experimental fuzzy early rejection found by Milen.
	RAR: reverted experimental early reject, it produced false negatives. Added lots of comments to unrar code, from original sources.
	RAR: Added a reject test from Milen
	Move some --list= options handling earlier, so we can show it even if we lack a config file.
	RAR: Another early reject found by Milen. This was already in place but we might bail out just a little sooner with this test.
	SHA0: use the basic function names since they're static anyway. This format is good as a template for unsalted formats and sha1_gen_fmt_plug.c is good for salted ones, as they don't contain any SSE2 or such complications.
	Mute NSS/pkg-config warnings for LDFLAGS
	Updated doc/CHANGES-jumbo and started to hand-edit it. More needed.
	Updated doc/CHANGES-jumbo
	Add run/opencl_bf_std.h to .gitignore
	mozilla format: support new get_source() core
	NT2: Simpler prepare() without mallocs, as Jim did to NT_fmt
	config.c: fix for not breaking generic builds
	get_source(): self test
	Mute a compiler warning when building RAR in 32-bit
	nt2 and raw-md5: Add get_source() functions
	Raw-sha1: add get_source()
	Make the last patch work on non-Windows
	Revert get_source() function for now (it's still in bleeding-jumbo)
	Move bash completion script to run directory in case a packager forgets about it
	Fix a couple of compiler warnings
	Revert hash and buffer sizes for unique, accidentally committed by Jim in 514c059
	mscash: bugfix for codepage version of get_salt()
	Alignment fixes in mysqlSHA1 and rawSHA0 binary()
	Revert "Fix: improve build on multi-GPU environment."
	Add new john.conf options subsections Markov, MPI and Jumbo and add a new config item CrackStatus under Options:Jumbo. Note: If CrackStatus=Y in john.conf, the --crack-status option disables it.
	Drop the "Jumbo" subsection of john.conf, leave those items at the top [Options] section.
	Add --list=subformats and deprecate --subformat=list
	List --subformat as a hidden option now (for --format=crypt benchmark)
	Mute a compiler warning for raw2dyna.c
	Make raw-sha (sha0) a non-plug so it always gets lower precedence than sha1
	RAR: change KPC to GWS
	Rest of OpenCl formats: Change KPC to GWS in john.conf and environment variables
	john.conf typos in comments (external:double)
	c3_fmt.c: fix typos, raw-sha vs cryptsha
	README.mpi minor updates
	Updated doc/CHANGES-jumbo. We now have 516 commits since Jumbo-5 but this is reduced to currently 172 lines in this file.
	A couple minor changes to CHANGES-jumbo.
	Source $JOHN/john.local.conf by default. This file is never overwritten but will be created empty when building, if it does not exist. It must *not* be included in any release tarball.
	Create a rule section "Extra" for the previously commented-out rules for Single mode. Also, add new rules "Single-Extra" (consisting of Single plus Extra) and "Jumbo" (consisting of all rules we have, including NT). I preserved the name "All" for local use, thus using "Jumbo" instead.
	External:Keyboard: Fixes for 8-bit characters vs signed char constants. http://www.openwall.com/lists/john-users/2012/02/26/2
	Makefile: Never overwrite john.local.conf when building
	Add --list=[encodings|opencl-devices]. Deprecate --encodings=LIST (but it's still supported). We will later support --list=cuda-devices too. Drop --device=list and --platforms=list (not supported from now on). For the catch-all of --list=<subsection>, add a header "Subsections of...".
	RAR: Support files larger than 2 GB.
	Add --list=formats, listing all formats in the order they are registered.
	Update doc/OPTIONS and doc/README.opencl
	Some more .gitignore entries
	wordlist.c: True dupe suppression for buffer mode, code based on unique.c
	CUDA device lister: Handle error conditions.
	john.c: Alter output from --list=? a little, working around a problem with how bash completion was parsing it. Also add a function prototype for cuda_device_list().
	CUDA: Add some info to device list. Fix compiler warnings.
	Added a stub doc/CREDITS-jumbo based on git author data, and manually edited.
	Updated doc/OPTIONS and doc/CHANGES-jumbo
	mscash2 sizeof() bug fix after the Sparc fixes.
	wordlist.c: Fix a compiler warning on 32-bit
	Revert "bf-opencl: performance and stability update". It broke building.
	Fix line endings in a couple of files that were in DOS format.
	mscash2-opencl: Fix a typo that merely led to a compiler warning
	Fix line endings in opencl_mscash2_fmt.c again
	mscash2-opencl: Fix a typo that merely led to a compiler warning
	RAR_fmt.c & common-opencl.c: Fix compiler warnings on 32-bit builds
	NT and mscash1: Fix strict aliasing breakage from Sparc fixes
	New option: --log-stderr
	Closed-loop mode and dupe suppression fixes
	Made Taviso's SSSE4 format a non-plug, depending on SSSE4
	Add an experimental linux-x86-64-native build target
	Fix compiler warnings in Tavis' SHA-1 format
	When using --log-stderr, don't produce a log file
	taviso_fmt.c: Replace memrchr with strrchr. Add $dynamic_12$ tag like other raw SHA1 formats use. The format announced FMT_SPLIT_UNIFIES_CASE which was not correct until now.
	Updates to CHANGES-jumbo and CREDITS-jumbo
	Add 32-bit "native" build targets
	tavis_fmt.c: Fix a memory leak.
	taviso_fmt: Fix for strrchr vs full-length keys.
	Fix incorrect $dynamic_12$ tag in raw sha1 formats to $dynamic_26$
	Do NOT delete ../run/john.local.conf on "make clean"
	Fix 64-bit native target (we need -march=native in ASFLAGS too)
	Rename rawSHA1_LinkedIn_fmt_plug.c to rawSHA1_linkedIn_fmt_plug.c so it registers *after* the normal raw-sha1 format.
	Another fix for john.local.conf
	Fixes for -native build target
	Updated CHANGES-jumbo
	-march=native implies -mtune=native
	raw-sha1_li format: Fix bug that would give false negatives from cmp_all()
	Reduced binary for raw-md4, raw-md5, raw-sha1 and NT2. This decreases memory usage with 3 bytes per loaded hash for NT/MD4/MD5 and 4 bytes for SHA1 and should help keeping good stuff in cache.
	Reduced binary size #ifdefs
	XSHA_fmt_plug.c: Fix bug introduced by Sparc fixes
	Closed-loop mode: Print name of pot file
	Fix mySQLSHA1 and sha1gen bugs from Sparc fixes. All should be OK now.
	Format/algo renaming of some of Lukas' formats that were missed due to even stranger use of the macros
	wordlist.c: Drop linefeeds in log_event() calls
	Permit smaller hash size for wordlist dupe suppression, and prefix some more log output with "- "
	Drop email addresses from CREDITS-jumbo
	RACF binary() alignment fix
	Alignment fix in raw-sha1-linkedin
	New (hidden) option --length=N for reducing plaintext length of a format, mostly for testing purposes.
	Add new options --loopback[=FILE] and --dupe-suppression (the former implies the latter) and revert some stuff for backwards compatibility. NOTE: I had to free up some option flags that was not really needed. But we are now OUT OF them!
	Requested CREDITS-jumbo fix
	Reflect new format names in CHANGES-jumbo
	Move --field-separator-char to hidden option
	Make GPU builds (for Linux 64-bit) -march=native
	Make --log-stderr a hidden option
	sha1_gen_fmt alignment fix (just to be sure)
	phpass-cuda was inadvertently named phpass-opencl
	GOST rename from "GOST 3411" to "GOST R 34.11-94"
	Remove two unused variables from opencl_bf_std.c
	Fix a (clang) compiler warning in MYSQL_fast_fmt_plug.c
	Move MYSQL_fmt_plug.c to unused/, rename MYSQL_fast_fmt_plug.c to mysql_fmt_plug.c and change its label to just mysql
	CHANGES-jumbo updates. Hard to keep terse, we could drop more
	CHANGES-jumbo don't repeat last names
	Revert "Revert to older (working) phpass-opencl for now". This code was no better.
	Revert to a non-vectorized phpass OpenCL format, hand-edited to reflect new names/labels/etc and shared opencl_find_best_workgroup()
	Set FMT_UNICODE for all mscash GPU formats
	Move --fix-state-delay=N to "hidden" options. Does not seem to affect bash completion.
	Revise formats.h descriptions of FMT_UNICODE and FMT_UTF8
	Add "unreliable" to mscash-cuda formats
	64-bit GPU targets Makefile fix: -march=native vs. sse-intrinsics.o
	--list=format-details: use hexadecimal output for the FMT_flags
	Do not "advertise" linux-x86-native as the best target
	Changed version to 1.7.9-jumbo-6-RC0
	Fixes for --max-run-time
	SSH: Fix a complaint about unused variable
	Fix a cosmetical bug if you abort during loading, and loading is less than one second.
	RAR bugfix (though it would never show up)
	Avoid a bunch of compiler warnings for keepass2john.c
	Clean up a bunch of Dhiru's scattered variable declarations
	Fix for fake_salts.c that regains 52MB of BSS
	Fixed another bunch of Dhiru's scattered variable declarations, for the HAVE_NSS case.
	Add office2john and vncpcap2john to "make clean"
	Remove UTF-8 BOM from keepass2john.c
	clang targets: Add -Wall, and for debug targets also -Wdeclaration-after-statement
	Mute a couple of benign compiler warnings
	CHANGES-jumbo update
	Add a git .mailmap file to (cosmetically) unify the commit history
	Do not define REPORT_OPENCL_WARNINGS for release. We'll still se build errors but the output will be cleaner when all is OK.
	Fix a -Wdeclaration-after-statement for MPI
	Fixed my share of GPU formats' declarations not at block start.
	Add another test vector to hmac-sha1
	Make episerver, keepass, pwsafe non-plugs.
	Added doc/BUGS which lists the three formats that does not work with big-endian, as well as the problematic mscash CUDA formats.

Dhiru Kholia (126):
	ssh2john: Detect if private keyfile has no password
	Support rar's -p mode by spawning external unrar process.
	rar2john: fix failure for RAR files with comment present.
	RACF password cracker patch for JtR.
	Add OMP support in RACF cracker patch.
	Add OMP code to RACF based on magnum's changes to RAR format. Fix non-OMP build of RACF.
	Add .gitignore file.
	Integrate SIPcrack 0.4 into JtR. SIPdump.c is still to be integrated.
	Add CRACF.TXT (generated by CRACF program). Add cracf2john utility to convert input CRACF.TXT file into JtR compatible format. racf2john is currently TODO.
	Minor optimization in length calculation.
	Add OMP support for sip format.
	Remove a memory leak in RACF format.
	Fix memory leaks in SIP format.
	Get rid of Valgrind warnings from RACF format code.
	Add one more SIP hash.
	Integrate VNCcrack (http://www.randombit.net/code/vnccrack/) into JtR. JtR can now crack RFB Protocol Version 3.8 authentication.
	Minor fixes for RACF format.
	Add keepass2john utlity for processing input KeePass 2.x database files into a format suitable for use with JtR. KeePass format is in works.
	Finally, the racf2john utility is here. Huge thanks to Nigel Pentland for providing sample code.
	Cleanup SSH format.
	Fix thread safety issues in SSH format.
	Make some functions static. Add a userid length limit check in racf2john.
	Symlink racf2john to john.
	Remove some minor compiler warnings.
	Alternate and FAST method to ensure thread safety in SSH format.
	Minor fixes for SSH format.
	Fix build when using OpenSSL 0.9.7
	Re-add OpenSSL version check for SSH format.
	Fix compiler warning in VNC format.
	Increase SALT_SIZE in RACF format.
	Add VNC password decoder utility in unused folder. Works for TightVNC and RealVNC products.
	Add VNC passwd file support in vnc-decoder.c.
	Add group information to racfdump. Increase SALT_SIZE in RACF format.
	Add a patch for SSH format by Solar.
	Improved vncpcap2john. Works for RFB 3.7 and 3.8 protocol versions. Works with TightVNC and RealVNC servers. 3.3 RFB support is TODO.
	Add make target for vncpcap2john.cpp
	Use BSD version of tcphdr (patch by Erik).
	Fast cracker for Mozilla Firefox, Thunderbird and SeaMonkey master passwords.
	Fix a compiler warning in mozilla format. Add sample key3.db files.
	Restore original DES code. Begin preparation for OMP support.
	Fix worst of memory leaks (one leak in lowpbe.c:186 is still present). Make code OMP friendly.
	Fix remaining memory leaks by avoiding dynamic allocation.
	OMP support for mozilla format. ~1.5x faster using 3 cores.
	Remove requirement of cert8.db files for "no master password" check in mozilla2john. Remove "no master password" check from mozilla_fmt.
	Implement support for having test vectors and benchmarking in Mozilla format.
	Simplify mozilla format by avoiding dynamic memory allocation.
	Add support for cracking Office 2007 documents.
	Fix 32-bit SSE2 build.
	Add patch by Solar. Increase PLAINTEXT_LENGTH to 32.
	Remove debugging code.
	At least detect Office 2010 files.
	Add support for Office 2010 files in office2john.
	Fix "Too many open files" error by using proper free function.
	Add support for *new* EPiServer's default hashes.
	Minor cosmetic fixes.
	Add few more self-tests in episerver format.
	Implement proper set_salt and get_salt functions in episerver format.
	Add speculative support for salted SHA256 hashes in episerver format.
	Fix a silly typo.
	Office 2010 support is now complete.
	Implement proper get_salt and set_salt functions in office format.
	Add OMP support in office format.
	Add another test vector from RFC3211 (taken from extractkeychain-0.1's sources).
	Implement proper get_salt and set_salt functions in RACF format.
	Implement keychain2john program.
	Implement "fast" Mac OS X Keychain cracker with OMP support.
	Wrong hacky fix for keychain format.
	Implement proper get_salt and set_salt functions in pdf format.
	Implement proper get_salt and set_salt functions in VNC format. Get rid of unused version property.
	Ignore 2 more files.
	Fix multi-salt performance in pdf format.
	Cleanups and reduce global data in pdf format.
	Keychain format is now FMT_NOT_EXACT.
	Get rid of compiler warnings in Mozilla format.
	"Easy fix" for compilation warnings on Lion.
	Use CommonCrypto on OS X instead of OpenSSL for EpiServer format.
	Use CommonCrypto on OS X instead of OpenSSL for RAR format.
	Use CommonCrypto on OS X instead of OpenSSL for SybaseASE format.
	Use CommonCrypto on OS X instead of OpenSSL for hmailserver format.
	Use CommonCrypto on OS X instead of OpenSSL for raw-sha512 format.
	Use CommonCrypto on OS X instead of OpenSSL.
	Use CommonCrypto on OS X instead of OpenSSL in drupal7 format.
	Use CommonCrypto on OS X instead of OpenSSL in cryptsha512 format.
	Use CommonCrypto only on Lion.
	Fix (hopefully) compilation problem on Snow Leopard.
	Use CommonCrypto only on Lion.
	Avoid warnings when nss is missing or pkg-config is missing.
	Add help file for Mozilla format.
	Fix help file.
	Minor fixes for mozilla2john utility.
	Fix size to match SHA1 requirements.
	Add some sample Mozilla "non-hashes".
	Implement proper get_salt and set_salt functions in Mozilla format.
	Add support for cracking Password Safe files.
	Implement fixes suggested by Solar. Integrate pwsafe2john with john.
	Add SHA-256 OpenCL kernel.
	Fix a crash in ssh2john.
	Add another test vector in SSH format.
	Implement changes suggested by Solar.
	Add support for WoltLab Burning Board 3 hashes.
	Add support for Django 1.4 hashes.
	Remove executable flag.
	Add support for GOST 3411. Authors: Jim, Sergey and Dhiru.
	Add support for cracking ODF files.
	Add test-case with duplicate salt.
	Remove wrong usage of FMT_NOT_EXACT from ODF format.
	Use proper license in mozilla format.
	Remove my hacks from wbb3 format.
	Remove my hacks from episerver format.
	Remove my hacks from RACF format.
	Fix license in mozilla format.
	Fix RACF breakage.
	Drop cracked array approach from django format.
	Add more test vectors in vnc format.
	Add more test vectors in django format.
	Fix 32-bit episerver format builds.
	alignment and size fixes for episerver format.
	alignment fix for django format.
	alignment fix for wbb3 format.
	Add three more make targets. linux-x86-clang-debug is super good for debugging.
	Add support for KeePass 1.x files.
	Fix salt size in SSH format.
	Add support for cracking KeePass 1.x files.
	Integrate keepass2john program with john.
	Add more test vectors to KeePass format.
	Fix warnings exposed by -Wdeclaration-after-statement flag.

Frank Dittrich (64):
	bash-completion for JtR (to install: "sudo make bash-completion")
	bash completion updates
	Update and licensing statements for bash completion
	bash completion updates http://www.openwall.com/lists/john-dev/2012/05/12/4
	bash completion updates
	bash completion update http://www.openwall.com/lists/john-users/2012/05/21/1
	bash completion update http://www.openwall.com/lists/john-dev/2012/05/23/1
	bash completion update http://www.openwall.com/lists/john-dev/2012/05/24/1
	bash completion http://www.openwall.com/lists/john-dev/2012/05/25/3
	bash completion update http://www.openwall.com/lists/john-dev/2012/05/28/9
	bash completion update
	bash completion update and documentation.
	bash completion update http://www.openwall.com/lists/john-dev/2012/06/06/32
	c3_fmt.c: improve --subformat= handling
	bash completion: a few more improvements
	Fix bash completion for unique
	Adjust bash completion (--list=encodings and --list=opencl-devices)
	Fix bash completion for input and output redirection (<, >, 2>...)
	Move markov option handling to mkv.c (do_markov_crack)
	use [Markov:Default] instead of [Options:Markov] for --markov
	bash completion: avoid default completion for --opt=
	Markov mode: move parameter validation into new function get_markov_options Additionaly, the logic has been changed so that the max. values for level and length are adjusted prior to checking min. values, to avoid adjusting min. value to a max. value which is changed afterwards:
	genmkvpwd should use MAX_MKV_LVL
	Markov: different error messages for missing [Markov:Default] section and for missing Statsfile definition in an existing [Markov:Default] section
	Markov: improved logging
	Improve error message for invalid incremental mode name
	Implement --markov=MODE[:<options>]
	Markov: Fix an old typo in an error message
	Bash completion: avoid completion for --l= if --l= is ambiguous
	Add --list=format-details
	Change sequence of columns for --list=format-details
	Add john.conf comment about [Options] section
	Adjust copyrigth in usage output (1996-2012)
	Fix --format=crypt --subformat=TYPE names in doc/OPTIONS
	bash completion fixes for --loopback
	avoid [ and ] in format names
	Makefile: add comments for *-clang-debug targets
	benchmark-unify: a Perl script to convert benchmark output for relbench
	Several enhancements for relbench
	--list=format-details: add number of test cases to output
	Fix gcc warnings in --list=format-details code
	relbench: important fix for duplicate format names in file1
	relbench: update copyright, and change revision from 4 to 4.1
	Some documentation fixes for dynamic formats
	benchmark-unify: map "MYSQL" to "MySQL" and "NT v2" to "NT MD4"
	Use a different format name for raw-sha1-ng, due to max. pwlen 15
	print heading for --list=section only if subsections exist
	Fix clang make targets for the HAVE_NSS case
	fix hccap2john usage output
	bash completion: bug fix for --list=
	add --list=format-all-details
	Markov: allow start and/or end to be specified in percent
	Markov: first convert start % value, then end % value
	Fix --list=? output (new-line/trailing space)
	Fix linux-x86-64-icc target for HAVE_NSS case
	Markov: move mkv_start / mkv_end computation out of do_markov_crack()
	doc/MARKOV: Clarify explanation START / END values
	Adjust --list=format-all-details output to f61def05 changes
	--list=format-all-details: fix indention for FMT_OMP flag description
	Fix linux-x86-native build
	Markov: fix segfault re-introduced with commit 2c5a95a3
	Enhanced compiler version info for --list=build-info
	--list=format-details: add benchmark comment and length and binary and salt size
	Fix another -Wuninitialized warning in keepass2john.c

JimF (36):
	Update src/dynamic_utils.c
	dynamic non contiguious number issues BE
	Update src/dynamic_utils.c
	Update src/hmacMD5_fmt_plug.c
	Added MD4 to dynamic. 7 crypt functions were deprecated. These 7 'crypt' functions were replaced with 'crypt_md5' functions. 4 new md4 crypt functions added. Updated the dynamic conf file, and the dynamic documentation. Added 5 new builtin types to dynamic (using md4).
	Cygwin OMP builds were not building x86-sse.o properly, without this change.
	Lotus5: Use the passed in format pointer, and avoid having to forward declare the static global. Has added benefit of always appearing the same way in all init() functions of all formats, no name differences.
	Simplification of differences between SSE2 and SSE2i code. In nsldap, there were problems with 32 bit SSE2.
	Dynamic MD5_X2 md4 fixes
	Dynamic md4 final fixes
	Dynamic: Support null bytes in constants.
	john-1.7.9-dynamic-unameonly-1.diff
	LOTS of minor fixes for VC builds
	Mscash and mscash2 formats prepare() fixes
	Enhancement of extern:double
	Make incremental mode restore ETA figures
	-regenerate-lost-salts=N option, for cracking hashes where we do not have the salt
	Fix for the recent -regenerate-lost-salts=N patch.
	Added a new rule, to reject a word unless it is a specific length. This could be done in the past with 2 rejection rules. Updated the doc/RULES file, and rules.c. Pretty trivial code change.
	Arbitrary characters in rules, using \xnn
	CORE CHANGES: Add a get_source() function, that (if present) can rebuild the ciphertext from a binary
	get_source() self-test more permissive (tags, case etc)
	Win32 SharedMemory patch (only affects _MSC_VER, __CYGWIN32__ or __MINGW32__ builds)
	raw2dyna added. This is a helper program that converts raw hashes to dynamic format.
	wordlist.c: Status bug fix
	Raw-SHA1 "LinkedIn" format (partial hashes, 20 bit zeroed)
	Loads of minor fixes for Sparc (endianness, alignment)
	Format renames for dynamic (remove extra spaces)
	Fix a cosmetical off-by-one bug in wordlist.c
	Sparc_Porting_and_OtherStuff-unstable.diff
	MMX_fixes_dynamic_and_some_other_patches.diff
	Use first two salts when benchmarking instead of top one.
	Portability_issues_unstable.diff
	VC fixes to hccap2john.c and keepass_fmt_plug.c
	hmac-sha1 bugfix for SSE2. Now passes Test Suite.
	pass_gen.pl updates for GOST, SHA2 etc.

Myrice (31):
	Signed-off-by: myrice <myrice@myrice-laptop.(none)>
	Inital xsha512-cuda
	xsha512-cuda align implementation
	CRLF->LF issued
	Bug fix, Code clean
	Password transfer optimized
	cmp_all on GPU, bug fixed, rename gpu to cuda
	Xsha512 patch from Solar
	Optimize copy hash to host. Copy only when necessary
	Makefile fixed
	More itereations during one GPU call
	Makefile for magnum-jumbo
	Makefile updated for magnum
	cmp_exact for xsha512-cuda
	Reduce 80 rounds in sha512 to 77
	Copyright fix. Static memory allocation in cuda_xsha512_fmt.c
	XSha512 for OpenCL
	xsha512-opencl auto find best local work size
	xsha512-opencl cmp_all on GPU
	auto find best LWS
	xsha512-opencl and CUDA doc
	xsha512-opencl: eliminate byte address store
	Raw SHA512 CUDA format
	Fixed: xsha512-cuda/raw-sha512-cuda: kernel_cmp_all() multiple result malloc
	xsha512-cuda: Long password length support
	SHA512 opencl implementation
	BUG fixed: SWAP64 on AMD GPUs
	code style adjust
	Bug fix: xsha512-cuda: get_key() for long password
	xsha512-cuda: avoid unnecessary hashes copy from GPU to CPU
	Bug Fixed: xsha512-opencl incidentally comment out memcpy in set_key()

Claudio André (28):
	Move src/*.cl to src/opencl/
	OpenCL cryptsha512
	Improvement: get the LWS and KPC from john's config file. Improvement: check if group size is valid. Cosmetic: changes in benchmark comment. See commit: 9d3fe1414e. Performance: put all working variables in __local memory address space. Fixed: allow temp buffer to use all the available local memory. Fixed: use small KPC values when running on CPU. On real cracking tasks, big values behaves badly. Fixed: format and algorithm names. Fixed: copyright information.
	More error treatment in find_best_kpc and find_best_workgroup. Only transfer keys to GPU is necessary (magnum idea).
	openCL_crypt512.patch as of http://www.openwall.com/lists/john-dev/2012/04/18/6
	Changes in common_opencl.c
	Improvement: Set john.conf LWS and KPC properly. Improvement: Unroll only important loops. Performance: Use bitselect and bitalign when possible. Performance: Created a different kernel to run on CPU. Performance: Created a different kernel to run on NVIDIA. Fixed: Fix find_best_kpc() and find_best_workgroup misbehaviour.
	Improvement: disable #pragma OPENCL EXTENSION cl_khr_byte_addressable_store. Improvement: use PUTCHAR macro (15% performance gain on CPU).
	Improvement: failed to use PUTCHAR macro on GPU. More 3% performance on CPU.
	Fix: Avoid memory override on CPU. Note: PUTCHAR fails in insert_to_buffer. Cause is GPU memory misalignment access. Note: on CPU this is the final version. Note: on GTX 570 this is (might be) the final version. Seems the compiler optimize in a way i was unable to reduce register usage. Note: on 7970 this is going to be the final version for a while. Not able to get useful profile information.
	Fix: clear bad and commented code.
	Fix: Avoid waste time on find_best_KPC.
	Fix: Fix find_best_KPC to get the best configuration.
	Put links on OpenCL readme file
	Note: on GTX 570 this is the final version. Seems the compiler optimize in a way i was unable to reduce register usage. Improvement: on Nvidia, use less local memory and bigger LWS. Fix: more code cleanup.
	Fix: more code cleanup.
	Fix: even more code cleanup.
	Improvement: change the code to be more multi-GPU friendly.
	Fix: correct salt usage.
	Fix: improve build on multi-GPU environment.
	Fix: improve salt management.
	Fix: local memory management done by host.
	AMD better performance version. DO NOT merge with Jumbo
	John jumbo official branch
	Fix: use GWS instead of KPC.
	Set my public email
	Fix: declarations not at block start.
	Improvement: more aggressive defaults on Nvidia.

Solar (23):
	john-1.7.9-fastrip-1.diff This patch speeds up DES-based tripcode cracking by making use of JtR's bitslice DES implementation, including its OpenMP parallelization.
	Bugfix in trip_fmt.c (from latest CVS version)
	Drupal 7: Minor optimisation
	Keyboard external mode fix (from CVS)
	XOP for MD5/MD4/SHA-1
	sse-intrinsics.c: Take advantage of some SSE2 and SSSE3 intructions if available http://www.openwall.com/lists/john-dev/2012/03/21/4 (followup)
	OMP Support for wpapsk formats
	taviso_fmt: Use XOP if available. Plus a fix to sse-intrinsics.c for 32-bit builds with SSSE3.
	Format renames, unified algorithm names
	Change cryptmd5 to md5crypt, and cryptsha2 to sha2crypt
	-march=native fixes for linux-x86-64-gpu, linux-x86-64-opencl, linux-x86-64-cuda
	WPA-PSK fixes, OpenMP support
	MySQL-fast fixes, OpenMP support
	Fix breakage caused by commit aab646b42afe93ca909b
	john-mpi.c: Do not include omp.h unless OMP build
	Add a second test vector to PHPS_fmt_plug.c
	md5cryptsse()'s uses of length[]
	SSH format bugfix
	KeePass format is now 1% faster!
	Finally (knock on wood) the RAR cmp_all(3) bug is squatted!
	undef set_key in otder to avoid a clash with OpenSSL 0.9.7's backwards compatibility DES interface, at least on Mac OS X 10.5.8
	wpa-psk big-endian fixes
	john-1.7.9-jumbo-6 as released by Solar

Lukas Odzioba (22):
	john-1.7.9-jumbo-5-opencl-5.diff
	john-1.7.9-jumbo-5-cuda-1.diff
	john-1.7.9-jumbo-5-cuda-2.diff
	magnumripper-magnum-jumbo-3279fdc-fixed.diff
	Rename all opencl kernels
	mscash2-cuda http://www.openwall.com/lists/john-dev/2012/03/31/15
	Added WPAPSK format for CUDA and OpenCL
	Fixed Makefile for CUDA builds for make -j
	Added hccap2john and prepared wpapsk-cuda format for real use
	Moved wpapsk* common functions and structures to wpapsk.h, prepared wpapsk-opencl format for real use
	Make django a non-plugin with checks for OpenSSL >= 1.0.0
	GPU fixes from Lukas
	CUDA device lister, show them with --list=cuda-devices
	Fix a bunch of compiler warnings
	wpa-psk CPU format added
	Unify name of "local work size"
	CUDA fixes
	Revert to older (working) phpass-opencl for now
	mscash1/2-cuda fixes
	CUDA mscash formats fixes. Still not 100% OK.
	phpass_fixesv2.diff
	ocl_cuda_fix.diff

Samuele (16):
	john-1.7.9-jumbo-5-opencl-3.diff
	ssha opencl kernel update
	OpenCL updates. Includes renaming rawMD5_opencl_fmt.c to opencl_rawmd5_fmt.c and rawSHA1_opencl_fmt.c to opencl_rawsha1_fmt.c
	renamed nsldaps renamed nt added mysql-sha1
	added modified cl for nsldaps and nt
	minor changes to cryptmd5_opencl modified nsldaps to add salt alignment as proposes by magnum
	Copyright banner modification
	Starting some documentation
	modified rawmd5 for the kpc test
	README.opencl updated
	added cryptmd5 and phpass by lukas
	added more kpc and larger step in find_best_kpc
	minor changes to john conf
	renamed inbuffer as saved_plain
	Modified Makefile with some environ variable
	various test for mysqlsha1

Sayantan Datta (16):
	mscash2-opencl format added
	mscash2-opencl: Copyright blurb added
	Warning for opencl_MSCASH2_fmt.c muted
	mscash2-opencl 20% improvement
	opencl-MSCASH2 13% performance improvement, added prepare() function.
	opencl-mscash2 Radeon 7970/GTX 570 performance update, openMP support, optimal work group size calculation
	opencl-mscash2 performance update,better cmp_exact()
	mscash2-opencl supports salts upto 19 charcters,fixed memory leaks on gpu, added new file common_opencl_pbkdf2.c to support multiple gpus simultaneouly for pbkdf2 step.
	New format added:Blowfish OpenCL
	blowfish-opencl:performance update,7970 bug fix
	opencl-mscash2: added split() and salt_hash() function
	mscash2-opencl: Code cleanup
	opencl-mscash2:improved valid function
	bf-opencl: performance and stability update
	bf-opencl: performance and stability update
	bf-opencl:passed JtR TS

Tavis Ormandy (10):
	New format rawsha1_sse4 by Taviso. This will need some care before including in a Jumbo release (needs SSSE4)
	* Implement buffering of passwords before crypts to reduce function call overhead. * Write an XMM bswap that doesn't require extracting the XMM regusters. * Use a lookup table instead of a branch in set_key(). * Implement non-sse4 comparison for those without it. * Other minor syntax changes to match rest of code.
	Only build on platforms with SSE2
	Use strrchr instead of memchr
	rename format name as suggested by solar.
	Remove some of the overhead of a partial match by quickly eliminating obvious non-matches.
	double semicolon typo
	Fix keepass2john and rawSHA1_ng compilation on gcc3.4
	Try to reorder W loads closer to first use.
	Add prefetch-loop-arrays optimization

bartavelle (7):
	Copyright headers for md[45]-mmx.S
	Added copyright statement.
	Ignoring build-generated files
	Fix ICC build for x86-64.S
	Fix ICC build for taviso_fmt.c
	Actually fix ICC build for x86-64.S
	64 bit intrinsics assembly file update.

bizonix (2):
	small fix for build in macosx
	Update src/opencl_cryptsha512_fmt.c

Sergey V (2):
	GOST format: avoid function name clashes with OpenSSL > 1.0.0
	GOST format: remove unused defines FORMAT_LABEL_CP and FORMAT_NAME_CP

Your Name (1):
	Reorder cmp_one/cmp_exact logic as suggested by Solar. Fix bug with uninitialized nul byte in binary conversion. Change some tabs to spaces for consistency. Add some more testcases.

András (1):
	john-1.7.9-jumbo-5-opencl-5-macosx_10.7.diff (minus the c3_fmt stuff)

Robert Veznaver (1):
	replaced mempcpy with memcpy for BSD and OS X compatibility

---
git shortlog -w78,8,10 -n --no-merges 1.8.0-jumbo-1..HEAD ^master | sed -r 's/^ {8}/\t/; s/([^\t]) {2,}/\1 /g' >> ../doc/CHANGES-jumbo.git
---
