]> git.sur5r.net Git - openldap/blobdiff - libraries/liblutil/passwd.c
ITS#6300 - Remove kqueue from project list
[openldap] / libraries / liblutil / passwd.c
index d6662ac164fb630d810f6277dc2ee82e06c12bed..0f18c54e27d3b37e3047af99080801bbc5f74032 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2013 The OpenLDAP Foundation.
+ * Copyright 1998-2017 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -38,9 +38,9 @@
 #      include <openssl/des.h>
 
 
-typedef des_cblock des_key;
-typedef des_cblock des_data_block;
-typedef des_key_schedule des_context;
+typedef DES_cblock des_key;
+typedef DES_cblock des_data_block;
+typedef DES_key_schedule des_context[1];
 #define des_failed(encrypted) 0
 #define des_finish(key, schedule) 
 
@@ -493,19 +493,19 @@ static int chk_ssha1(
        unsigned char SHA1digest[LUTIL_SHA1_BYTES];
        int rc;
        unsigned char *orig_pass = NULL;
+       size_t decode_len = LUTIL_BASE64_DECODE_LEN(passwd->bv_len);
 
        /* safety check -- must have some salt */
-       if (LUTIL_BASE64_DECODE_LEN(passwd->bv_len) <= sizeof(SHA1digest)) {
+       if (decode_len <= sizeof(SHA1digest)) {
                return LUTIL_PASSWD_ERR;
        }
 
        /* decode base64 password */
-       orig_pass = (unsigned char *) ber_memalloc( (size_t) (
-               LUTIL_BASE64_DECODE_LEN(passwd->bv_len) + 1) );
+       orig_pass = (unsigned char *) ber_memalloc(decode_len + 1);
 
        if( orig_pass == NULL ) return LUTIL_PASSWD_ERR;
 
-       rc = lutil_b64_pton(passwd->bv_val, orig_pass, passwd->bv_len);
+       rc = lutil_b64_pton(passwd->bv_val, orig_pass, decode_len);
 
        /* safety check -- must have some salt */
        if (rc <= (int)(sizeof(SHA1digest))) {
@@ -538,19 +538,19 @@ static int chk_sha1(
        unsigned char SHA1digest[LUTIL_SHA1_BYTES];
        int rc;
        unsigned char *orig_pass = NULL;
+       size_t decode_len = LUTIL_BASE64_DECODE_LEN(passwd->bv_len);
  
        /* safety check */
-       if (LUTIL_BASE64_DECODE_LEN(passwd->bv_len) < sizeof(SHA1digest)) {
+       if (decode_len < sizeof(SHA1digest)) {
                return LUTIL_PASSWD_ERR;
        }
 
        /* base64 un-encode password */
-       orig_pass = (unsigned char *) ber_memalloc( (size_t) (
-               LUTIL_BASE64_DECODE_LEN(passwd->bv_len) + 1) );
+       orig_pass = (unsigned char *) ber_memalloc(decode_len + 1);
 
        if( orig_pass == NULL ) return LUTIL_PASSWD_ERR;
 
-       rc = lutil_b64_pton(passwd->bv_val, orig_pass, passwd->bv_len);
+       rc = lutil_b64_pton(passwd->bv_val, orig_pass, decode_len);
 
        if( rc != sizeof(SHA1digest) ) {
                ber_memfree(orig_pass);
@@ -580,19 +580,19 @@ static int chk_smd5(
        unsigned char MD5digest[LUTIL_MD5_BYTES];
        int rc;
        unsigned char *orig_pass = NULL;
+       size_t decode_len = LUTIL_BASE64_DECODE_LEN(passwd->bv_len);
 
        /* safety check */
-       if (LUTIL_BASE64_DECODE_LEN(passwd->bv_len) <= sizeof(MD5digest)) {
+       if (decode_len <= sizeof(MD5digest)) {
                return LUTIL_PASSWD_ERR;
        }
 
        /* base64 un-encode password */
-       orig_pass = (unsigned char *) ber_memalloc( (size_t) (
-               LUTIL_BASE64_DECODE_LEN(passwd->bv_len) + 1) );
+       orig_pass = (unsigned char *) ber_memalloc(decode_len + 1);
 
        if( orig_pass == NULL ) return LUTIL_PASSWD_ERR;
 
-       rc = lutil_b64_pton(passwd->bv_val, orig_pass, passwd->bv_len);
+       rc = lutil_b64_pton(passwd->bv_val, orig_pass, decode_len);
 
        if (rc <= (int)(sizeof(MD5digest))) {
                ber_memfree(orig_pass);
@@ -625,19 +625,19 @@ static int chk_md5(
        unsigned char MD5digest[LUTIL_MD5_BYTES];
        int rc;
        unsigned char *orig_pass = NULL;
+       size_t decode_len = LUTIL_BASE64_DECODE_LEN(passwd->bv_len);
 
        /* safety check */
-       if (LUTIL_BASE64_DECODE_LEN(passwd->bv_len) < sizeof(MD5digest)) {
+       if (decode_len < sizeof(MD5digest)) {
                return LUTIL_PASSWD_ERR;
        }
 
        /* base64 un-encode password */
-       orig_pass = (unsigned char *) ber_memalloc( (size_t) (
-               LUTIL_BASE64_DECODE_LEN(passwd->bv_len) + 1) );
+       orig_pass = (unsigned char *) ber_memalloc(decode_len + 1);
 
        if( orig_pass == NULL ) return LUTIL_PASSWD_ERR;
 
-       rc = lutil_b64_pton(passwd->bv_val, orig_pass, passwd->bv_len);
+       rc = lutil_b64_pton(passwd->bv_val, orig_pass, decode_len);
        if ( rc != sizeof(MD5digest) ) {
                ber_memfree(orig_pass);
                return LUTIL_PASSWD_ERR;
@@ -667,7 +667,7 @@ static void
 des_set_key_and_parity( des_key *key, unsigned char *keyData)
 {
     memcpy(key, keyData, 8);
-    des_set_odd_parity( key );
+    DES_set_odd_parity( key );
 }
 
 
@@ -699,7 +699,7 @@ des_set_key_and_parity( des_key *key, unsigned char *keyData)
 }
 
 static void
-des_set_key_unchecked( des_key *key, des_context ctxt )
+DES_set_key_unchecked( des_key *key, des_context ctxt )
 {
     ctxt[0] = NULL;
 
@@ -712,7 +712,7 @@ des_set_key_unchecked( des_key *key, des_context ctxt )
 }
 
 static void
-des_ecb_encrypt( des_data_block *plain, des_data_block *encrypted, 
+DES_ecb_encrypt( des_data_block *plain, des_data_block *encrypted,
                        des_context ctxt, int op)
 {
     SECStatus rv;
@@ -864,16 +864,16 @@ static int chk_lanman(
        ldap_pvt_str2upper( UcasePassword );
        
        lmPasswd_to_key( UcasePassword, &key );
-       des_set_key_unchecked( &key, schedule );
-       des_ecb_encrypt( &StdText, &PasswordHash1, schedule , DES_ENCRYPT );
+       DES_set_key_unchecked( &key, schedule );
+       DES_ecb_encrypt( &StdText, &PasswordHash1, schedule , DES_ENCRYPT );
 
        if (des_failed(&PasswordHash1)) {
            return LUTIL_PASSWD_ERR;
        }
        
        lmPasswd_to_key( &UcasePassword[7], &key );
-       des_set_key_unchecked( &key, schedule );
-       des_ecb_encrypt( &StdText, &PasswordHash2, schedule , DES_ENCRYPT );
+       DES_set_key_unchecked( &key, schedule );
+       DES_ecb_encrypt( &StdText, &PasswordHash2, schedule , DES_ENCRYPT );
        if (des_failed(&PasswordHash2)) {
            return LUTIL_PASSWD_ERR;
        }
@@ -1160,12 +1160,12 @@ static int hash_lanman(
        ldap_pvt_str2upper( UcasePassword );
        
        lmPasswd_to_key( UcasePassword, &key );
-       des_set_key_unchecked( &key, schedule );
-       des_ecb_encrypt( &StdText, &PasswordHash1, schedule , DES_ENCRYPT );
+       DES_set_key_unchecked( &key, schedule );
+       DES_ecb_encrypt( &StdText, &PasswordHash1, schedule , DES_ENCRYPT );
        
        lmPasswd_to_key( &UcasePassword[7], &key );
-       des_set_key_unchecked( &key, schedule );
-       des_ecb_encrypt( &StdText, &PasswordHash2, schedule , DES_ENCRYPT );
+       DES_set_key_unchecked( &key, schedule );
+       DES_ecb_encrypt( &StdText, &PasswordHash2, schedule , DES_ENCRYPT );
        
        sprintf( PasswordHash, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", 
                PasswordHash1[0],PasswordHash1[1],PasswordHash1[2],PasswordHash1[3],