Eric Sunshine <sunsh...@sunshineco.com> writes:

> From: David Aguilar <dav...@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; eliminated abuse of
> COMMON_DIGEST_FOR_OPENSSL by checking NO_APPLE_COMMON_CRYPTO instead]
>
> Signed-off-by: David Aguilar <dav...@gmail.com>
> Signed-off-by: Eric Sunshine <sunsh...@sunshineco.com>
> ---
>  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 <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

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 <openssl/x509v3.h>
>  #endif
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to