]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
md5: remove use of CommonCrypto-to-OpenSSL macros for the benefit of Leopard
authorNick Zitzmann <nickzman@gmail.com>
Tue, 6 Aug 2013 01:47:56 +0000 (19:47 -0600)
committerNick Zitzmann <nickzman@gmail.com>
Tue, 6 Aug 2013 01:47:56 +0000 (19:47 -0600)
For some reason, OS X 10.5's GCC suddenly stopped working correctly with
macros that change MD5_Init etc. in the code to CC_MD5_Init etc., so I
worked around this by removing use of the macros and inserting static
functions that just call CommonCrypto's implementations of the functions
instead.

lib/md5.c

index 1c201f321f127e6175f2283763685b9e9c18269b..d8344dbe43796936cff38f2fbad87167e68e1958 100644 (file)
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -96,13 +96,30 @@ static void MD5_Final(unsigned char digest[16], MD5_CTX * ctx)
               (__IPHONE_OS_VERSION_MAX_ALLOWED >= 20000))
 
 /* For Apple operating systems: CommonCrypto has the functions we need.
-   The library's headers are even backward-compatible with OpenSSL's
-   headers as long as we define COMMON_DIGEST_FOR_OPENSSL first.
-
    These functions are available on Tiger and later, as well as iOS 2.0
-   and later. If you're building for an older cat, well, sorry. */
-#  define COMMON_DIGEST_FOR_OPENSSL
+   and later. If you're building for an older cat, well, sorry.
+
+   Declaring the functions as static like this seems to be a bit more
+   reliable than defining COMMON_DIGEST_FOR_OPENSSL on older cats. */
 #  include <CommonCrypto/CommonDigest.h>
+#  define MD5_CTX CC_MD5_CTX
+
+static void MD5_Init(MD5_CTX *ctx)
+{
+  CC_MD5_Init(ctx);
+}
+
+static void MD5_Update(MD5_CTX *ctx,
+                       const unsigned char *input,
+                       unsigned int inputLen)
+{
+  CC_MD5_Update(ctx, input, inputLen);
+}
+
+static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx)
+{
+  CC_MD5_Final(digest, ctx);
+}
 
 #elif defined(_WIN32)