git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v7 3/3] imap-send: eliminate HMAC deprecation warnings on Mac OS X

From
Junio C Hamano <gitster@pobox.com>
Date
May 18, 2013, 01:58 UTC
Message-ID
<7v4ne1vyjv.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1368837158-13915-4-git-send-email-sunshine@sunshineco.com>
Eric Sunshine <sunshine@sunshineco.com> writes:
Show 35 quoted lines
> 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; eliminated abuse of
> COMMON_DIGEST_FOR_OPENSSL by checking NO_APPLE_COMMON_CRYPTO instead]
>
> Signed-off-by: David Aguilar <davvid@gmail.com>
> Signed-off-by: Eric Sunshine <sunshine@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
Previous: Eric Sunshine
Message 5 of 5 in “Begin replacing OpenSSL with CommonCrypto”
  1. 0/3 Begin replacing OpenSSL with CommonCryptoEric Sunshine, May 18, 2013
  2. 1/3 Makefile: add support for Apple CommonCrypto facilityEric Sunshine, May 18, 2013
  3. 2/3 cache.h: eliminate SHA-1 deprecation warnings on Mac OS XEric Sunshine, May 18, 2013
  4. 3/3 imap-send: eliminate HMAC deprecation warnings on Mac OS XEric Sunshine, May 18, 2013
  5. Junio C HamanoMay 18, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.