[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#8634) OpenLDAP fails to build against OpenSSL 1.1



Full_Name: Hristo Venev
Version: Unreleased Release Candidate 2.4.45
OS: 
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (95.111.59.55)


Another user of the old DES API. Here's a patch (compiles, not tested):

diff --git a/libraries/liblutil/passwd.c b/libraries/liblutil/passwd.c
index 7aab344..c481326 100644
--- a/libraries/liblutil/passwd.c
+++ b/libraries/liblutil/passwd.c
@@ -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) 
 
@@ -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],