From 8443e15eee28603bf427abc03ac1a8d86d23b12a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 6 Feb 2012 17:47:25 +0100 Subject: crypto: Use libbsd md5 header, if available. --- lib/crypto/md5.h | 6 ++++++ lib/crypto/wscript_build | 11 +++++++++-- lib/crypto/wscript_configure | 2 ++ wscript | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 lib/crypto/wscript_configure diff --git a/lib/crypto/md5.h b/lib/crypto/md5.h index e61c27a73e..bcdf50c000 100644 --- a/lib/crypto/md5.h +++ b/lib/crypto/md5.h @@ -1,10 +1,15 @@ #ifndef MD5_H #define MD5_H + #ifndef HEADER_MD5_H /* Try to avoid clashes with OpenSSL */ #define HEADER_MD5_H #endif +#ifdef HAVE_BSD_MD5_H +/* Try to avoid clashes with BSD MD5 implementation */ +#include +#else typedef struct MD5Context { uint32_t buf[4]; uint32_t bits[2]; @@ -17,5 +22,6 @@ void MD5Init(MD5_CTX *context); void MD5Update(MD5_CTX *context, const uint8_t *buf, size_t len); void MD5Final(uint8_t digest[MD5_DIGEST_LENGTH], MD5_CTX *context); +#endif /* HAVE_BSD_MD5_H */ #endif /* !MD5_H */ diff --git a/lib/crypto/wscript_build b/lib/crypto/wscript_build index 7bc4eb7dd0..6ad1cade98 100644 --- a/lib/crypto/wscript_build +++ b/lib/crypto/wscript_build @@ -1,8 +1,15 @@ #!/usr/bin/env python +extra_source = '' +extra_deps = '' +if bld.CONFIG_SET('HAVE_BSD_MD5_H'): + extra_deps += ' bsd' +else: + extra_source += ' md5.c' + bld.SAMBA_SUBSYSTEM('LIBCRYPTO', - source='crc32.c md5.c hmacmd5.c md4.c arcfour.c sha256.c hmacsha256.c aes.c rijndael-alg-fst.c', - deps='talloc' + source='crc32.c hmacmd5.c md4.c arcfour.c sha256.c hmacsha256.c aes.c rijndael-alg-fst.c' + extra_source, + deps='talloc' + extra_deps ) diff --git a/lib/crypto/wscript_configure b/lib/crypto/wscript_configure new file mode 100644 index 0000000000..77d21e9795 --- /dev/null +++ b/lib/crypto/wscript_configure @@ -0,0 +1,2 @@ +conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h', + checklibc=True) diff --git a/wscript b/wscript index 18daaac08c..9db278ca03 100755 --- a/wscript +++ b/wscript @@ -97,6 +97,7 @@ def configure(conf): conf.RECURSE('lib/popt') conf.RECURSE('lib/subunit/c') conf.RECURSE('libcli/smbreadline') + conf.RECURSE('lib/crypto') conf.RECURSE('pidl') conf.RECURSE('selftest') conf.RECURSE('source3') -- cgit