]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
On Mac OS X, HASH functions are available in libSystem, which is the system library...
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Fri, 21 May 2010 16:03:39 +0000 (12:03 -0400)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Fri, 21 May 2010 16:03:39 +0000 (12:03 -0400)
SVN-Revision: 2415

CMakeLists.txt
configure.ac
libarchive/archive_hash.h

index 9ee104407f43cc91b4117629b4f45a13e2534c87..66ece60e086eb9af39549af43a9fa652418e6811 100644 (file)
@@ -431,12 +431,12 @@ ENDMACRO(CHECK_HASH_WIN HASH_LIST)
 #
 # Check MD5/RMD160/SHA support
 #
-CHECK_MD(MD5 "LIBC;OPENSSL")
+CHECK_MD(MD5 "LIBC;LIBSYSTEM;OPENSSL")
 CHECK_MD(RMD160 "LIBC;OPENSSL")
-CHECK_MD(SHA1 "LIBC;OPENSSL")
-CHECK_MD(SHA256 "LIBC;LIBC2;LIBC3;OPENSSL")
-CHECK_MD(SHA384 "LIBC;LIBC2;LIBC3;OPENSSL")
-CHECK_MD(SHA512 "LIBC;LIBC2;LIBC3;OPENSSL")
+CHECK_MD(SHA1 "LIBC;LIBSYSTEM;OPENSSL")
+CHECK_MD(SHA256 "LIBC;LIBC2;LIBC3;LIBSYSTEM;OPENSSL")
+CHECK_MD(SHA384 "LIBC;LIBC2;LIBC3;LIBSYSTEM;OPENSSL")
+CHECK_MD(SHA512 "LIBC;LIBC2;LIBC3;LIBSYSTEM;OPENSSL")
 CHECK_HASH_WIN("MD5;SHA1;SHA256;SHA384;SHA512")
 
 #
index 8916101ebd9463c0434f729dda6f61bfea05a042..da09e37788c08fee09dee6640480e292ee2ccf26 100644 (file)
@@ -299,17 +299,22 @@ main(int argc, char **argv)
 ])
 
 MD_CHECK(MD5, LIBC, md5)
+MD_CHECK(MD5, LIBSYSTEM, md5)
 MD_CHECK(RMD160, LIBC, rmd160)
 MD_CHECK(SHA1, LIBC, sha1)
+MD_CHECK(SHA1, LIBSYSTEM, sha1)
 MD_CHECK(SHA256, LIBC, sha256)
 MD_CHECK(SHA256, LIBC2, sha256)
 MD_CHECK(SHA256, LIBC3, sha256)
+MD_CHECK(SHA256, LIBSYSTEM, sha256)
 MD_CHECK(SHA384, LIBC, sha384)
 MD_CHECK(SHA384, LIBC2, sha384)
 MD_CHECK(SHA384, LIBC3, sha384)
+MD_CHECK(SHA384, LIBSYSTEM, sha384)
 MD_CHECK(SHA512, LIBC, sha512)
 MD_CHECK(SHA512, LIBC2, sha512)
 MD_CHECK(SHA512, LIBC3, sha512)
+MD_CHECK(SHA512, LIBSYSTEM, sha512)
 
 if test "x$with_openssl" != "xno"; then
     MD_CHECK(MD5, OPENSSL, md5, -lcrypto)
index 8dfcdb2d34c16b1808c512d240a8344916f91a46..b180da6714fc6810a8ac58ae3e653e1065fbf32b 100644 (file)
@@ -48,6 +48,9 @@
  * - MD5 and SHA1 in libmd: without _ after algorithm name
  * - SHA256: with _ after algorithm name
  *
+ * Mac OS X (10.4 and later):
+ * - MD5, SHA1 and SHA2 in libSystem: with CC_ prefix and _ after algorithm name
+ *
  * OpenSSL:
  * - MD5, SHA1 and SHA2 in libcrypto: with _ after algorithm name
  *
@@ -76,6 +79,13 @@ typedef MD5_CTX archive_md5_ctx;
 #  define archive_md5_init(ctx)                        MD5Init(ctx)
 #  define archive_md5_final(ctx, buf)          MD5Final(buf, ctx)
 #  define archive_md5_update(ctx, buf, n)      MD5Update(ctx, buf, n)
+#elif defined(ARCHIVE_HASH_MD5_LIBSYSTEM)
+#  include <CommonCrypto/CommonDigest.h>
+#  define ARCHIVE_HAS_MD5
+typedef CC_MD5_CTX archive_md5_ctx;
+#  define archive_md5_init(ctx)                        CC_MD5_Init(ctx)
+#  define archive_md5_final(ctx, buf)          CC_MD5_Final(buf, ctx)
+#  define archive_md5_update(ctx, buf, n)      CC_MD5_Update(ctx, buf, n)
 #elif defined(ARCHIVE_HASH_MD5_OPENSSL)
 #  include <openssl/md5.h>
 #  define ARCHIVE_HAS_MD5
@@ -115,6 +125,13 @@ typedef SHA1_CTX archive_sha1_ctx;
 #  define archive_sha1_init(ctx)               SHA1Init(ctx)
 #  define archive_sha1_final(ctx, buf)         SHA1Final(buf, ctx)
 #  define archive_sha1_update(ctx, buf, n)     SHA1Update(ctx, buf, n)
+#elif defined(ARCHIVE_HASH_SHA1_LIBSYSTEM)
+#  include <CommonCrypto/CommonDigest.h>
+#  define ARCHIVE_HAS_SHA1
+typedef CC_SHA1_CTX archive_sha1_ctx;
+#  define archive_sha1_init(ctx)               CC_SHA1_Init(ctx)
+#  define archive_sha1_final(ctx, buf)         CC_SHA1_Final(buf, ctx)
+#  define archive_sha1_update(ctx, buf, n)     CC_SHA1_Update(ctx, buf, n)
 #elif defined(ARCHIVE_HASH_SHA1_OPENSSL)
 #  include <openssl/sha.h>
 #  define ARCHIVE_HAS_SHA1
@@ -152,6 +169,13 @@ typedef SHA2_CTX archive_sha256_ctx;
 #  define archive_sha256_init(ctx)             SHA256Init(ctx)
 #  define archive_sha256_final(ctx, buf)       SHA256Final(buf, ctx)
 #  define archive_sha256_update(ctx, buf, n)   SHA256Update(ctx, buf, n)
+#elif defined(ARCHIVE_HASH_SHA256_LIBSYSTEM)
+#  include <CommonCrypto/CommonDigest.h>
+#  define ARCHIVE_HAS_SHA256
+typedef CC_SHA256_CTX archive_shs256_ctx;
+#  define archive_shs256_init(ctx)             CC_SHA256_Init(ctx)
+#  define archive_shs256_final(ctx, buf)       CC_SHA256_Final(buf, ctx)
+#  define archive_shs256_update(ctx, buf, n)   CC_SHA256_Update(ctx, buf, n)
 #elif defined(ARCHIVE_HASH_SHA256_OPENSSL)
 #  include <openssl/sha.h>
 #  define ARCHIVE_HAS_SHA256
@@ -189,6 +213,13 @@ typedef SHA2_CTX archive_sha384_ctx;
 #  define archive_sha384_init(ctx)             SHA384Init(ctx)
 #  define archive_sha384_final(ctx, buf)       SHA384Final(buf, ctx)
 #  define archive_sha384_update(ctx, buf, n)   SHA384Update(ctx, buf, n)
+#elif defined(ARCHIVE_HASH_SHA384_LIBSYSTEM)
+#  include <CommonCrypto/CommonDigest.h>
+#  define ARCHIVE_HAS_SHA384
+typedef CC_SHA512_CTX archive_shs384_ctx;
+#  define archive_shs384_init(ctx)             CC_SHA384_Init(ctx)
+#  define archive_shs384_final(ctx, buf)       CC_SHA384_Final(buf, ctx)
+#  define archive_shs384_update(ctx, buf, n)   CC_SHA384_Update(ctx, buf, n)
 #elif defined(ARCHIVE_HASH_SHA384_OPENSSL)
 #  include <openssl/sha.h>
 #  define ARCHIVE_HAS_SHA384
@@ -226,6 +257,13 @@ typedef SHA2_CTX archive_sha512_ctx;
 #  define archive_sha512_init(ctx)             SHA512Init(ctx)
 #  define archive_sha512_final(ctx, buf)       SHA512Final(buf, ctx)
 #  define archive_sha512_update(ctx, buf, n)   SHA512Update(ctx, buf, n)
+#elif defined(ARCHIVE_HASH_SHA512_LIBSYSTEM)
+#  include <CommonCrypto/CommonDigest.h>
+#  define ARCHIVE_HAS_SHA512
+typedef CC_SHA512_CTX archive_shs512_ctx;
+#  define archive_shs512_init(ctx)             CC_SHA512_Init(ctx)
+#  define archive_shs512_final(ctx, buf)       CC_SHA512_Final(buf, ctx)
+#  define archive_shs512_update(ctx, buf, n)   CC_SHA512_Update(ctx, buf, n)
 #elif defined(ARCHIVE_HASH_SHA512_OPENSSL)
 #  include <openssl/sha.h>
 #  define ARCHIVE_HAS_SHA512