From: Junio C Hamano Date: Sat, 18 May 2013 01:58:44 GMT Subject: Re: [PATCH v7 3/3] imap-send: eliminate HMAC deprecation warnings on Mac OS X Message-ID: <7v4ne1vyjv.fsf@alter.siamese.dyndns.org> In-Reply-To: <1368837158-13915-4-git-send-email-sunshine@sunshineco.com> Eric Sunshine writes: > From: David Aguilar > > As of Mac OS X 10.7, Apple deprecated all OpenSSL functions due to > OpenSSL ABI instability. Silence the warnings by using Apple's > CommonCrypto HMAC replacement functions. > > [es: reworded commit message; eliminated abuse of > COMMON_DIGEST_FOR_OPENSSL by checking NO_APPLE_COMMON_CRYPTO instead] > > Signed-off-by: David Aguilar > Signed-off-by: Eric Sunshine > --- > imap-send.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/imap-send.c b/imap-send.c > index d9bcfb4..642448c 100644 > --- a/imap-send.c > +++ b/imap-send.c > @@ -29,8 +29,18 @@ > #ifdef NO_OPENSSL > typedef void *SSL; > #else > +#ifndef NO_APPLE_COMMON_CRYPTO > +#include > +#define HMAC_CTX CCHmacContext > +#define HMAC_Init(hmac, key, len, algo) CCHmacInit(hmac, algo, key, len) > +#define HMAC_Update CCHmacUpdate > +#define HMAC_Final(hmac, hash, ptr) CCHmacFinal(hmac, hash) > +#define HMAC_CTX_cleanup > +#define EVP_md5() kCCHmacAlgMD5 > +#else > #include > #include > +#endif Doesn't this mean people on platforms that do not care what Apple does have to define NO_APPLE_COMMON_CRYPTO? How about stopping this double-negation and do it more like this? * In Makefile (1/3), in uname_S == Darwin section, define COMPAT_CFLAGS += DAPPLE_COMMON_CRYPTO by default, unless the builder declines it with "make NO_APPLE_COMMON_CRYPTO=NoThanks" * Express this part as #ifdef APPLE_COMMON_CRYPTO ... do the common crypto thing ... #else ... everybody else ... #endif > #include > #endif