]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Properly use hash functions on Windows.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Thu, 3 Dec 2009 13:51:27 +0000 (08:51 -0500)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Thu, 3 Dec 2009 13:51:27 +0000 (08:51 -0500)
SVN-Revision: 1697

libarchive/archive_hash.h
libarchive/archive_windows.c
libarchive/archive_windows.h

index 2c427521124337d4f45bfb5fdc1c6418f747131e..83e16eea36ee7b5a659c94ad4201f6818ce8f307 100644 (file)
@@ -60,6 +60,12 @@ typedef MD5_CTX archive_md5_ctx;
 #  define archive_md5_init(ctx)                        MD5_Init(ctx)
 #  define archive_md5_final(ctx, buf)          MD5_Final(buf, ctx)
 #  define archive_md5_update(ctx, buf, n)      MD5_Update(ctx, buf, n)
+#elif defined(_WIN32) && !defined(__CYGWIN__) && defined(CALG_MD5)
+#  define ARCHIVE_HAS_MD5
+typedef MD5_CTX archive_md5_ctx;
+#  define archive_md5_init(ctx)                        MD5_Init(ctx)
+#  define archive_md5_final(ctx, buf)          MD5_Final(buf, ctx)
+#  define archive_md5_update(ctx, buf, n)      MD5_Update(ctx, buf, n)
 #endif
 
 #if defined(HAVE_RMD160_H) && defined(HAVE_RMD160INIT)
@@ -92,6 +98,12 @@ typedef SHA_CTX archive_sha1_ctx;
 #  define archive_sha1_init(ctx)               SHA1_Init(ctx)
 #  define archive_sha1_final(ctx, buf)         SHA1_Final(buf, ctx)
 #  define archive_sha1_update(ctx, buf, n)     SHA1_Update(ctx, buf, n)
+#elif defined(_WIN32) && !defined(__CYGWIN__) && defined(CALG_SHA1)
+#  define ARCHIVE_HAS_SHA1
+typedef SHA1_CTX archive_sha1_ctx;
+#  define archive_sha1_init(ctx)               SHA1_Init(ctx)
+#  define archive_sha1_final(ctx, buf)         SHA1_Final(buf, ctx)
+#  define archive_sha1_update(ctx, buf, n)     SHA1_Update(ctx, buf, n)
 #endif
 
 #if defined(HAVE_SHA2_H) && defined(HAVE_SHA256_INIT)
@@ -115,6 +127,12 @@ typedef SHA256_CTX archive_sha256_ctx;
 #  define archive_sha256_init(ctx)             SHA256_Init(ctx)
 #  define archive_sha256_final(ctx, buf)       SHA256_Final(buf, ctx)
 #  define archive_sha256_update(ctx, buf, n)   SHA256_Update(ctx, buf, n)
+#elif defined(_WIN32) && !defined(__CYGWIN__) && defined(CALG_SHA_256)
+#  define ARCHIVE_HAS_SHA256
+typedef SHA256_CTX archive_sha256_ctx;
+#  define archive_sha256_init(ctx)             SHA256_Init(ctx)
+#  define archive_sha256_final(ctx, buf)       SHA256_Final(buf, ctx)
+#  define archive_sha256_update(ctx, buf, n)   SHA256_Update(ctx, buf, n)
 #endif
 
 #if defined(HAVE_SHA2_H) && defined(HAVE_SHA384_INIT)
@@ -138,6 +156,12 @@ typedef SHA512_CTX archive_sha384_ctx;
 #  define archive_sha384_init(ctx)             SHA384_Init(ctx)
 #  define archive_sha384_final(ctx, buf)       SHA384_Final(buf, ctx)
 #  define archive_sha384_update(ctx, buf, n)   SHA384_Update(ctx, buf, n)
+#elif defined(_WIN32) && !defined(__CYGWIN__) && defined(CALG_SHA_384)
+#  define ARCHIVE_HAS_SHA384
+typedef SHA512_CTX archive_sha384_ctx;
+#  define archive_sha384_init(ctx)             SHA384_Init(ctx)
+#  define archive_sha384_final(ctx, buf)       SHA384_Final(buf, ctx)
+#  define archive_sha384_update(ctx, buf, n)   SHA384_Update(ctx, buf, n)
 #endif
 
 #if defined(HAVE_SHA2_H) && defined(HAVE_SHA512_INIT)
@@ -161,4 +185,10 @@ typedef SHA512_CTX archive_sha512_ctx;
 #  define archive_sha512_init(ctx)             SHA512_Init(ctx)
 #  define archive_sha512_final(ctx, buf)       SHA512_Final(buf, ctx)
 #  define archive_sha512_update(ctx, buf, n)   SHA512_Update(ctx, buf, n)
+#elif defined(_WIN32) && !defined(__CYGWIN__) && defined(CALG_SHA_512)
+#  define ARCHIVE_HAS_SHA512
+typedef SHA512_CTX archive_sha512_ctx;
+#  define archive_sha512_init(ctx)             SHA512_Init(ctx)
+#  define archive_sha512_final(ctx, buf)       SHA512_Final(buf, ctx)
+#  define archive_sha512_update(ctx, buf, n)   SHA512_Update(ctx, buf, n)
 #endif
index c24a3f23ef3a4fdcd953b3862d69fd181f79dfa1..7444002821d5885f13b5fab9d58e9cef156b76b7 100644 (file)
@@ -1217,7 +1217,7 @@ void name ## _Update(Digest_CTX *ctx, const unsigned char *buf, size_t len)\
 }
 
 #define DIGEST_FINAL(name, size) \
-void name ## _Final(unsigned char buf[size], Digest_CTX *ctx)\
+void name ## _Final(unsigned char *buf, Digest_CTX *ctx)\
 {\
        Digest_Final(buf, size, ctx);\
 }
index d8c59a06b3484cec9a9a8d526dfcdf4932d92e73..a401374c4f8efa7373a6466810224e41ec72f687 100644 (file)
@@ -389,36 +389,31 @@ extern ssize_t     __la_write(int fd, const void *buf, size_t nbytes);
 extern void     MD5_Init(Digest_CTX *ctx);
 extern void     MD5_Update(Digest_CTX *ctx, const unsigned char *buf,
                     size_t len);
-extern void     MD5_Final(unsigned char buf[MD5_DIGEST_LENGTH],
-                    Digest_CTX *ctx);
+extern void     MD5_Final(unsigned char *buf, Digest_CTX *ctx);
 #endif
 #ifdef SHA1_DIGEST_LENGTH
 extern void     SHA1_Init(Digest_CTX *ctx);
 extern void     SHA1_Update(Digest_CTX *ctx, const unsigned char *buf,
                     size_t len);
-extern void     SHA1_Final(unsigned char buf[SHA1_DIGEST_LENGTH],
-                    Digest_CTX *ctx);
+extern void     SHA1_Final(unsigned char *buf, Digest_CTX *ctx);
 #endif
 #ifdef SHA256_DIGEST_LENGTH
 extern void     SHA256_Init(Digest_CTX *ctx);
 extern void     SHA256_Update(Digest_CTX *ctx, const unsigned char *buf,
                     size_t len);
-extern void     SHA256_Final(unsigned char buf[SHA256_DIGEST_LENGTH],
-                    Digest_CTX *ctx);
+extern void     SHA256_Final(unsigned char *buf, Digest_CTX *ctx);
 #endif
 #ifdef SHA384_DIGEST_LENGTH
 extern void     SHA384_Init(Digest_CTX *ctx);
 extern void     SHA384_Update(Digest_CTX *ctx, const unsigned char *buf,
                     size_t len);
-extern void     SHA384_Final(unsigned char buf[SHA384_DIGEST_LENGTH],
-                    Digest_CTX *ctx);
+extern void     SHA384_Final(unsigned char *buf, Digest_CTX *ctx);
 #endif
 #ifdef SHA512_DIGEST_LENGTH
 extern void     SHA512_Init(Digest_CTX *ctx);
 extern void     SHA512_Update(Digest_CTX *ctx, const unsigned char *buf,
                     size_t len);
-extern void     SHA512_Final(unsigned char buf[SHA512_DIGEST_LENGTH],
-                    Digest_CTX *ctx);
+extern void     SHA512_Final(unsigned char *buf, Digest_CTX *ctx);
 #endif
 #endif