load_lib "helpers.exp" set timeout 30 spawn stty -a expect { eof {} } wait # Setup: make sure the principals we will use have V4 salt fix_salt "CPW.setup" testuser notathena notathena fix_salt "CPW.setup" pol1 pol111111 pol111111 fix_salt "CPW.setup" pol2 pol222222 pol222222 unexpire "CPW.setup" testuser unexpire "CPW.setup" pol1 unexpire "CPW.setup" pol2 unexpire "CPW.setup" changepw/kerberos server_start "CPW.all" "-n" 1 { "KADM Server starting in the OVSEC_KADM mode" {} } kpasswd_v4 CPW.1 testuser 0 notathena foobar { "Password changed." {} } kpasswd_v4 CPW.1 testuser 0 foobar notathena { "Password changed." {} } kpasswd_v4 CPW.3 pol1 -1 pol111111 foo { "New password is too short." {} } { "$kpasswd_v4: Insecure password rejected while attempting to change password." { send "\003\n"; close; break } } kpasswd_v4 CPW.4 pol1 -1 pol111111 foooooooo { "New password does not have enough character classes." {} } { "$kpasswd_v4: Insecure password rejected while attempting to change password." { send "\003\n"; close; break } } kpasswd_v4 CPW.5 pol1 -1 pol111111 Abyssinia { "New password was found in a dictionary" {} } { "$kpasswd_v4: Insecure password rejected while attempting to change password." { send "\003\n"; close; break } } kpasswd_v4 CPW.6.setup pol1 0 pol111111 polAAAAAA { "Password changed." {} } kpasswd_v4 CPW.6 pol1 -1 polAAAAAA pol111111 { "New password was used previously." {} } { "$kpasswd_v4: Insecure password rejected while attempting to change password." { send "\003\n"; close; break } } # We used to use kdb5_edit, which reset last_pwd_change. Now we used # kadmin.local, which doesn't, so we have to wait out the min life. exec $sleep 30 kpasswd_v4 CPW.7.setup pol2 0 pol222222 polBBBBBB { "Password changed." {} } kpasswd_v4 CPW.7 pol2 -1 polBBBBBB pol222222 { "Password cannot be changed because it was changed too recently." {} } { "$kpasswd_v4: Insecure password rejected while attempting to change password." { send "\003\n"; close; break } } server_exit "CPW.all" -1