Add additional files to import from Heimdal

Import more RFC3961 crypto definitions from Heimdal, so we can
support a wider variety of encryption algorithms

Also pick up the new mkdir, otherwise we get linker errors.

Change-Id: I5dfe705d3957b646ae05a0e06da1f0f2cfb60e75
Reviewed-on: http://gerrit.openafs.org/10044
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Import of code from heimdal

This commit updates the code imported from heimdal to
5dfaa0d10b8320293e85387778adcdd043dfc1fe (git2svn-syncpoint-master-311-g5dfaa0d)

Upstream changes are:

Ben Kaduk (1):
      Be friendly to krb5_generate_random_block consumers

Jeffrey Altman (6):
      roken: include limits.h unconditionally
      Avoid unused variable warning on Windows
      roken: include direct.h if HAVE_DIRECT_H
      roken: Define S_IRWXU and friends on Windows
      roken: Add rk_mkdir()
      libkrb5: Add missing KRB5_LIB_FUNCTION/KRB5_LIB_CALL

New files are:
	krb5/crypto-algs.c
	krb5/crypto-arcfour.c
	krb5/crypto-des-common.c
	krb5/crypto-des.c
	krb5/crypto-des3.c
	krb5/crypto-null.c
	krb5/crypto-rand.c
	roken/mkdir.c

Change-Id: I77d67afc2b060574a5834fc5c266553c5ff49a25
Reviewed-on: http://gerrit.openafs.org/10045
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Use rk_mkdir from libafsroken

The latest import added it; add it to the build and export list.

Change-Id: I588de000868d063c61753a1a4a2e73931e84005f
Reviewed-on: http://gerrit.openafs.org/10046
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Tested-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
hcrypto: Add exports for more crypto algorithms

Export some additional algorithms so we can make use
of them elsewhere in the code.

Change-Id: I676318a872a1e7b537112a3d60dac2edff478ae6
Reviewed-on: http://gerrit.openafs.org/10047
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Add krb5_free_context stub to rfc3961

Change-Id: I5df22e74ea9a5a057994b6684a09eb0f03da98d2
Reviewed-on: http://gerrit.openafs.org/10048
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Disable some heimdal bits

For the rfc3961 library, we don't want linker exposure to an
entropy-gathering daemon, and we don't want to be leaving entropy
seed files around in user homedirs.

Change-Id: I54546ad44fcdfac8227e72b68a33fa4f61df50b0
Reviewed-on: http://gerrit.openafs.org/10049
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Export RAND_bytes from hcrypto on Windows

Unix already did so, and we need it for the rfc3961 library.

Change-Id: I75401b49a5a2078056360be8f1963d789581c8ed
Reviewed-on: http://gerrit.openafs.org/10052
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
hcrypto: export weak key routine

We only export it on Windows, but the DES3 routines in the rfc3961
library need it everywhere.

Change-Id: Ide0328e40b7753d8ebca79db9eb8b6211bfd7f14
Reviewed-on: http://gerrit.openafs.org/10053
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Build 3961 library in userspace, and add enctypes

Build the 3961 library in userspace, with support for the common
kerberos enctypes des3-hmac-sha1, arcfour-hmac-md5, and aesXXX-cts-hmac-sha1-96.
Export new symbols as well, and suppress deprecated warnings.

Rename all symbols, both exported and not, with an oafs_h_ prefix
so as to reduce the chance of conflicts.

Rename heim_octet_string to avoid confusion about where things are coming
from.

Change-Id: If5155661deb5adf73329eb8b90021512c01a290f
Reviewed-on: http://gerrit.openafs.org/10050
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
bos: Fix Windows import of afsconf_SawCell

IBM created a global variable 'afsconf_SawCell' in the kauth package
and manipulated its value from within bos.c as part of the calling
of ka_Init().  Patchset d52398940d58ccdba4114a9975762f48cc24ad15
exported afsconf_SawCell from afsauthent.dll since bos.exe is built
pthreaded.  It was previously mixing pthread and not-pthread libraries
to access the variable.

Unfortunately, the export was declared as a function pointer instead
of DATA.  Importing a DATA element from a library also requires that
the variable be __declspec(dllimport).   The use of afsconf_SawCell
needs to be replaced but in the meantime fix the import so that bos.exe
can start without crashing.

Change-Id: Ic780971b55d64e41e1ba9627cdeadd6c27c451fb
Reviewed-on: http://gerrit.openafs.org/10054
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Windows: HAVE_TIMEGM provided by roken

Change-Id: I110e0667cdc68ab0877fe8c1d0a4f9e48e60621d
Reviewed-on: http://gerrit.openafs.org/10067
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Windows: afsrpc.dll export afs_set_com_err_hook

Change-Id: Icbd33c9ca087e663d2755a7a6c8380de266ee717
Reviewed-on: http://gerrit.openafs.org/10068
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
windows: afsauthent.dll export afsconf_ functions

Export additional afsconf_ functions required for asetkey

Change-Id: Id8d63f7d18563bd8963750aed6b7baaf873716a8
Reviewed-on: http://gerrit.openafs.org/10069
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Windows: define HAVE_KRB5_CREDS_SESSION

Windows builds against the Kerberos Compatibility SDK which uses
the Heimdal API.  Define HAVE_KRB5_CREDS_SESSION.

Change-Id: I389cb3e8d79846c94884ea9a786e2ae0f52fa293
Reviewed-on: http://gerrit.openafs.org/10071
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Windows: build UNIX asetkey

With roken and friends it is now possible to build the UNIX
asetkey on Windows.  Do so to reduce duplicate code.

Change-Id: Ic7e050b04e6bed7fe2106de1a163d9ae1fde9efc
Reviewed-on: http://gerrit.openafs.org/10070
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Make UKERNEL's panic() a real function, not a macro

In particular, a varargs function, so that osi_Panic() can always
call panic() as varargs.

Change-Id: I2ceee737c0025c146a8cd17b16d6c159e2bbf9d0
Reviewed-on: http://gerrit.openafs.org/9877
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <simonxwilkinson@gmail.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Alias "vos e" to "vos examine"

This shortcut broke when endtrans was added, and some people have
strong finger memory.

Change-Id: Ic00fd33a28c35985464b68becfc25082eee92d0e
Reviewed-on: http://gerrit.openafs.org/10081
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
RedHat: support building on ELRepo kernels

Amend the pattern matching in openafs-kmodtool to support
building for kernels from ELRepo.

Change-Id: I1264490bee90fadfd24d5cd04ea87df4f9c8924d
Reviewed-on: http://gerrit.openafs.org/10083
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Linux 3.11: Convert from readdir to iterate file operation

Convert the readdir function so that it can be used as the new
"iterate" file operation.  This new operation is passed a context
that contains a pointer to the filldir function and the offset.
The context is passed into the new dir_emit function that will
call the function specified by the context.

The new dir_emit function returns true on success, so we must be
careful about how we check for failure since this is different
behaviour from what filldir currently does.

Change-Id: I6b01b4c78a501bdf4f8d583b0d3b94d677c5d541
Reviewed-on: http://gerrit.openafs.org/10051
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
libafs: initialize hard mount last errors

Initialize the values of the server last errors
introduced in commit 94a8ce970d57498583e249ea61725fce1ee53a50
to avoid logging garbage for the last error codes.

Change-Id: I0df262bad5d02231407d0dd65e1f1d32d791912f
Reviewed-on: http://gerrit.openafs.org/10082
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>