]> git.sur5r.net Git - openldap/commitdiff
Update for new password codes for MSVC5
authorKurt Zeilenga <kurt@openldap.org>
Wed, 8 Dec 1999 06:44:22 +0000 (06:44 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Wed, 8 Dec 1999 06:44:22 +0000 (06:44 +0000)
13 files changed:
build/main.dsw
clients/tools/ldappasswd.c
include/lutil_md5.h
include/lutil_sha1.h
libraries/libldap/open.c
libraries/libldap/url.c
libraries/liblutil/md5.c
libraries/liblutil/passwd.c
libraries/liblutil/passwd.dsp [new file with mode: 0644]
libraries/liblutil/ptest.c [new file with mode: 0644]
servers/slapd/back-ldbm/backldbm.dsp
servers/slapd/extended.c
servers/slapd/proto-slap.h

index 0dee32c0c042c3de80ef75328e5040cee1619c55..b2361ab34691b3958dcde678b16b124156c015d2 100644 (file)
@@ -471,6 +471,24 @@ Package=<4>
 
 ###############################################################################
 
+Project: "passwd"=..\libraries\liblutil\passwd.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name liblber
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name liblutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
 Project: "setup"=..\include\setup.dsp - Package Owner=<4>
 
 Package=<5>
index c8337121baf0117809c358cd5f60a7d1e5c76c09..d87730bf986411d6835e812ce0384c7928ecb73f 100644 (file)
@@ -51,13 +51,12 @@ main( int argc, char *argv[] )
        char    *ldaphost = NULL;
        char    *newpw = NULL;
        int             noupdates = 0;
-       int             i, j;
+       int             i;
        int             ldapport = 0;
        int             debug = 0;
        int             version = -1;
        int             want_bindpw = 0;
        LDAP           *ld;
-       struct berval cred;
        struct berval *bv = NULL;
        BerElement *ber;
 
index bb96ef65a58d4a5f3c9b595f20a9fe0ef0014d40..c94e12feed126d54366b2c75308440ff6e01b23f 100644 (file)
@@ -24,6 +24,8 @@ LDAP_BEGIN_DECL
    important.  ANSI guarantees that "unsigned long" will be big enough,
    and always using it seems to have few disadvantages.  */
 
+#define LUTIL_MD5_BYTES 16
+
 struct lutil_MD5Context {
        ber_uint_t buf[4];
        ber_uint_t bits[2];
index eaac88289d37e7ecf6c8f629bcf7e7c86dd822cb..573530da62d2ad53b004a75c9cd79db0c221277f 100644 (file)
@@ -24,6 +24,7 @@ LDAP_BEGIN_DECL
  * SHA-1 in C
  * By Steve Reid <steve@edmweb.com>
  */
+#define LUTIL_SHA1_BYTES 20
 
 /* This code assumes char are 8-bits and uint32 are 32-bits */
 typedef ac_uint4 uint32;
index 13dd87ce84f665d1c1d16062ed849d20515dc882..fb2a140d5dc6624620d1dc2ef7912ed33d062664 100644 (file)
@@ -72,38 +72,6 @@ ldap_open( LDAP_CONST char *host, int port )
 }
 
 
-/*
- * ldap_init - initialize the LDAP library.  A magic cookie to be used for
- * future communication is returned on success, NULL on failure.
- * "host" may be a space-separated list of hosts or IP addresses
- *
- * Example:
- *     LDAP    *ld;
- *     ld = ldap_open( host, port );
- */
-LDAP *
-ldap_init( LDAP_CONST char *defhost, int defport )
-{
-       LDAP *ld;
-       int rc;
-
-       rc = ldap_create(&ld);
-       if ( rc != LDAP_SUCCESS )
-               return NULL;
-
-       if (defport != 0)
-               ld->ld_options.ldo_defport = defport;
-
-       if (defhost != NULL) {
-               rc = ldap_set_option(ld, LDAP_OPT_HOST_NAME, defhost);
-               if ( rc != LDAP_SUCCESS ) {
-                       ldap_ld_free(ld, 1, NULL, NULL);
-                       return NULL;
-               }
-       }
-
-       return( ld );
-}
 
 int
 ldap_create( LDAP **ldp )
@@ -202,6 +170,40 @@ ldap_create( LDAP **ldp )
        return LDAP_SUCCESS;
 }
 
+/*
+ * ldap_init - initialize the LDAP library.  A magic cookie to be used for
+ * future communication is returned on success, NULL on failure.
+ * "host" may be a space-separated list of hosts or IP addresses
+ *
+ * Example:
+ *     LDAP    *ld;
+ *     ld = ldap_open( host, port );
+ */
+LDAP *
+ldap_init( LDAP_CONST char *defhost, int defport )
+{
+       LDAP *ld;
+       int rc;
+
+       rc = ldap_create(&ld);
+       if ( rc != LDAP_SUCCESS )
+               return NULL;
+
+       if (defport != 0)
+               ld->ld_options.ldo_defport = defport;
+
+       if (defhost != NULL) {
+               rc = ldap_set_option(ld, LDAP_OPT_HOST_NAME, defhost);
+               if ( rc != LDAP_SUCCESS ) {
+                       ldap_ld_free(ld, 1, NULL, NULL);
+                       return NULL;
+               }
+       }
+
+       return( ld );
+}
+
+
 int
 ldap_initialize( LDAP **ldp, LDAP_CONST char *url )
 {
index 981ed256170fa27e6d6d43a6c8d2973e9f39e965..551892f00923d58ccaea7b35093789eeb1700a3a 100644 (file)
@@ -580,7 +580,7 @@ char *
 ldap_url_list2hosts (LDAPURLDesc *ludlist)
 {
        LDAPURLDesc *ludp;
-       int size, len;
+       int size;
        char *s, *p, buf[32];   /* big enough to hold a long decimal # (overkill) */
 
        if (ludlist == NULL)
@@ -615,7 +615,7 @@ char *
 ldap_url_list2urls (LDAPURLDesc *ludlist)
 {
        LDAPURLDesc *ludp;
-       int size, len;
+       int size;
        char *s, *p, buf[32];   /* big enough to hold a long decimal # (overkill) */
 
        if (ludlist == NULL)
index e1d316a459e08193c63988c3ff3d419c5c9f967f..484590ad7d298670e97faf9ce76f2e1e3291217c 100644 (file)
@@ -297,7 +297,7 @@ int
 main (int  argc, char **argv )
 {
        struct lutil_MD5Context context;
-       unsigned char checksum[16];
+       unsigned char checksum[LUTIL_MD5_BYTES];
        int i;
        int j;
 
@@ -312,7 +312,7 @@ main (int  argc, char **argv )
                lutil_MD5Init (&context);
                lutil_MD5Update (&context, argv[j], strlen (argv[j]));
                lutil_MD5Final (checksum, &context);
-               for (i = 0; i < 16; i++)
+               for (i = 0; i < LUTIL_MD5_BYTES; i++)
                {
                        printf ("%02x", (unsigned int) checksum[i]);
                }
index 89ae997be99d84bfc4daedda137be8ee546a8027..e8e406b67b47f827b7bd9c387bdc08f942216de6 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "portable.h"
 
+#include <stdio.h>
 #include <ac/stdlib.h>
 
 #include <ac/string.h>
@@ -251,7 +252,7 @@ static char * pw_string64(
        const unsigned char *salt, size_t saltlen )
 {
        int rc;
-       char *string = NULL;
+       char *string;
        size_t b64len;
        size_t len = hashlen + saltlen;
        char *b64;
@@ -301,17 +302,19 @@ static int chk_ssha1(
        const char* cred )
 {
        lutil_SHA1_CTX SHA1context;
-       unsigned char SHA1digest[20];
+       unsigned char SHA1digest[LUTIL_SHA1_BYTES];
        int pw_len = strlen(passwd);
        int rc;
        unsigned char *orig_pass = NULL;
  
        /* base64 un-encode password */
-       orig_pass = (unsigned char *) malloc( (size_t) (
+       orig_pass = (unsigned char *) ber_memalloc( (size_t) (
                LUTIL_BASE64_DECODE_LEN(pw_len) + 1) );
 
+       if( orig_pass == NULL ) return -1;
+
        if ((rc = lutil_b64_pton(passwd, orig_pass, pw_len)) < 0) {
-               free(orig_pass);
+               ber_memfree(orig_pass);
                return 1;
        }
  
@@ -326,7 +329,7 @@ static int chk_ssha1(
  
        /* compare */
        rc = memcmp((char *)orig_pass, (char *)SHA1digest, sizeof(SHA1digest));
-       free(orig_pass);
+       ber_memfree(orig_pass);
        return rc;
 }
 
@@ -336,7 +339,7 @@ static int chk_sha1(
        const char* cred )
 {
        lutil_SHA1_CTX SHA1context;
-       unsigned char SHA1digest[20];
+       unsigned char SHA1digest[LUTIL_SHA1_BYTES];
        char base64digest[LUTIL_BASE64_ENCODE_LEN(sizeof(SHA1digest))+1]; 
 
        lutil_SHA1Init(&SHA1context);
@@ -359,17 +362,19 @@ static int chk_smd5(
        const char* cred )
 {
        lutil_MD5_CTX MD5context;
-       unsigned char MD5digest[16];
+       unsigned char MD5digest[LUTIL_MD5_BYTES];
        int pw_len = strlen(passwd);
        int rc;
        unsigned char *orig_pass = NULL;
 
        /* base64 un-encode password */
-       orig_pass = (unsigned char *) malloc( (size_t) (
+       orig_pass = (unsigned char *) ber_memalloc( (size_t) (
                LUTIL_BASE64_DECODE_LEN(pw_len) + 1) );
 
+       if( orig_pass == NULL ) return -1;
+
        if ((rc = lutil_b64_pton(passwd, orig_pass, pw_len)) < 0) {
-               free(orig_pass);
+               ber_memfree(orig_pass);
                return 1;
        }
 
@@ -384,7 +389,7 @@ static int chk_smd5(
 
        /* compare */
        rc = memcmp((char *)orig_pass, (char *)MD5digest, sizeof(MD5digest));
-       free(orig_pass);
+       ber_memfree(orig_pass);
        return rc;
 }
 
@@ -394,7 +399,7 @@ static int chk_md5(
        const char* cred )
 {
        lutil_MD5_CTX MD5context;
-       unsigned char MD5digest[16];
+       unsigned char MD5digest[LUTIL_MD5_BYTES];
        char base64digest[LUTIL_BASE64_ENCODE_LEN(sizeof(MD5digest))+1]; 
 
        lutil_MD5Init(&MD5context);
@@ -454,7 +459,7 @@ static char *gen_ssha1(
        const char *passwd )
 {
        lutil_SHA1_CTX  SHA1context;
-       unsigned char   SHA1digest[20];
+       unsigned char   SHA1digest[LUTIL_SHA1_BYTES];
        unsigned char   salt[4];
 
        if( lutil_entropy( salt, sizeof(salt)) < 0 ) {
@@ -505,10 +510,8 @@ static char *gen_smd5(
        lutil_MD5Init( &MD5context );
        lutil_MD5Update( &MD5context,
                (const unsigned char *) passwd, strlen(passwd) );
-
        lutil_MD5Update( &MD5context,
                (const unsigned char *) salt, sizeof(salt) );
-
        lutil_MD5Final( MD5digest, &MD5context );
 
        return pw_string64( scheme,
diff --git a/libraries/liblutil/passwd.dsp b/libraries/liblutil/passwd.dsp
new file mode 100644 (file)
index 0000000..e5aa45b
--- /dev/null
@@ -0,0 +1,201 @@
+# Microsoft Developer Studio Project File - Name="passwd" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=passwd - Win32 DLL Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "passwd.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "passwd.mak" CFG="passwd - Win32 DLL Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "passwd - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "passwd - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE "passwd - Win32 Single Debug" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "passwd - Win32 Single Release" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "passwd - Win32 DLL Debug" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "passwd - Win32 DLL Release" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "passwd - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\Release"
+# PROP Intermediate_Dir "..\..\Release\passwd"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 ws2_32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\Release"
+
+!ELSEIF  "$(CFG)" == "passwd - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "passwd___"
+# PROP BASE Intermediate_Dir "passwd___"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\Debug"
+# PROP Intermediate_Dir "..\..\Debug\passwd"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\Debug"
+
+!ELSEIF  "$(CFG)" == "passwd - Win32 Single Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "passwd___"
+# PROP BASE Intermediate_Dir "passwd___"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\SDebug"
+# PROP Intermediate_Dir "..\..\SDebug\passwd"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 olber32.lib ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\Debug"
+# ADD LINK32 ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\SDebug"
+
+!ELSEIF  "$(CFG)" == "passwd - Win32 Single Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "passwd__0"
+# PROP BASE Intermediate_Dir "passwd__0"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\SRelease"
+# PROP Intermediate_Dir "..\..\SRelease\passwd"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 olber32.lib ws2_32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\Release"
+# ADD LINK32 ws2_32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\SRelease"
+
+!ELSEIF  "$(CFG)" == "passwd - Win32 DLL Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "passwd___"
+# PROP BASE Intermediate_Dir "passwd___"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\DLLDebug"
+# PROP Intermediate_Dir "..\..\DLLDebug\passwd"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\Debug"
+# ADD LINK32 ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\Debug"
+
+!ELSEIF  "$(CFG)" == "passwd - Win32 DLL Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "passwd__0"
+# PROP BASE Intermediate_Dir "passwd__0"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "passwd__0"
+# PROP Intermediate_Dir "passwd__0"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 ws2_32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\Release"
+# ADD LINK32 ws2_32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\Release"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "passwd - Win32 Release"
+# Name "passwd - Win32 Debug"
+# Name "passwd - Win32 Single Debug"
+# Name "passwd - Win32 Single Release"
+# Name "passwd - Win32 DLL Debug"
+# Name "passwd - Win32 DLL Release"
+# Begin Source File
+
+SOURCE=.\ptest.c
+# End Source File
+# End Target
+# End Project
diff --git a/libraries/liblutil/ptest.c b/libraries/liblutil/ptest.c
new file mode 100644 (file)
index 0000000..d8d01fc
--- /dev/null
@@ -0,0 +1,54 @@
+/* $OpenLDAP$ */
+/*
+ * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+ */
+
+#include "portable.h"
+
+#include <stdio.h>
+
+#include <ac/stdlib.h>
+
+#include <ac/ctype.h>
+#include <ac/signal.h>
+#include <ac/socket.h>
+#include <ac/string.h>
+#include <ac/time.h>
+
+#include "lutil.h"
+
+char *hash[] = {
+       "{SMD5}", "{SSHA}",
+       "{MD5}", "{SHA}",
+       NULL
+};
+
+struct pwtable {
+       char *pw;
+       size_t pwlen;
+};
+
+static const struct pwtable pw[] = {
+       { "secret", sizeof("secret")-1 },
+       { "secret\0binary", sizeof("binary\0secret")-1 },
+       { NULL }
+};
+
+int
+main( int argc, char *argv[] )
+{
+       int i, j, rc;
+       char *passwd;
+
+       for( i= 0; hash[i]; i++ ) {
+               for( j = 0; pw[j].pw; j++ ) {
+                       passwd = lutil_passwd_generate( pw[j].pw, hash[i] );
+                       rc = lutil_passwd( passwd, pw[j].pw, NULL );
+
+                       printf("%s (%d): %s (%d)\n",
+                               pw[j].pw, pw[j].pwlen, passwd, rc );
+               }
+       }
+       return EXIT_SUCCESS;
+}
\ No newline at end of file
index fc62fba4b22a6c9621bd55a38a856b9fb41ff3ef..c7d136d3ab77bd33b95e94702776aa093351b69a 100644 (file)
@@ -180,6 +180,10 @@ SOURCE=.\entry.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\extended.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\external.h
 # End Source File
 # Begin Source File
@@ -224,6 +228,10 @@ SOURCE=.\nextid.c
 # End Source File
 # Begin Source File
 
+SOURCE=.\passwd.c
+# End Source File
+# Begin Source File
+
 SOURCE=".\proto-back-ldbm.h"
 # End Source File
 # Begin Source File
index 2abf5407f64378b2debcaee7e341ab56935bc6d8..dd48d4bee2a0d5b78bc04e06ea675d4956d334de 100644 (file)
@@ -160,7 +160,6 @@ load_extop(
        SLAP_EXTOP_MAIN_FN ext_main )
 {
        extop_list_t *ext;
-       int rc;
 
        if( ext_oid == NULL || *ext_oid == '\0' ) return -1; 
        if(!ext_main) return -1; 
index e2d2bd8c0c81f4d6ced6b9c92291ea5eea6ef33e..a07804d754b136dbab481edf77e1ca1096739c9e 100644 (file)
@@ -485,7 +485,7 @@ LIBSLAPD_F (int) slap_passwd_check(
        struct berval           *cred );
 LIBSLAPD_F (struct berval *) slap_passwd_generate(
        struct berval           *cred );
-
+LIBSLAPD_F (int) slap_passwd_init( void );
 /*
  * kerberos.c
  */