Fix multiple checksum handling bugs, as described in: CVE-2010-1324 CVE-2010-1323 CVE-2010-4020 CVE-2010-4021 * Return the correct (keyed) checksums as the mandatory checksum type for DES enctypes. * Restrict simplified-profile checksums to their corresponding etypes. * Add internal checks to reduce the risk of stream ciphers being used with simplified-profile key derivation or other algorithms relying on the block encryption primitive. * Use the mandatory checksum type for the PKINIT KDC signature, instead of the first-listed keyed checksum. * Use the mandatory checksum type when sending KRB-SAFE messages by default, instead of the first-listed keyed checksum. * Use the mandatory checksum type for the t_kperf test program. * Use the mandatory checksum type (without additional logic) for the FAST request checksum. * Preserve the existing checksum choices (unkeyed checksums for DES enctypes) for the authenticator checksum, using explicit logic. * Ensure that SAM checksums received from the KDC are keyed. * Ensure that PAC checksums are keyed. https://github.com/krb5/krb5/commit/1c411f836063e4e6d67390d205e043149302fdd9 Commit By: ghudson Revision: 24538 Changed Files: U trunk/src/lib/crypto/crypto_tests/t_kperf.c U trunk/src/lib/crypto/krb/cksumtypes.c U trunk/src/lib/crypto/krb/dk/checksum_hmac.c U trunk/src/lib/crypto/krb/dk/derive.c U trunk/src/lib/crypto/krb/etypes.c U trunk/src/lib/crypto/krb/etypes.h U trunk/src/lib/krb5/krb/fast.c U trunk/src/lib/krb5/krb/mk_req_ext.c U trunk/src/lib/krb5/krb/mk_safe.c U trunk/src/lib/krb5/krb/pac.c U trunk/src/lib/krb5/krb/preauth2.c U trunk/src/plugins/preauth/pkinit/pkinit_srv.c