Fix sam2 client preauth after salt changes

Commit bc096a77ffdab283d77c2e0fc1fdd15b9f77eb41 altered the internal
contracts relating to salts, but neglected to adjust the sam2 preauth
code to match.  Do that now.

ticket: 7415 (new)
target_version: 1.11
tags: pullup
Use config storage for client OTP token selection

* Save the vendor name of the token we used to create the challenge.
* If we saved the name of a token vendor previously, prune out any
  tokeninfos which contain different vendor names.

ticket: 7416 (new)
target_version: 1.11
tags: pullup
Don't expose binary format in preauth otp

ticket: 7417 (new)
target_version: 1.11
tags: pullup
Improve C style checking

* Avoid space-before-paren false positives on some function pointer
  declarations by checking the identifier for simple type names.
* Check for space before close parenthesis.
* Check (carefully) for asymmetric spaces around binary operators.
* Handle nesting when checking for 2+ line flow control bodies.
* Check for asymmetric bracing around else statements.
Add dependencies for some test programs

Some recently added test programs under lib/krb5 didn't have their
source files added to the appropriate Makefile.in variables, and
weren't getting dependencies as a result.

ticket: 7418 (new)
target_version: 1.11
tags: pullup
Don't use PA_PSEUDO in pkinit client code

PA_PSEUDO only has meaning for kdcpreauth modules.  Don't use it in
the flags method of the pkinit clpreauth module.
Document prompter and responder callbacks
Alter responder function signature for consistency

For the responder callback signature, put the closure argument just
after the context, and use KRB5_CALLCONV.  These changes make the
signature consistent with most other libkrb5 callbacks.

ticket: 7419 (new)
target_version: 1.11
tags: pullup
Print tilde characters as-is in trace output

ticket: 7420 (new)
target_version: 1.11
tags: pullup
Correct typo in krb5_rd_req documentation

ticket: 7421
Only record real selected preauth type

Move where we record the selected preauth type so that we never record
an informational preauth type, only a real one.

ticket: 7422 (new)
target_version: 1.11
tags: pullup
Add missing macro and type index.rst entries

ticket: 7424 (new)
target_version: 1.11
tags: pullup
Fix verto_ctx declaration in preauth_plugin.h

ticket: 7425 (new)
target_version: 1.11
tags: pullup
Add loop() kdcpreauth method

[ghudson@mit.edu: avoid verto.h header dependency; minor fixes]

ticket: 7426 (new)
target_version: 1.11
tags: pullup
Revert last trace.c change

The fencepost error was illusory.
Quiet down two noisy test programs
Don't save empty cc_config_out in ccache

Add an internal json function to make it easier to detect if an object
is empty, and use it to avoid creating a ccache config entry for
preauth module config data if there isn't any to save.

ticket: 7427 (new)
target_version: 1.11
tags: pullup
Don't leak new fields of krb5_init_creds_context

Release the cc_config_in and cc_config_out fields of a
krb5_init_creds_context when freeing the context.

ticket: 7428 (new)
target_version: 1.11
tags: pullup
Document GSSAPI loadable module interface

ticket: 7429 (new)
target_version: 1.11
tags: pullup
Always rebuild rst_composite in src/doc

Avoid using "rst_composite" as the target name for building the
rst_composite directory, since we can't give it proper dependencies.
Instead use the target name "composite", which (like "html", "clean",
etc.) doesn't correspond to the name of a file or directory created by
the build rules.