Imported msktutil_0.3.16-7 from:
http://download.systemimager.org/~finley/msktutil/
Remove trailing whitespace; tabs -> spaces (4 space indent).
Compile in C++:

Update autoconf files to remove cruft and do C++.
Fixed C/C++ incompatibilities.
Clean up.

Start adding the use of C++ idioms like exceptions, destructors, and strings.
More cleanup.
More cleanup
Remove HAVE_SETENV / HAVE_UNSETENV.

If your OS doesn't come with these by now...
Bugs.
Start fixing some actual issues...

- Don't attempt to modify attributes that the machine acct doesn't
  have credentials to modify by default in AD.

- Cleanup choice of authentication credentials. (now also tries
  default password for machine account).

- Use in-memory ticket cache when not using user's credentials instead
  of a tempfile.

- More cleanup.
Get correct default computer OU from AD instead of assuming CN=Computers.
More cleanups...
- Resupport Heimdal krb libraries with conditionals in appropriate places where the API differs from MIT kerberos.
- Remove trivial setter functions.
- Remove RC4 salt determining code: RC4 doesn't use salts.
- Cleanup supportedEncryptionTypes handling.
- Always use current hostname as default if not specified.
Rename .c -> .cpp
Add --precreate, --user-creds-only.
Rearrange some stuff.
Update documentation.
Remove msktutil.interactive perl script.
Add new features:

- Don't disable password expiry by default (and add some text to
  man page about the impact).
- Add --dont-expire-password (and --do-expire-password) to
  control it.
- Add --auto-update for use from a daily cron job in order to
  automatically rotate passwords every 30 days.
- Re-add --upn and --description option support.
- Update and rearrange manual and --help.
Fix debian package build.
Add --remove-service argument, clean ups.
Don't expire principals with kvnos within the last week.

This way if you update the keytab multiple times in a row, you don't
risk expiring users' still-active service tickets.
Fix tempfile handling (it was creating files insecurely before)

Also, go back to using a file-based ccache rather than in-mem ccache, so
that compiling against MIT-kerberos but using heimdal-based
libsasl on the system works. Sigh.
Better Heimdal compatibility:
- Detect AES encryption types in configure instead of #ifdef, since they
  are an enum in heimdal, not a #define.
- Don't get confused by Heimdal's complicated default keytab string.