global: Require comparisons to be strict boolean expressions * No implicit integer -> boolean or pointer -> boolean conversions * !expr can be used only if expr is boolean type These were checked with a patched clang. It found various actual bugs, which were fixed by the previous commits.
Based on password length detect if it's hex-encoded or sha1-encoded. Also use MD[45]_RESULTLEN macros instead of hardcoded 16 value. --HG-- branch : HEAD
MD5crypt was broken with 64bit systems. --HG-- branch : HEAD
CRAM-MD5 mechanism by Joshua Goodall, plus some cleanups. --HG-- branch : HEAD