Update for new password codes for MSVC5

This commit is contained in:
Kurt Zeilenga 1999-12-08 06:44:22 +00:00
parent d5edb4bff6
commit 26c7d69e8c
13 changed files with 341 additions and 54 deletions

View 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> Project: "setup"=..\include\setup.dsp - Package Owner=<4>
Package=<5> Package=<5>

View file

@ -51,13 +51,12 @@ main( int argc, char *argv[] )
char *ldaphost = NULL; char *ldaphost = NULL;
char *newpw = NULL; char *newpw = NULL;
int noupdates = 0; int noupdates = 0;
int i, j; int i;
int ldapport = 0; int ldapport = 0;
int debug = 0; int debug = 0;
int version = -1; int version = -1;
int want_bindpw = 0; int want_bindpw = 0;
LDAP *ld; LDAP *ld;
struct berval cred;
struct berval *bv = NULL; struct berval *bv = NULL;
BerElement *ber; BerElement *ber;

View file

@ -24,6 +24,8 @@ LDAP_BEGIN_DECL
important. ANSI guarantees that "unsigned long" will be big enough, important. ANSI guarantees that "unsigned long" will be big enough,
and always using it seems to have few disadvantages. */ and always using it seems to have few disadvantages. */
#define LUTIL_MD5_BYTES 16
struct lutil_MD5Context { struct lutil_MD5Context {
ber_uint_t buf[4]; ber_uint_t buf[4];
ber_uint_t bits[2]; ber_uint_t bits[2];

View file

@ -24,6 +24,7 @@ LDAP_BEGIN_DECL
* SHA-1 in C * SHA-1 in C
* By Steve Reid <steve@edmweb.com> * By Steve Reid <steve@edmweb.com>
*/ */
#define LUTIL_SHA1_BYTES 20
/* This code assumes char are 8-bits and uint32 are 32-bits */ /* This code assumes char are 8-bits and uint32 are 32-bits */
typedef ac_uint4 uint32; typedef ac_uint4 uint32;

View 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 int
ldap_create( LDAP **ldp ) ldap_create( LDAP **ldp )
@ -202,6 +170,40 @@ ldap_create( LDAP **ldp )
return LDAP_SUCCESS; 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 int
ldap_initialize( LDAP **ldp, LDAP_CONST char *url ) ldap_initialize( LDAP **ldp, LDAP_CONST char *url )
{ {

View file

@ -580,7 +580,7 @@ char *
ldap_url_list2hosts (LDAPURLDesc *ludlist) ldap_url_list2hosts (LDAPURLDesc *ludlist)
{ {
LDAPURLDesc *ludp; LDAPURLDesc *ludp;
int size, len; int size;
char *s, *p, buf[32]; /* big enough to hold a long decimal # (overkill) */ char *s, *p, buf[32]; /* big enough to hold a long decimal # (overkill) */
if (ludlist == NULL) if (ludlist == NULL)
@ -615,7 +615,7 @@ char *
ldap_url_list2urls (LDAPURLDesc *ludlist) ldap_url_list2urls (LDAPURLDesc *ludlist)
{ {
LDAPURLDesc *ludp; LDAPURLDesc *ludp;
int size, len; int size;
char *s, *p, buf[32]; /* big enough to hold a long decimal # (overkill) */ char *s, *p, buf[32]; /* big enough to hold a long decimal # (overkill) */
if (ludlist == NULL) if (ludlist == NULL)

View file

@ -297,7 +297,7 @@ int
main (int argc, char **argv ) main (int argc, char **argv )
{ {
struct lutil_MD5Context context; struct lutil_MD5Context context;
unsigned char checksum[16]; unsigned char checksum[LUTIL_MD5_BYTES];
int i; int i;
int j; int j;
@ -312,7 +312,7 @@ main (int argc, char **argv )
lutil_MD5Init (&context); lutil_MD5Init (&context);
lutil_MD5Update (&context, argv[j], strlen (argv[j])); lutil_MD5Update (&context, argv[j], strlen (argv[j]));
lutil_MD5Final (checksum, &context); lutil_MD5Final (checksum, &context);
for (i = 0; i < 16; i++) for (i = 0; i < LUTIL_MD5_BYTES; i++)
{ {
printf ("%02x", (unsigned int) checksum[i]); printf ("%02x", (unsigned int) checksum[i]);
} }

View file

@ -15,6 +15,7 @@
#include "portable.h" #include "portable.h"
#include <stdio.h>
#include <ac/stdlib.h> #include <ac/stdlib.h>
#include <ac/string.h> #include <ac/string.h>
@ -251,7 +252,7 @@ static char * pw_string64(
const unsigned char *salt, size_t saltlen ) const unsigned char *salt, size_t saltlen )
{ {
int rc; int rc;
char *string = NULL; char *string;
size_t b64len; size_t b64len;
size_t len = hashlen + saltlen; size_t len = hashlen + saltlen;
char *b64; char *b64;
@ -301,17 +302,19 @@ static int chk_ssha1(
const char* cred ) const char* cred )
{ {
lutil_SHA1_CTX SHA1context; lutil_SHA1_CTX SHA1context;
unsigned char SHA1digest[20]; unsigned char SHA1digest[LUTIL_SHA1_BYTES];
int pw_len = strlen(passwd); int pw_len = strlen(passwd);
int rc; int rc;
unsigned char *orig_pass = NULL; unsigned char *orig_pass = NULL;
/* base64 un-encode password */ /* 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) ); LUTIL_BASE64_DECODE_LEN(pw_len) + 1) );
if( orig_pass == NULL ) return -1;
if ((rc = lutil_b64_pton(passwd, orig_pass, pw_len)) < 0) { if ((rc = lutil_b64_pton(passwd, orig_pass, pw_len)) < 0) {
free(orig_pass); ber_memfree(orig_pass);
return 1; return 1;
} }
@ -326,7 +329,7 @@ static int chk_ssha1(
/* compare */ /* compare */
rc = memcmp((char *)orig_pass, (char *)SHA1digest, sizeof(SHA1digest)); rc = memcmp((char *)orig_pass, (char *)SHA1digest, sizeof(SHA1digest));
free(orig_pass); ber_memfree(orig_pass);
return rc; return rc;
} }
@ -336,7 +339,7 @@ static int chk_sha1(
const char* cred ) const char* cred )
{ {
lutil_SHA1_CTX SHA1context; lutil_SHA1_CTX SHA1context;
unsigned char SHA1digest[20]; unsigned char SHA1digest[LUTIL_SHA1_BYTES];
char base64digest[LUTIL_BASE64_ENCODE_LEN(sizeof(SHA1digest))+1]; char base64digest[LUTIL_BASE64_ENCODE_LEN(sizeof(SHA1digest))+1];
lutil_SHA1Init(&SHA1context); lutil_SHA1Init(&SHA1context);
@ -359,17 +362,19 @@ static int chk_smd5(
const char* cred ) const char* cred )
{ {
lutil_MD5_CTX MD5context; lutil_MD5_CTX MD5context;
unsigned char MD5digest[16]; unsigned char MD5digest[LUTIL_MD5_BYTES];
int pw_len = strlen(passwd); int pw_len = strlen(passwd);
int rc; int rc;
unsigned char *orig_pass = NULL; unsigned char *orig_pass = NULL;
/* base64 un-encode password */ /* 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) ); LUTIL_BASE64_DECODE_LEN(pw_len) + 1) );
if( orig_pass == NULL ) return -1;
if ((rc = lutil_b64_pton(passwd, orig_pass, pw_len)) < 0) { if ((rc = lutil_b64_pton(passwd, orig_pass, pw_len)) < 0) {
free(orig_pass); ber_memfree(orig_pass);
return 1; return 1;
} }
@ -384,7 +389,7 @@ static int chk_smd5(
/* compare */ /* compare */
rc = memcmp((char *)orig_pass, (char *)MD5digest, sizeof(MD5digest)); rc = memcmp((char *)orig_pass, (char *)MD5digest, sizeof(MD5digest));
free(orig_pass); ber_memfree(orig_pass);
return rc; return rc;
} }
@ -394,7 +399,7 @@ static int chk_md5(
const char* cred ) const char* cred )
{ {
lutil_MD5_CTX MD5context; lutil_MD5_CTX MD5context;
unsigned char MD5digest[16]; unsigned char MD5digest[LUTIL_MD5_BYTES];
char base64digest[LUTIL_BASE64_ENCODE_LEN(sizeof(MD5digest))+1]; char base64digest[LUTIL_BASE64_ENCODE_LEN(sizeof(MD5digest))+1];
lutil_MD5Init(&MD5context); lutil_MD5Init(&MD5context);
@ -454,7 +459,7 @@ static char *gen_ssha1(
const char *passwd ) const char *passwd )
{ {
lutil_SHA1_CTX SHA1context; lutil_SHA1_CTX SHA1context;
unsigned char SHA1digest[20]; unsigned char SHA1digest[LUTIL_SHA1_BYTES];
unsigned char salt[4]; unsigned char salt[4];
if( lutil_entropy( salt, sizeof(salt)) < 0 ) { if( lutil_entropy( salt, sizeof(salt)) < 0 ) {
@ -505,10 +510,8 @@ static char *gen_smd5(
lutil_MD5Init( &MD5context ); lutil_MD5Init( &MD5context );
lutil_MD5Update( &MD5context, lutil_MD5Update( &MD5context,
(const unsigned char *) passwd, strlen(passwd) ); (const unsigned char *) passwd, strlen(passwd) );
lutil_MD5Update( &MD5context, lutil_MD5Update( &MD5context,
(const unsigned char *) salt, sizeof(salt) ); (const unsigned char *) salt, sizeof(salt) );
lutil_MD5Final( MD5digest, &MD5context ); lutil_MD5Final( MD5digest, &MD5context );
return pw_string64( scheme, return pw_string64( scheme,

View file

@ -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

View file

@ -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;
}

View file

@ -180,6 +180,10 @@ SOURCE=.\entry.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\extended.c
# End Source File
# Begin Source File
SOURCE=.\external.h SOURCE=.\external.h
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -224,6 +228,10 @@ SOURCE=.\nextid.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\passwd.c
# End Source File
# Begin Source File
SOURCE=".\proto-back-ldbm.h" SOURCE=".\proto-back-ldbm.h"
# End Source File # End Source File
# Begin Source File # Begin Source File

View file

@ -160,7 +160,6 @@ load_extop(
SLAP_EXTOP_MAIN_FN ext_main ) SLAP_EXTOP_MAIN_FN ext_main )
{ {
extop_list_t *ext; extop_list_t *ext;
int rc;
if( ext_oid == NULL || *ext_oid == '\0' ) return -1; if( ext_oid == NULL || *ext_oid == '\0' ) return -1;
if(!ext_main) return -1; if(!ext_main) return -1;

View file

@ -485,7 +485,7 @@ LIBSLAPD_F (int) slap_passwd_check(
struct berval *cred ); struct berval *cred );
LIBSLAPD_F (struct berval *) slap_passwd_generate( LIBSLAPD_F (struct berval *) slap_passwd_generate(
struct berval *cred ); struct berval *cred );
LIBSLAPD_F (int) slap_passwd_init( void );
/* /*
* kerberos.c * kerberos.c
*/ */