]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Tweak archive_windows.[ch] for ARCHIVE_HASH_*, new hash detection.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Mon, 10 May 2010 15:34:32 +0000 (11:34 -0400)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Mon, 10 May 2010 15:34:32 +0000 (11:34 -0400)
SVN-Revision: 2378

libarchive/archive_windows.c
libarchive/archive_windows.h

index fac98a4be5ff5f15834ab3d1f4a6b580e13f2075..23630d079c75ecf0222d958b974ff5636e15e8a4 100644 (file)
@@ -1177,7 +1177,9 @@ la_dosmaperr(unsigned long e)
        return;
 }
 
-#if !defined(HAVE_OPENSSL_MD5_H) && !defined(HAVE_OPENSSL_SHA_H)
+#if defined(ARCHIVE_HASH_MD5_WIN) ||\
+    defined(ARCHIVE_HASH_SHA1)    || defined(ARCHIVE_HASH_SHA256_WIN) ||\
+    defined(ARCHIVE_HASH_SHA384)  || defined(ARCHIVE_HASH_SHA512_WIN)
 /*
  * Message digest functions.
  */
@@ -1247,36 +1249,40 @@ void name ## _Final(unsigned char *buf, Digest_CTX *ctx)\
        Digest_Final(buf, size, ctx);\
 }
 
+#if defined(ARCHIVE_HASH_MD5_WIN)
 DIGEST_INIT(MD5, CALG_MD5)
 DIGEST_UPDATE(MD5)
 DIGEST_FINAL(MD5, MD5_DIGEST_LENGTH)
+#endif
 
+#if defined(ARCHIVE_HASH_SHA1_WIN)
 DIGEST_INIT(SHA1, CALG_SHA1)
 DIGEST_UPDATE(SHA1)
 DIGEST_FINAL(SHA1, SHA1_DIGEST_LENGTH)
+#endif
 
 /*
  * SHA256 nor SHA384 nor SHA512 are not supported on Windows XP and Windows 2000.
  */
-#ifdef CALG_SHA_256
+#if defined(ARCHIVE_HASH_SHA256_WIN) && defined(CALG_SHA_256)
 DIGEST_INIT(SHA256, CALG_SHA_256)
 DIGEST_UPDATE(SHA256)
 DIGEST_FINAL(SHA256, SHA256_DIGEST_LENGTH)
 #endif
 
-#ifdef CALG_SHA_384
+#if defined(ARCHIVE_HASH_SHA384_WIN) && defined(CALG_SHA_384)
 DIGEST_INIT(SHA384, CALG_SHA_384)
 DIGEST_UPDATE(SHA384)
 DIGEST_FINAL(SHA384, SHA384_DIGEST_LENGTH)
 #endif
 
-#ifdef CALG_SHA_512
+#if defined(ARCHIVE_HASH_SHA512_WIN) && defined(CALG_SHA_512)
 DIGEST_INIT(SHA512, CALG_SHA_512)
 DIGEST_UPDATE(SHA512)
 DIGEST_FINAL(SHA512, SHA384_DIGEST_LENGTH)
 #endif
 
-#endif /* !HAVE_OPENSSL_MD5_H && !HAVE_OPENSSL_SHA_H */
+#endif /* defined(ARCHIVE_HASH_*_WIN) */
 
 /*
  * Create a temporary file.
index 1c90ddcf0f812699775c94888fca0b88c3eba3f3..2d6c80733608795ec9e67eb4c681f4f2c36578c2 100644 (file)
@@ -300,7 +300,9 @@ struct _timeval64i32 {
 #endif
 
 /* Message digest define */
-#if !defined(HAVE_OPENSSL_MD5_H) && !defined(HAVE_OPENSSL_SHA_H)
+#if defined(ARCHIVE_HASH_MD5_WIN)    ||\
+    defined(ARCHIVE_HASH_SHA1_WIN)   || defined(ARCHIVE_HASH_SHA256_WIN) ||\
+    defined(ARCHIVE_HASH_SHA384_WIN) || defined(ARCHIVE_HASH_SHA512_WIN)
 # if defined(_MSC_VER) && _MSC_VER < 1300
 #  define _WIN32_WINNT 0x0400
 # endif
@@ -312,33 +314,26 @@ typedef struct {
 } Digest_CTX;
 #endif
 
-#if !defined(HAVE_OPENSSL_MD5_H) && defined(CALG_MD5)
+#if defined(ARCHIVE_HASH_MD5_WIN)
 #define MD5_DIGEST_LENGTH      16
-#define HAVE_MD5 1
 #define MD5_CTX Digest_CTX
 #endif
-#ifndef HAVE_OPENSSL_SHA_H
-#ifdef CALG_SHA1
+#if defined(ARCHIVE_HASH_SHA1_WIN)
 #define SHA1_DIGEST_LENGTH     20
-#define HAVE_SHA1 1
 #define SHA1_CTX Digest_CTX
 #endif
-#ifdef CALG_SHA_256
+#if defined(ARCHIVE_HASH_SHA256_WIN)
 #define SHA256_DIGEST_LENGTH   32
-#define HAVE_SHA256 1
 #define SHA256_CTX Digest_CTX
 #endif
-#ifdef CALG_SHA_384
+#if defined(ARCHIVE_HASH_SHA384_WIN)
 #define SHA384_DIGEST_LENGTH   48
-#define HAVE_SHA384 1
 #define SHA384_CTX Digest_CTX
 #endif
-#ifdef CALG_SHA_512
+#if defined(ARCHIVE_HASH_SHA512_WIN)
 #define SHA512_DIGEST_LENGTH   64
-#define HAVE_SHA512 1
 #define SHA512_CTX Digest_CTX
 #endif
-#endif /* HAVE_OPENSSL_SHA_H */
 
 /* End of Win32 definitions. */
 
@@ -384,37 +379,35 @@ extern ssize_t     __la_write(int fd, const void *buf, size_t nbytes);
 #define WEXITSTATUS(sts)       (sts & 0x0FF)
 
 /* Message digest function */
-#if !defined(HAVE_OPENSSL_MD5_H) && !defined(HAVE_OPENSSL_SHA_H)
-#ifdef MD5_DIGEST_LENGTH
+#if defined(ARCHIVE_HASH_MD5_WIN)
 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, Digest_CTX *ctx);
 #endif
-#ifdef SHA1_DIGEST_LENGTH
+#if defined(ARCHIVE_HASH_SHA1_WIN)
 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, Digest_CTX *ctx);
 #endif
-#ifdef SHA256_DIGEST_LENGTH
+#if defined(ARCHIVE_HASH_SHA256_WIN)
 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, Digest_CTX *ctx);
 #endif
-#ifdef SHA384_DIGEST_LENGTH
+#if defined(ARCHIVE_HASH_SHA384_WIN)
 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, Digest_CTX *ctx);
 #endif
-#ifdef SHA512_DIGEST_LENGTH
+#if defined(ARCHIVE_HASH_SHA512_WIN)
 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, Digest_CTX *ctx);
 #endif
-#endif
 
 #endif /* LIBARCHIVE_ARCHIVE_WINDOWS_H_INCLUDED */