[Nicolas Williams <Nicolas.Williams@sun.com>] client-side pre-auth re-architecting

Ken Hornstein kenh at cmf.nrl.navy.mil
Mon Dec 30 16:47:01 EST 2002


>We believe that the client side preauth API in
>src/lib/krb5/krb/preauth2.c needs significant improvement.

No disagreement here :-)

> - a generic mechanism is needed for setting mech-specific pre-auth
>   options via a get_init_creds options (say,
>   krb5_get_init_creds_opt_set_preauth_opt())

Agreed.

>   [hartmans]  Originally I thought that  you could  just have
>   functions like krb5_gic_opt_set_hwauth_keytab.  Nico pointed out
>   this style does not work well if we have plugins for preauth
>   modules.  He indicated that might be important to him in the
>   future.

I hadn't thought about plugins for preauth modules, but that would be
cool.  Defining the right plugin API for this seems ... challenging, I
will admit, but that comes later :-)

> - krb5_get_init_creds() should maintain a per-call pre-auth context
>   structure, complete with initializer/destructor in preauth2.c.  This
>   structure is needed for pre-auth mechs that interact with each other,
>   for example.  This context should be passed to the pa_functions.

Yes, definately.

> - each pre-auth mechanism should have an optional context structure -
>   this is needed for multi-round-trip mechanisms - also complete with
>   initializer/destructor function pointers in pa_types_t

Yup.

> - some arguments of pa_function can move into the gic context since the
>   pa_functions can then get them from there (e.g., the
>   gak_fct/gak_data)

Seems logical.

> - the as-reply should probably be passed, when available, to the
>   pa_function
>
>   [hartmans]  I remember saying this, but I thought I unsaid it
>   later.  I am reluctant to have one preauth type reading another
>   preauth type 's data.

Hm, I can think of cases where it would be useful, actually (a preauth
type that might have different behavior if you were doing hardware preauth,
for example).

--Ken



More information about the krbdev mailing list