Diff for /servers/slapd/slappasswd.c between versions 1.5.2.7 and 1.7

version 1.5.2.7, 2010/04/13 20:23:21 version 1.7, 2006/05/11 01:09:40
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/servers/slapd/slappasswd.c,v 1.5.2.6 2009/01/22 00:01:03 kurt Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/slappasswd.c,v 1.6 2006/05/10 22:12:54 ando Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1998-2010 The OpenLDAP Foundation.   * Copyright 1998-2006 The OpenLDAP Foundation.
  * Portions Copyright 1998-2003 Kurt D. Zeilenga.   * Portions Copyright 1998-2003 Kurt D. Zeilenga.
  * All rights reserved.   * All rights reserved.
  *   *
Line 37 Line 37
 #include <lutil_sha1.h>  #include <lutil_sha1.h>
   
 #include "ldap_defaults.h"  #include "ldap_defaults.h"
 #include "slap.h"  
   
 static int      verbose = 0;  static int      verbose = 0;
   
Line 49  usage(const char *s) Line 48  usage(const char *s)
                 "  -c format\tcrypt(3) salt format\n"                  "  -c format\tcrypt(3) salt format\n"
                 "  -g\t\tgenerate random password\n"                  "  -g\t\tgenerate random password\n"
                 "  -h hash\tpassword scheme\n"                  "  -h hash\tpassword scheme\n"
                 "  -n\t\tomit trailing newline\n"  
                 "  -s secret\tnew password\n"                  "  -s secret\tnew password\n"
                 "  -u\t\tgenerate RFC2307 values (default)\n"                  "  -u\t\tgenerate RFC2307 values (default)\n"
                 "  -v\t\tincrease verbosity\n"                  "  -v\t\tincrease verbosity\n"
Line 75  slappasswd( int argc, char *argv[] ) Line 73  slappasswd( int argc, char *argv[] )
         const char *progname = "slappasswd";          const char *progname = "slappasswd";
   
         int             i;          int             i;
         char            *newline = "\n";  
         struct berval passwd = BER_BVNULL;          struct berval passwd = BER_BVNULL;
         struct berval hash;          struct berval hash;
   
         while( (i = getopt( argc, argv,          while( (i = getopt( argc, argv,
                 "c:d:gh:ns:T:vu" )) != EOF )                  "c:d:gh:s:T:vu" )) != EOF )
         {          {
                 switch (i) {                  switch (i) {
                 case 'c':       /* crypt salt format */                  case 'c':       /* crypt salt format */
Line 109  slappasswd( int argc, char *argv[] ) Line 106  slappasswd( int argc, char *argv[] )
                                 return EXIT_FAILURE;                                  return EXIT_FAILURE;
   
                         } else {                          } else {
                                 scheme = ch_strdup( optarg );                                  scheme = strdup( optarg );
                         }                          }
                         break;                          break;
   
                 case 'n':  
                         newline = "";  
                         break;  
   
                 case 's':       /* new password (secret) */                  case 's':       /* new password (secret) */
                         if ( pwfile != NULL ) {                          if ( pwfile != NULL ) {
                                 fprintf( stderr, "Option -s incompatible with -T\n" );                                  fprintf( stderr, "Option -s incompatible with -T\n" );
Line 128  slappasswd( int argc, char *argv[] ) Line 121  slappasswd( int argc, char *argv[] )
   
                         } else {                          } else {
                                 char* p;                                  char* p;
                                 newpw = ch_strdup( optarg );                                  newpw = strdup( optarg );
   
                                 for( p = optarg; *p != '\0'; p++ ) {                                  for( p = optarg; *p != '\0'; p++ ) {
                                         *p = '\0';                                          *p = '\0';
Line 173  slappasswd( int argc, char *argv[] ) Line 166  slappasswd( int argc, char *argv[] )
                 if( newpw == NULL ) {                  if( newpw == NULL ) {
                         /* prompt for new password */                          /* prompt for new password */
                         char *cknewpw;                          char *cknewpw;
                         newpw = ch_strdup(getpassphrase("New password: "));                          newpw = strdup(getpassphrase("New password: "));
                         cknewpw = getpassphrase("Re-enter new password: ");                          cknewpw = getpassphrase("Re-enter new password: ");
                   
                         if( strcmp( newpw, cknewpw )) {                          if( strcmp( newpw, cknewpw )) {
Line 185  slappasswd( int argc, char *argv[] ) Line 178  slappasswd( int argc, char *argv[] )
                 passwd.bv_val = newpw;                  passwd.bv_val = newpw;
                 passwd.bv_len = strlen(passwd.bv_val);                  passwd.bv_len = strlen(passwd.bv_val);
         } else {          } else {
                 hash = passwd;                  /* Omit trailing newline so it may be directed to a pwfile */
                 goto print_pw;                  printf( "%s", passwd.bv_val );
                   return EXIT_SUCCESS;
         }          }
   
         lutil_passwd_hash( &passwd, scheme, &hash, &text );          lutil_passwd_hash( &passwd, scheme, &hash, &text );
Line 203  slappasswd( int argc, char *argv[] ) Line 197  slappasswd( int argc, char *argv[] )
                 return EXIT_FAILURE;                  return EXIT_FAILURE;
         }          }
   
 print_pw:;          printf( "%s\n" , hash.bv_val );
         printf( "%s%s" , hash.bv_val, newline );  
         return EXIT_SUCCESS;          return EXIT_SUCCESS;
 }  }

Removed from v.1.5.2.7  
changed lines
  Added in v.1.7


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org