From d5b06f19d5043a261ff007f19dfe88ae0ddde00f Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston <jeremyhu@apple.com> Date: Mon, 8 Mar 2010 15:10:54 -0800 Subject: [PATCH] darwin: Use CommonCrypto to compute SHA1
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Kevin Van Vechten <kvv@apple.com> --- Makefile | 14 ++++++++++++++ cache.h | 7 +++++++ 2 files changed, 21 insertions(+), 0 deletions(-)
Show changes to 2 files +21 −0
Makefile, cache.h
diff --git a/Makefile b/Makefile index f64610a..bb4a1f0 100644 --- a/Makefile +++ b/Makefile @@ -91,6 +91,10 @@ all:: # Define PPC_SHA1 environment variable when running make to make use of # a bundled SHA1 routine optimized for PowerPC. # +# Define COMMONCRYPTO_SHA1 environment variable when running make to make +# use of the Darwin/Mac OS X Common Cryptography library for SHA1 +# computation (instead of libcrypto). +# # Define NEEDS_CRYPTO_WITH_SSL if you need -lcrypto when using -lssl (Darwin). # # Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin). @@ -775,6 +779,7 @@ ifeq ($(uname_S),SCO_SV) TAR = gtar endif ifeq ($(uname_S),Darwin) + COMMONCRYPTO_SHA1 = YesPlease NEEDS_CRYPTO_WITH_SSL = YesPlease NEEDS_SSL_WITH_CRYPTO = YesPlease NEEDS_LIBICONV = YesPlease @@ -1155,7 +1160,11 @@ ifndef NO_OPENSSL endif else BASIC_CFLAGS += -DNO_OPENSSL +ifndef COMMONCRYPTO_SHA1 +ifndef PPC_SHA1 BLK_SHA1 = 1 +endif +endif OPENSSL_LIBSSL = endif ifdef NEEDS_SSL_WITH_CRYPTO @@ -1313,10 +1322,15 @@ ifdef PPC_SHA1 LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o LIB_H += ppc/sha1.h else +ifdef COMMONCRYPTO_SHA1 + SHA1_HEADER = <CommonCrypto/CommonDigest.h> + BASIC_CFLAGS += -DUSE_COMMONCRYPTO_SHA1 +else SHA1_HEADER = <openssl/sha.h> EXTLIBS += $(LIB_4_CRYPTO) endif endif +endif ifdef NO_PERL_MAKEMAKER export NO_PERL_MAKEMAKER endif diff --git a/cache.h b/cache.h index 89f6a40..135b25e 100644 --- a/cache.h +++ b/cache.h @@ -8,11 +8,18 @@ #include SHA1_HEADER #ifndef git_SHA_CTX +#ifdef USE_COMMONCRYPTO_SHA1 +#define git_SHA_CTX CC_SHA1_CTX +#define git_SHA1_Init CC_SHA1_Init +#define git_SHA1_Update CC_SHA1_Update +#define git_SHA1_Final CC_SHA1_Final +#else #define git_SHA_CTX SHA_CTX #define git_SHA1_Init SHA1_Init #define git_SHA1_Update SHA1_Update #define git_SHA1_Final SHA1_Final #endif +#endif #include <zlib.h> #if defined(NO_DEFLATE_BOUND) || ZLIB_VERNUM < 0x1200
-- 1.6.3.1 From d5b06f19d5043a261ff007f19dfe88ae0ddde00f Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston <jeremyhu@apple.com> Date: Mon, 8 Mar 2010 15:10:54 -0800 Subject: [PATCH] darwin: Use CommonCrypto to compute SHA1 Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Kevin Van Vechten <kvv@apple.com> --- Makefile | 14 ++++++++++++++ cache.h | 7 +++++++ 2 files changed, 21 insertions(+), 0 deletions(-) diff --git a/Makefile b/Makefile index f64610a..bb4a1f0 100644 --- a/Makefile +++ b/Makefile @@ -91,6 +91,10 @@ all:: # Define PPC_SHA1 environment variable when running make to make use of # a bundled SHA1 routine optimized for PowerPC. # +# Define COMMONCRYPTO_SHA1 environment variable when running make to make +# use of the Darwin/Mac OS X Common Cryptography library for SHA1 +# computation (instead of libcrypto). +# # Define NEEDS_CRYPTO_WITH_SSL if you need -lcrypto when using -lssl (Darwin). # # Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin). @@ -775,6 +779,7 @@ ifeq ($(uname_S),SCO_SV) TAR = gtar endif ifeq ($(uname_S),Darwin) + COMMONCRYPTO_SHA1 = YesPlease NEEDS_CRYPTO_WITH_SSL = YesPlease NEEDS_SSL_WITH_CRYPTO = YesPlease NEEDS_LIBICONV = YesPlease @@ -1155,7 +1160,11 @@ ifndef NO_OPENSSL endif else BASIC_CFLAGS += -DNO_OPENSSL +ifndef COMMONCRYPTO_SHA1 +ifndef PPC_SHA1 BLK_SHA1 = 1 +endif +endif OPENSSL_LIBSSL = endif ifdef NEEDS_SSL_WITH_CRYPTO @@ -1313,10 +1322,15 @@ ifdef PPC_SHA1 LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o LIB_H += ppc/sha1.h else +ifdef COMMONCRYPTO_SHA1 + SHA1_HEADER = <CommonCrypto/CommonDigest.h> + BASIC_CFLAGS += -DUSE_COMMONCRYPTO_SHA1 +else SHA1_HEADER = <openssl/sha.h> EXTLIBS += $(LIB_4_CRYPTO) endif endif +endif ifdef NO_PERL_MAKEMAKER export NO_PERL_MAKEMAKER endif diff --git a/cache.h b/cache.h index 89f6a40..135b25e 100644 --- a/cache.h +++ b/cache.h @@ -8,11 +8,18 @@ #include SHA1_HEADER #ifndef git_SHA_CTX +#ifdef USE_COMMONCRYPTO_SHA1 +#define git_SHA_CTX CC_SHA1_CTX +#define git_SHA1_Init CC_SHA1_Init +#define git_SHA1_Update CC_SHA1_Update +#define git_SHA1_Final CC_SHA1_Final +#else #define git_SHA_CTX SHA_CTX #define git_SHA1_Init SHA1_Init #define git_SHA1_Update SHA1_Update #define git_SHA1_Final SHA1_Final #endif +#endif #include <zlib.h> #if defined(NO_DEFLATE_BOUND) || ZLIB_VERNUM < 0x1200 -- 1.6.3.1