[PATCH v8 3/3] imap-send: eliminate HMAC deprecation warnings on Mac OS X
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- May 19, 2013, 10:23 UTC
- Message-ID
- <1368959016-23146-4-git-send-email-sunshine@sunshineco.com>
- In-Reply-To
- <1368959016-23146-1-git-send-email-sunshine@sunshineco.com>
From: David Aguilar <davvid@gmail.com>
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; check APPLE_COMMON_CRYPTO instead of abusing COMMON_DIGEST_FOR_OPENSSL]
Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> --- Junio Hamano writes:
> Doesn't this mean people on platforms that do not care what Apple > does have to define NO_APPLE_COMMON_CRYPTO?
It certainly does break other platforms. Thanks for catching.
> How about stopping this double-negation and do it more like this?
Double-negation begone.
imap-send.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/imap-send.c b/imap-send.c index d9bcfb4..8ea180f 100644 --- a/imap-send.c +++ b/imap-send.c @@ -29,8 +29,18 @@ #ifdef NO_OPENSSL typedef void *SSL; #else +#ifdef APPLE_COMMON_CRYPTO +#include <CommonCrypto/CommonHMAC.h> +#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 <openssl/evp.h> #include <openssl/hmac.h> +#endif #include <openssl/x509v3.h> #endif
-- 1.8.2.3