mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-31 03:59:34 -05:00
126 lines
4 KiB
Bash
Executable file
126 lines
4 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Launch unitary tests
|
|
#
|
|
|
|
|
|
CONFIG_FILE="ppm.example"
|
|
|
|
LDAP_SRC="${LDAP_SRC:-../../..}"
|
|
LDAP_BUILD=${LDAP_BUILD:-${LDAP_SRC}}
|
|
CURRENT_DIR=$( dirname $0 )
|
|
LIB_PATH="${LD_LIBRARY_PATH}:${CURRENT_DIR}:${LDAP_BUILD}/libraries/liblber/.libs:${LDAP_BUILD}/libraries/libldap/.libs"
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
NC='\033[0m'
|
|
|
|
RESULT=0
|
|
|
|
PPM_CONF_1='minQuality 3
|
|
checkRDN 0
|
|
forbiddenChars
|
|
maxConsecutivePerClass 0
|
|
useCracklib 0
|
|
cracklibDict /var/cache/cracklib/cracklib_dict
|
|
class-upperCase ABCDEFGHIJKLMNOPQRSTUVWXYZ 0 1 0
|
|
class-lowerCase abcdefghijklmnopqrstuvwxyz 0 1 0
|
|
class-digit 0123456789 0 1 0
|
|
class-special <>,?;.:/!§ù%*µ^¨$£²&é~"#'\''{([-|è`_\ç^à@)]°=}+ 0 1 0'
|
|
|
|
PPM_CONF_2='minQuality 3
|
|
checkRDN 0
|
|
forbiddenChars à
|
|
maxConsecutivePerClass 5
|
|
useCracklib 0
|
|
cracklibDict /var/cache/cracklib/cracklib_dict
|
|
class-upperCase ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 4 10
|
|
class-lowerCase abcdefghijklmnopqrstuvwxyz 3 4 12
|
|
class-digit 0123456789 2 4 10
|
|
class-special <>,?;.:/!§ù%*µ^¨$£²&é~"#'\''{([-|è`_\ç^à@)]°=}+ 0 4 10'
|
|
|
|
PPM_CONF_3='minQuality 3
|
|
checkRDN 1
|
|
forbiddenChars
|
|
maxConsecutivePerClass 0
|
|
useCracklib 0
|
|
cracklibDict /var/cache/cracklib/cracklib_dict
|
|
class-upperCase ABCDEFGHIJKLMNOPQRSTUVWXYZ 0 1 0
|
|
class-lowerCase abcdefghijklmnopqrstuvwxyz 0 1 0
|
|
class-digit 0123456789 0 1 0
|
|
class-special <>,?;.:/!§ù%*µ^¨$£²&é~"#'\''{([-|è`_\ç^à@)]°=}+ 0 1 0'
|
|
|
|
|
|
echo "$PPM_CONF_1" > ppm1.conf
|
|
echo "$PPM_CONF_2" > ppm2.conf
|
|
echo "$PPM_CONF_3" > ppm3.conf
|
|
|
|
|
|
launch_test()
|
|
{
|
|
# launch tests
|
|
# FORMAT: launch_test [conf_file] [password] [expected_result]
|
|
# [expected_result] = [PASS|FAIL]
|
|
|
|
local CONF="$1"
|
|
local USER="$2"
|
|
local PASS="$3"
|
|
local EXPECT="$4"
|
|
|
|
[[ $EXPECT == "PASS" ]] && EXP="0" || EXP="1"
|
|
|
|
LD_LIBRARY_PATH="${LIB_PATH}" ./ppm_test "${USER}" "${PASS}" "${CONF}"
|
|
RES="$?"
|
|
|
|
if [ "$RES" -eq "$EXP" ] ; then
|
|
echo -e "conf=${CONF} user=${USER} pass=${PASS} expect=${EXPECT}... ${GREEN}PASS${NC}"
|
|
else
|
|
echo -e "conf=${CONF} user=${USER} pass=${PASS} expect=${EXPECT}... ${RED}FAIL${NC}"
|
|
((RESULT+=1))
|
|
fi
|
|
|
|
echo
|
|
}
|
|
|
|
|
|
|
|
|
|
launch_test "ppm1.conf" "uid=test,ou=users,dc=my-domain,dc=com" "azerty" "FAIL"
|
|
launch_test "ppm1.conf" "uid=test,ou=users,dc=my-domain,dc=com" "azeRTY" "FAIL"
|
|
launch_test "ppm1.conf" "uid=test,ou=users,dc=my-domain,dc=com" "azeRTY123" "PASS"
|
|
launch_test "ppm1.conf" "uid=test,ou=users,dc=my-domain,dc=com" "azeRTY." "PASS"
|
|
|
|
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "AAaaa01AAaaa01AAaaa0" "PASS"
|
|
# forbidden char
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "AAaaa01AAaaa01AAaaaà" "FAIL"
|
|
# too much consecutive for upper
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "AAaaa01AAaaa01AAAAAA" "FAIL"
|
|
# not enough upper
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "Aaaaa01aaaaa01aa.;.;" "FAIL"
|
|
# not enough lower/
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "aaAAA01BB0123AAA.;.;" "FAIL"
|
|
# not enough digit
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "1AAAA.;BBB.;.;AA.;.;" "FAIL"
|
|
# not enough points (no point for digit)
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "AAaaaBBBBaaa01AAaaaa" "FAIL"
|
|
# too much upper
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "AAaa01AAaa01AA..AA..AAAA" "FAIL"
|
|
# too much lower
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "AAaaa01AAaaa01AAaaa0aaaa" "FAIL"
|
|
# too much digit
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "AA11aa11AA11aa11..11..11" "FAIL"
|
|
# too much special
|
|
launch_test "ppm2.conf" "uid=test,ou=users,dc=my-domain,dc=com" "AA..aa..11..AA..aa..11.." "FAIL"
|
|
|
|
# password in RDN
|
|
launch_test "ppm3.conf" "uid=User_Password10-test,ou=users,dc=my-domain,dc=com" "Password10" "FAIL"
|
|
launch_test "ppm3.conf" "uid=User_Passw0rd-test,ou=users,dc=my-domain,dc=com" "Password10" "PASS"
|
|
launch_test "ppm3.conf" "uid=User-Pw-Test,ou=users,dc=my-domain,dc=com" "Password10" "PASS"
|
|
|
|
|
|
echo "${RESULT} error(s) encountered"
|
|
|
|
rm ppm1.conf ppm2.conf ppm3.conf
|
|
exit ${RESULT}
|
|
|