]> git.sur5r.net Git - openldap/commitdiff
Add password check and generation check.
authorKurt Zeilenga <kurt@openldap.org>
Sun, 12 Dec 1999 18:45:06 +0000 (18:45 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sun, 12 Dec 1999 18:45:06 +0000 (18:45 +0000)
Modify tests to use -h "ldap://localhost:port/" instead of -p port.

19 files changed:
doc/man/man8/slapd.8
servers/slapd/daemon.c
servers/slapd/main.c
servers/slapd/proto-slap.h
servers/slapd/slap.h
tests/data/passwd.ldif [new file with mode: 0644]
tests/data/slapd-bdb2-pw.conf [new file with mode: 0644]
tests/data/slapd-pw.conf [new file with mode: 0644]
tests/scripts/defines.sh
tests/scripts/test001-slapadd
tests/scripts/test002-populate
tests/scripts/test003-search
tests/scripts/test004-modify
tests/scripts/test005-modrdn
tests/scripts/test006-acls
tests/scripts/test007-replication
tests/scripts/test008-concurrency
tests/scripts/test009-referral
tests/scripts/test010-passwd [new file with mode: 0755]

index 77218f6f1c501cf5f75b04943c9ff9d991842f59..07e33f710ec6f7fc951d6776927211842cd29b49 100644 (file)
@@ -9,8 +9,6 @@ slapd \- Stand-alone LDAP Daemon
 .B [\-f slapd\-config\-file]
 .B [\-h URLs]
 .B [\-d debug\-level]
-.B [\-p port\-number]
-.B [\-P tls\-port\-number]
 .B [\-s syslog\-level] [\-l syslog\-local\-user]
 .B [\-u user] [\-g group]
 .B 
@@ -112,25 +110,6 @@ a DN or other optional parameters.  Hosts may be specified in either
 Internet '.' format (preferred) or by name.  Ports, if specfied,
 must be numeric.
 .TP
-.BI \-p " port\-number"
-.B slapd
-will use on the default port (389) for LDAP URLs unless this
-option is given to override the default.
-A numeric port number is expected.
-.TP
-.BI \-P " tls\-port\-number"
-.B slapd
-will use on the default port (636) for LDAPS (LDAP over TLS) URLs
-unless this option is given to override the default.  A numeric port
-number is expected.
-.TP
-.BI \-P " port\-number"
-Changes the port where 
-.B slapd
-will expect LDAP over raw TLS connections.  If this option is not given,
-the default port for this purpose (636) will be used.  A numeric port
-number is expected.
-.TP
 .BI \-u " user"
 .B slapd
 will run slapd with the specified user name or id, and that user's
index f49a339689388743fb77395af97eda80e7ec4fe0..bcae0d3fb6c5b91a145a7d68a1791428af0d5ffb 100644 (file)
@@ -177,17 +177,14 @@ static void slapd_close(ber_socket_t s) {
 }
 
 
-static Listener *
-open_listener(
-       const char* url,
-       int port,
-       int tls_port )
+static Listener * open_listener( const char* url )
 {
        int     tmp, rc;
        Listener l;
        Listener *li;
        LDAPURLDesc *lud;
        char *s;
+       int port;
 
        rc = ldap_url_parse( url, &lud );
 
@@ -208,14 +205,14 @@ open_listener(
        }
 
        if(! lud->lud_port ) {
-               lud->lud_port = port;
+               lud->lud_port = LDAP_PORT;
        }
 
 #else
        l.sl_is_tls = lud->lud_ldaps;
 
        if(! lud->lud_port ) {
-               lud->lud_port = lud->lud_ldaps ? tls_port : port;
+               lud->lud_port = lud->lud_ldaps ? LDAPS_PORT : LDAP_PORT;
        }
 #endif
 
@@ -333,7 +330,7 @@ open_listener(
 static int sockinit(void);
 static int sockdestroy(void);
 
-int slapd_daemon_init(char *urls, int port, int tls_port )
+int slapd_daemon_init( char *urls )
 {
        int i, rc;
        char **u;
@@ -342,8 +339,8 @@ int slapd_daemon_init(char *urls, int port, int tls_port )
        assert( tls_port == 0 );
 #endif
 
-       Debug( LDAP_DEBUG_ARGS, "daemon_init: %s (%d/%d)\n",
-               urls ? urls : "<null>", port, tls_port );
+       Debug( LDAP_DEBUG_ARGS, "daemon_init: %s\n",
+               urls ? urls : "<null>", 0, 0 );
 
        if( (rc = sockinit()) != 0 ) {
                return rc;
@@ -408,7 +405,7 @@ int slapd_daemon_init(char *urls, int port, int tls_port )
        slap_listeners = ch_malloc( (i+1)*sizeof(Listener *) );
 
        for(i = 0; u[i] != NULL; i++ ) {
-               slap_listeners[i] = open_listener( u[i], port, tls_port );
+               slap_listeners[i] = open_listener( u[i] );
 
                if( slap_listeners[i] == NULL ) {
                        charray_free( u );
index 6d271d743861279cb55b7d60aeccfc9c814af760..3176411796b5336c491291ba608aa7563b0afe16 100644 (file)
@@ -116,10 +116,6 @@ usage( char *name )
                "\t-n NTserviceName\tNT service name\n"
 #endif
 
-               "\t-p port\tLDAP Port\n"
-#ifdef HAVE_TLS
-               "\t-P port\tLDAP over TLS Port\n"
-#endif
                "\t-s level\tSyslog Level\n"
 #ifdef SLAPD_BDB2
                "\t-t\t\tEnable BDB2 timing\n"
@@ -158,13 +154,6 @@ int main( int argc, char **argv )
        char        *serverName;
        int         serverMode = SLAP_SERVER_MODE;
 
-       int port = LDAP_PORT;
-#ifdef HAVE_TLS
-       int tls_port = LDAPS_PORT;
-#else
-       int tls_port = 0;
-#endif
-
 #ifdef CSRIMALLOC
        FILE *leakfile;
        if( ( leakfile = fopen( "slapd.leak", "w" )) == NULL ) {
@@ -184,20 +173,6 @@ int main( int argc, char **argv )
                        CommenceStartupProcessing( NTservice, slap_sig_shutdown );
                }
 
-               i = (int*)getRegParam( NULL, "Port" );
-               if ( i != NULL )
-               {
-                       port = *i;
-                       Debug ( LDAP_DEBUG_ANY, "new port from registry is: %d\n", port, 0, 0 );
-               }
-#ifdef HAVE_TLS
-               i = (int*)getRegParam( NULL, "TLSPort" );
-               if ( i != NULL )
-               {
-                       tls_port = *i;
-                       Debug ( LDAP_DEBUG_ANY, "new TLS port from registry is: %d\n", tls_port, 0, 0 );
-               }
-#endif
                i = (int*)getRegParam( NULL, "DebugLevel" );
                if ( i != NULL ) 
                {
@@ -214,7 +189,7 @@ int main( int argc, char **argv )
 #endif
 
        while ( (i = getopt( argc, argv,
-                            "d:f:h:p:s:"
+                            "d:f:h:s:"
 #ifdef LOG_LOCAL4
                             "l:"
 #endif
@@ -229,9 +204,6 @@ int main( int argc, char **argv )
 #endif
 #ifdef HAVE_NT_EVENT_LOG
                                 "n:"
-#endif
-#ifdef HAVE_TLS
-                            "P:"
 #endif
                             )) != EOF ) {
                switch ( i ) {
@@ -255,30 +227,6 @@ int main( int argc, char **argv )
                        configfile = ch_strdup( optarg );
                        break;
 
-               case 'p': {     /* port on which to listen */
-                               int p = atoi( optarg );
-                               if(! p ) {
-                                       fprintf(stderr, "-p %s must be numeric\n", optarg);
-                               } else if( p < 0 || p >= 1<<16) {
-                                       fprintf(stderr, "-p %s invalid\n", optarg);
-                               } else {
-                                       port = p;
-                               }
-                       } break;
-
-#ifdef HAVE_TLS
-               case 'P': {     /* port on which to listen for TLS */
-                               int p = atoi( optarg );
-                               if(! p ) {
-                                       fprintf(stderr, "-P %s must be numeric\n", optarg);
-                               } else if( p < 0 || p >= 1<<16) {
-                                       fprintf(stderr, "-P %s invalid\n", optarg);
-                               } else {
-                                       tls_port = p;
-                               }
-                       } break;
-#endif
-
                case 's':       /* set syslog level */
                        ldap_syslog = atoi( optarg );
                        break;
@@ -347,7 +295,7 @@ int main( int argc, char **argv )
        openlog( serverName, OPENLOG_OPTIONS );
 #endif
 
-       if( slapd_daemon_init( urls, port, tls_port ) != 0 ) {
+       if( slapd_daemon_init( urls ) != 0 ) {
                rc = 1;
                SERVICE_EXIT( ERROR_SERVICE_SPECIFIC_ERROR, 16 );
                goto stop;
index 3b977a22c039fd7c7dfa40b725277da2c5ab0a9a..b786933a0e786678af7d14a61d28038c5be2e070 100644 (file)
@@ -596,7 +596,7 @@ LIBSLAPD_F (int)    slap_destroy LDAP_P((void));
 
 struct sockaddr_in;
 
-LIBSLAPD_F (int) slapd_daemon_init( char *urls, int port, int tls_port );
+LIBSLAPD_F (int) slapd_daemon_init( char *urls );
 LIBSLAPD_F (int) slapd_daemon_destroy(void);
 LIBSLAPD_F (int) slapd_daemon(void);
 
index 88a0b6418e9da42a03db273e57bc0b6792db582e..7d0fd55dfa349aea971adbe5e727c3d8e5684c50 100644 (file)
@@ -522,7 +522,7 @@ struct slap_backend_db {
        slap_access_t   be_dfltaccess;  /* access given if no acl matches          */
        char    **be_replica;   /* replicas of this backend (in master)    */
        char    *be_replogfile; /* replication log file (in master)        */
-       char    *be_update_ndn; /* allowed to make changes (in replicas)   */
+       char    *be_update_ndn; /* allowed to make changes (in replicas) */
        struct berval **be_update_refs; /* where to refer modifying clients to */
        int     be_lastmod;     /* keep track of lastmodified{by,time}     */
 
diff --git a/tests/data/passwd.ldif b/tests/data/passwd.ldif
new file mode 100644 (file)
index 0000000..a405003
--- /dev/null
@@ -0,0 +1,28 @@
+dn: o=University of Michigan, c=US
+objectclass: top
+objectclass: organization
+o: University of Michigan
+
+dn: cn=md5, o=University of Michigan, c=US
+objectclass: top
+objectclass: person
+cn: md5
+userpassword:: e01ENX1YcjRpbE96UTRQQ09xM2FRMHFidWFRPT0=
+
+dn: cn=smd5, o=University of Michigan, c=US
+objectclass: top
+objectclass: person
+cn: smd5
+userpassword: secret
+
+dn: cn=sha, o=University of Michigan, c=US
+objectclass: top
+objectclass: person
+cn: sha
+userpassword:: e1NIQX01ZW42RzZNZXpScm9UM1hLcWtkUE9tWS9CZlE9
+
+dn: cn=ssha, o=University of Michigan, c=US
+objectclass: top
+objectclass: person
+cn: ssha
+userpassword: secret
diff --git a/tests/data/slapd-bdb2-pw.conf b/tests/data/slapd-bdb2-pw.conf
new file mode 100644 (file)
index 0000000..bc8761f
--- /dev/null
@@ -0,0 +1,39 @@
+# $OpenLDAP$
+#
+# master slapd config -- for testing
+#
+include                ./data/slapd.at.conf
+include                ./data/slapd.oc.conf
+schemacheck    off
+pidfile     ./test-db/slapd.pid
+argsfile    ./test-db/slapd.args
+
+# password-hash        {md5}
+
+#######################################################################
+# ldbm database definitions
+#######################################################################
+
+database       ldbm
+cachesize      0
+suffix         "o=University of Michigan, c=US"
+directory      ./test-db
+rootdn         "cn=Manager, o=University of Michigan, c=US"
+rootpw         secret
+index          cn,sn,uid       pres,eq,approx
+index          default         none
+lastmod                on
+defaultaccess  none
+
+#
+# normal installations should protect root dse,
+# cn=monitor, cn=schema, and cn=config
+#
+
+access to attr=userpassword
+       by anonymous auth
+       by self write
+
+access to *
+       by self write
+       by * read
diff --git a/tests/data/slapd-pw.conf b/tests/data/slapd-pw.conf
new file mode 100644 (file)
index 0000000..bc8761f
--- /dev/null
@@ -0,0 +1,39 @@
+# $OpenLDAP$
+#
+# master slapd config -- for testing
+#
+include                ./data/slapd.at.conf
+include                ./data/slapd.oc.conf
+schemacheck    off
+pidfile     ./test-db/slapd.pid
+argsfile    ./test-db/slapd.args
+
+# password-hash        {md5}
+
+#######################################################################
+# ldbm database definitions
+#######################################################################
+
+database       ldbm
+cachesize      0
+suffix         "o=University of Michigan, c=US"
+directory      ./test-db
+rootdn         "cn=Manager, o=University of Michigan, c=US"
+rootpw         secret
+index          cn,sn,uid       pres,eq,approx
+index          default         none
+lastmod                on
+defaultaccess  none
+
+#
+# normal installations should protect root dse,
+# cn=monitor, cn=schema, and cn=config
+#
+
+access to attr=userpassword
+       by anonymous auth
+       by self write
+
+access to *
+       by self write
+       by * read
index b10db01358171948b3ea2a47a1929c9ba8969d84..864692e605d760bb9c9eddd1585edc531af6aaa2 100755 (executable)
@@ -6,6 +6,7 @@ PROGDIR=./progs
 
 if test "$BACKEND" = "bdb2" ; then
        CONF=$DATADIR/slapd-bdb2-master.conf
+       PWCONF=$DATADIR/slapd-bdb2-pw.conf
        ACLCONF=$DATADIR/slapd-bdb2-acl.conf
        MASTERCONF=$DATADIR/slapd-bdb2-repl-master.conf
        SLAVECONF=$DATADIR/slapd-bdb2-repl-slave.conf
@@ -13,6 +14,7 @@ if test "$BACKEND" = "bdb2" ; then
        TIMING="-t"
 else
        CONF=$DATADIR/slapd-master.conf
+       PWCONF=$DATADIR/slapd-pw.conf
        ACLCONF=$DATADIR/slapd-acl.conf
        MASTERCONF=$DATADIR/slapd-repl-master.conf
        SLAVECONF=$DATADIR/slapd-repl-slave.conf
@@ -32,6 +34,7 @@ LDIF2LDBM="../servers/slapd/tools/slapadd $LDAP_VERBOSE"
 
 SLAPD=../servers/slapd/slapd
 SLURPD=../servers/slurpd/slurpd
+LDAPPASSWD="$CLIENTDIR/ldappasswd"
 LDAPSEARCH="$CLIENTDIR/ldapsearch $PROTO -LLL"
 LDAPMODIFY="$CLIENTDIR/ldapmodify $PROTO"
 LDAPADD="$CLIENTDIR/ldapadd $PROTO"
@@ -41,10 +44,14 @@ LVL=${SLAPD_DEBUG-5}
 ADDR=127.0.0.1
 PORT=9009
 SLAVEPORT=9010
+MASTERURI="ldap://localhost:$PORT/"
+SLAVEURI="ldap://localhost:$SLAVEPORT/"
 DBDIR=./test-db
 REPLDIR=./test-repl
 LDIF=$DATADIR/test.ldif
 LDIFORDERED=$DATADIR/test-ordered.ldif
+LDIFPASSWD=$DATADIR/passwd.ldif
+LDIFPASSWDOUT=$DATADIR/passwd-out.ldif
 MONITOR="cn=monitor"
 BASEDN="o=University of Michigan, c=US"
 MANAGERDN="cn=Manager, o=University of Michigan, c=US"
index 36b3b116cbc0f9ee93abe280e99b80c2fd43b6ea..dc6d9fc2b0e4bb6452b91f9a84f625a747a42258 100755 (executable)
@@ -29,7 +29,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Using ldapsearch to retrieve all the entries..."
index dc358a980e651ef49dce047b40275d55d866a3d3..74f0579e2372295955354b615f85af19db4e2b75 100755 (executable)
@@ -18,7 +18,7 @@ echo "Cleaning up in $DBDIR..."
 rm -f $DBDIR/[!C]*
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Using ldapsearch to check that slapd is running..."
index 9fcf18b711181ddfa70e28f1347ec771a18d81a3..7a061dba83f398c249a3857c4f96d3e34d463508 100755 (executable)
@@ -26,7 +26,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Testing slapd searching..."
index beb69b038fb4b91324d4a24b76bc3207ba017c87..42cfdb2ea3563012b74bd0cb8333b7005ce5e9b2 100755 (executable)
@@ -26,7 +26,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Testing slapd modify operations..."
index d53673ed1ca0cfef16db2ec9472528d500f79804..f4dedf48fcd938ded0d7ddba2b05868b0c10a131 100755 (executable)
@@ -26,7 +26,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 echo "Testing slapd modrdn operations..."
 
index 4b2f5b5fc0a7cb8feda5a5dfd610b4a9bcbd8df1..d4d1b49003fb3a0087940422863839581117e5c5 100755 (executable)
@@ -26,7 +26,7 @@ if test $RC != 0 ; then
 fi
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $ACLCONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $ACLCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Testing slapd access control..."
index 3dd64a892de511af1f43119d2f69859964bed663..0a26dafbcb23a05e45d09cf07904c96faf42ab5a 100755 (executable)
@@ -35,11 +35,11 @@ echo "Cleaning up in $REPLDIR..."
 rm -f $REPLDIR/[!C]*
 
 echo "Starting master slapd on TCP/IP port $PORT..."
-$SLAPD -f $MASTERCONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $MASTERCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Starting slave slapd on TCP/IP port $SLAVEPORT..."
-$SLAPD -f $SLAVECONF -p $SLAVEPORT -d $LVL $TIMING > $SLAVELOG 2>&1 &
+$SLAPD -f $SLAVECONF -h $SLAVEURI -d $LVL $TIMING > $SLAVELOG 2>&1 &
 SLAVEPID=$!
 
 echo "Using ldapsearch to check that master slapd is running..."
index ce874511aaf1bce9a7e2636ac3affcddbe2265d5..e221bbed989862bad34caadfd326375981f2a5c4 100755 (executable)
@@ -32,7 +32,7 @@ echo "Waiting 5 seconds for slapadd to build slapd database..."
 sleep 5
 
 echo "Starting slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Using ldapsearch to check that slapd is running..."
index ccd848444e5682ad0117dee671e766b2c2748560..cf339e76154c5902681bd2b6f2418fd08172adc9 100755 (executable)
@@ -31,11 +31,11 @@ if test $RC != 0 ; then
 fi
 
 echo "Starting master slapd on TCP/IP port $PORT..."
-$SLAPD -f $CONF -p $PORT -d $LVL $TIMING > $MASTERLOG 2>&1 &
+$SLAPD -f $CONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
 PID=$!
 
 echo "Starting slave slapd on TCP/IP port $SLAVEPORT..."
-$SLAPD -f $REFSLAVECONF -p $SLAVEPORT -d $LVL $TIMING > $SLAVELOG 2>&1 &
+$SLAPD -f $REFSLAVECONF -h $SLAVEURI -d $LVL $TIMING > $SLAVELOG 2>&1 &
 SLAVEPID=$!
 
 echo "Testing for master slapd..."
diff --git a/tests/scripts/test010-passwd b/tests/scripts/test010-passwd
new file mode 100755 (executable)
index 0000000..3d71698
--- /dev/null
@@ -0,0 +1,131 @@
+#! /bin/sh
+# $OpenLDAP$
+
+if test $# -eq 0 ; then
+       SRCDIR="."
+else
+       SRCDIR=$1; shift
+fi
+if test $# -eq 1 ; then
+       BACKEND=$1; shift
+fi
+
+echo "running defines.sh $SRCDIR $BACKEND"
+. $SRCDIR/scripts/defines.sh
+
+echo "Cleaning up in $DBDIR..."
+
+rm -f $DBDIR/[!C]*
+
+echo "Starting slapd on TCP/IP port $PORT..."
+$SLAPD -f $PWCONF -h $MASTERURI -d $LVL $TIMING > $MASTERLOG 2>&1 &
+PID=$!
+
+echo "Using ldapsearch to check that slapd is running..."
+for i in 0 1 2 3 4 5; do
+       $LDAPSEARCH -s base -b "$MONITOR" -h localhost -p $PORT \
+               'objectclass=*' > /dev/null 2>&1
+       RC=$?
+       if test $RC = 1 ; then
+               echo "Waiting 5 seconds for slapd to start..."
+               sleep 5
+       fi
+done
+
+echo "Using ldapadd to populate the database..."
+$LDAPADD -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD < \
+       $LDIFPASSWD > $TESTOUT 2>&1
+RC=$?
+if test $RC != 0 ; then
+       echo "ldapadd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+
+echo > $SEARCHOUT
+echo > $TESTOUT
+
+echo "Using ldapsearch to verify population ..."
+echo "++ Initial search" >> $SEARCHOUT
+$LDAPSEARCH -h localhost -p $PORT \
+       -D "$MANAGERDN" -w $PASSWD \
+       -b "$BASEDN" \
+       'objectclass=*' >> $SEARCHOUT 2>&1
+
+echo "Using ldappasswd (PASS 1)  ..."
+echo "Pass 1" >> $TESTOUT
+$LDAPPASSWD -h localhost -p $PORT \
+       -w secret -s newsecret \
+       "cn=md5, $BASEDN" >> $TESTOUT 2>&1
+RC=$?
+if test $RC != 0 ; then
+       echo "ldappasswd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+$LDAPPASSWD -h localhost -p $PORT \
+       -w secret -s newsecret \
+       "cn=smd5, $BASEDN" >> $TESTOUT 2>&1
+if test $RC != 0 ; then
+       echo "ldappasswd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+$LDAPPASSWD -h localhost -p $PORT \
+       -w secret -s newsecret \
+       "cn=sha, $BASEDN" >> $TESTOUT 2>&1
+if test $RC != 0 ; then
+       echo "ldappasswd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+$LDAPPASSWD -h localhost -p $PORT \
+       -w secret -s newsecret \
+       "cn=ssha, $BASEDN" >> $TESTOUT 2>&1
+if test $RC != 0 ; then
+       echo "ldappasswd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+
+echo "" >> $TESTOUT
+echo "Pass 2" >> $TESTOUT
+echo "Using ldappasswd (PASS 2)  ..."
+$LDAPPASSWD -h localhost -p $PORT \
+       -w newsecret \
+       "cn=md5, $BASEDN" >> $TESTOUT 2>&1
+if test $RC != 0 ; then
+       echo "ldappasswd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+$LDAPPASSWD -h localhost -p $PORT \
+       -w newsecret \
+       "cn=smd5, $BASEDN" >> $TESTOUT 2>&1
+if test $RC != 0 ; then
+       echo "ldappasswd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+$LDAPPASSWD -h localhost -p $PORT \
+       -w newsecret \
+       "cn=sha, $BASEDN" >> $TESTOUT 2>&1
+if test $RC != 0 ; then
+       echo "ldappasswd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+$LDAPPASSWD -h localhost -p $PORT \
+       -w newsecret \
+       "cn=ssha, $BASEDN" >> $TESTOUT 2>&1
+if test $RC != 0 ; then
+       echo "ldappasswd failed!"
+       kill -HUP $PID
+       exit $RC
+fi
+
+kill -HUP $PID
+
+echo ">>>>> Test succeeded"
+
+exit 0