Initial version of a base64 regress.
KNF.
Nuke more defines - we have setvbuf() and _IONBF.

ok deraadt@
- Provide extended-precision math constants req'd by POSIX
- Explicitly cast double-precision constants as needed for
FLT_EVAL_METHOD = 2 archs
OK guenther@, ratchov@
Annotate wide character routines so they get protected by Wbounded.
OK millert@
KNF.
It is definitly not the correct spelling.
1. Drop support for no minor. This variant doesn't exist anymore.
2. Pull up the actual minor processing code into the switch that
parses it.
3. atoi is actually simpler than strtonum in this case, but check the
input beforehand so we don't get unexpected results.
4. Slightly more consistent style between various parse and check and
increment operations on salt.
ok deraadt
Add checks for invalid base64 encoded data, specifically relating to the
handling of padding. This fixes a crash that can be triggered by feeding
base64 data followed by 64 or more padding characters, which results in a
negative output length.

This issue was reported by David Ramos, although the same bug has been
sitting in the OpenSSL RT since 2011:

  https://rt.openssl.org/Ticket/Display.html?id=2608

Worse still, BIO_read seems to be completely unable to detect that the
base64 input was invalid/corrupt - in particular, enabling
BIO_FLAGS_BASE64_NO_NL results in a stream of zero value bytes rather than
no input (possibly a good replacement for /dev/null...), which could
result in nasty consequences. Prior to this fix some zero value bytes were
also injected without this flag being enabled.

The recently added base64 regress triggers and documents these issues
(and also ensures that this change retains functional behaviour).
Update the base64 regress test and enable a test that would previously
have resulted in a segfault. Also update the resulting output bytes now
that the invalid/corrupt input is detected and rejected; unless you're
using BIO_FLAGS_BASE64_NO_NL, in which case you still get a stream of
zero value bytes and no way of knowing that the data is invalid/corrupt.
now that 5.5 has been released with compatibility for 2b hashes,
switch to generating them by default. prodded by deraadt and sthen
unbreak compression, by re-init-ing the compression code in the
post-auth child. the new buffer code is more strict, and requires
buffer_init() while the old code was happy after a bzero();
originally from djm@
Correctly enable Montgomery code.
Add tests for with and without compression, with and without privsep.
typos
Do not compile the neon probe code until __ARM_ARCH__ >= 7. Neon-specific code
will not get referenced if this condition is not met.
Enable assembler code for AES, BN (Montgomery), GCM128, SHA1, SHA256 and SHA512.
Note that GCM128 Neon code is currently not built (and thus not tested), as
the current toolchain does not support Neon instructions.
Enable assembler code for AES, DES, GCM, SHA1, SHA256 and SHA512.

The sparcv9 BN code is not enabled, as it expects to run on a 32-bit
userland and will need to be fixed for 64-bit userland first.
Move the u-area allocation and pmap-magic logic to its own function
uvm_uarea_alloc()

function name from NetBSD; arm testing by miod@
Fix whitespace fail in previous commit