_kdc_find_etype consolidation
commit71fb56309c63f51ce9a4e0b6d454b60ff3ea786b
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 28 Jul 2013 00:02:16 +0000 (27 20:02 -0400)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 28 Jul 2013 00:02:16 +0000 (27 20:02 -0400)
tree6d1f1d241416456503dfc6ec7ec857799fc27f27
parent37ca3d35a9a0fc239e9a0d04164f41dd82ce493a
_kdc_find_etype consolidation

The 'use_strongest_session_key' block and its alternate should
have similar behavior except for the order in which the enctype
lists are processed.  This patchset attempts to consolidate the
exit processing and ensure that the inner loop enctype and key
validation is the same.

Bugs fixed:

1. In the 'use_strongest_session_key' case, the _kdc_is_weak_exception()
   test was applied during the client enctype loop which is only
   processed for acceptable enctypes.   This test is moved to the
   local supported enctypes loop so as not to filter out weak keys
   when the service principal has an explicit exception.

2. In the 'use_strongest_session_key' case, the possibility of an
   enctype having keys with more than one salt was excluded.

3. In the 'use_strongest_session_key' case, the 'key' variable was
   not reset to NULL within each loop of the client enctype list.

4. In the '!use_strongest_session_key' case, the default salt test
   and is_preauth was inconsistent with the 'use_strongest_session_key'
   block.

With this consolidation, if no enctype is selected and the service
principal is permitted to use 1DES, then 1DES is selected.  It doesn't
matter whether 'use_strongest_session_key' is in use or not.

Change-Id: Ib57264fc8bc23df64c70d39b4f6de48beeb54739
kdc/kerberos5.c