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.7.9-jumbo-7..HEAD ^unstable-jumbo ^master | sed -r 's/^ {8}/\t/; s/([^\t]) {2,}/\1 /g' >> ../doc/CHANGES-jumbo.git
---
