Samba provides its own set of SHA function, which would replace
libc-provided flavors. This is a problem because while the prototypes
are the same, the context structure are different. As a result,
when connecting to a LDAP/SSL directory, we go through
libldap/libssl/libcrypto and there libcrypto expects to call libc
SHA functions, not Samba's.
The fix is to check for SHA function presence and rename Samba's
version to avoid a clash.
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Simo <simo@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Jun 3 01:54:24 CEST 2015 on sn-devel-104
*/
#define HEIM_SHA_H 1
-#if 0
+#if SHA1_RENAME_NEEDED
/* symbol renaming */
#define SHA1_Init hc_SHA1_Init
#define SHA1_Update hc_SHA1_Update
#define SHA1_Final hc_SHA1_Final
+#endif
+#if SHA256_RENAME_NEEDED
+/* symbol renaming */
#define SHA256_Init hc_SHA256_Init
#define SHA256_Update hc_SHA256_Update
#define SHA256_Final hc_SHA256_Final
#ifndef HEIM_SHA_H
#define HEIM_SHA_H 1
-#if 0
+#if SHA512_RENAME_NEEDED
/* symbol renaming */
#define SHA512_Init hc_SHA512_Init
#define SHA512_Update hc_SHA512_Update
checklibc=True)
conf.CHECK_FUNCS_IN('CC_MD5_Init', '', headers='CommonCrypto/CommonDigest.h',
checklibc=True)
+
+if conf.CHECK_FUNCS('SHA1_Update'):
+ conf.DEFINE('SHA1_RENAME_NEEDED', 1)
+if conf.CHECK_FUNCS('SHA256_Update'):
+ conf.DEFINE('SHA256_RENAME_NEEDED', 1)
+if conf.CHECK_FUNCS('SHA512_Update'):
+ conf.DEFINE('SHA512_RENAME_NEEDED', 1)