]> git.sur5r.net Git - openldap/commitdiff
Provide extra salt for crypt(3)
authorKurt Zeilenga <kurt@openldap.org>
Sat, 20 Jan 2001 01:15:28 +0000 (01:15 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sat, 20 Jan 2001 01:15:28 +0000 (01:15 +0000)
libraries/liblutil/passwd.c

index 3fcfc3c271df8a392a00fda761e8c5f5122b82e9..e7262115c71b72baf35a01d07b3f261079ea9663 100644 (file)
@@ -1176,7 +1176,7 @@ static struct berval *hash_crypt(
        const struct berval *passwd )
 {
        struct berval hash;
-       unsigned char salt[3];
+       unsigned char salt[9];  /* salt suitable for anything */
        int i;
 
        for( i=0; i<passwd->bv_len; i++) {
@@ -1189,13 +1189,14 @@ static struct berval *hash_crypt(
                return NULL;    /* passwd must behave like a string */
        }
 
-       if( lutil_entropy( salt, sizeof(salt)) < 0 ) {
+       if( lutil_entropy( salt, 8) < 0 ) {
                return NULL; 
        }
 
-       salt[0] = crypt64[ salt[0] % (sizeof(crypt64)-1) ];
-       salt[1] = crypt64[ salt[1] % (sizeof(crypt64)-1) ];
-       salt[2] = '\0';
+       for( i=0; i<8; i++ ) {
+               salt[i] = crypt64[ salt[i] % (sizeof(crypt64)-1) ];
+       }
+       salt[8] = '\0';
 
        hash.bv_val = crypt( passwd->bv_val, salt );