Clean up client-side preauth error data handling
authorGreg Hudson <ghudson@mit.edu>
Mon, 21 Nov 2011 21:14:39 +0000 (21:14 +0000)
committerGreg Hudson <ghudson@mit.edu>
Mon, 21 Nov 2011 21:14:39 +0000 (21:14 +0000)
commit3fe47057c7535f4603825a01fb84262b7bfa4c55
treebe7bef0585d0635d1683cdbe215f8d09824b7bba
parentf7805327f31940d27e78aecc339108c138f0bec4
Clean up client-side preauth error data handling

Change the clpreauth tryagain method to accept a list of pa-data,
taken either from the FAST response or from decoding the e_data as
either pa-data or typed-data.  Also change the in_padata argument to
contain just the type of the request padata rather than the whole
element, since modules generally shouldn't care about the contents of
their request padata (or they can remember it).

In krb5int_fast_process_error, no longer re-encode FAST pa-data as
typed-data for the inner error e_data, but decode traditional error
e_data for all error types, and try both pa-data and typed-data
encoding.

In PKINIT, try all elements of the new pa-data list, since it may
contain FAST elements as well as the actual PKINIT array.  (Fixes an
outstanding bug in FAST PKINIT.)

ticket: 7023
target_version: 1.10
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25483 dc483132-0cff-0310-8789-dd5450dbe970
src/include/k5-int.h
src/include/krb5/preauth_plugin.h
src/lib/krb5/krb/fast.c
src/lib/krb5/krb/get_in_tkt.c
src/lib/krb5/krb/init_creds_ctx.h
src/lib/krb5/krb/preauth2.c
src/plugins/preauth/pkinit/pkinit_clnt.c