]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
This is a part of r2388. I forgot.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Wed, 12 May 2010 08:59:09 +0000 (04:59 -0400)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Wed, 12 May 2010 08:59:09 +0000 (04:59 -0400)
Use directoly CALG_* macro to work CHECK_MD() with ARCHIVE_HASH_*_WIN.

SVN-Revision: 2389

libarchive/archive_hash.h
libarchive/archive_windows.c

index 5910c788942475f7220d3cd228caee919e726bd9..8dfcdb2d34c16b1808c512d240a8344916f91a46 100644 (file)
@@ -52,8 +52,8 @@
  * - MD5, SHA1 and SHA2 in libcrypto: with _ after algorithm name
  *
  * Windows:
- * - MD5, SHA1 and SHA2 in archive_windows.c: with _ after algorithm name
- *   and __la_ prefix.
+ * - MD5, SHA1 and SHA2 in archive_windows.c: without algorithm name
+ *   and with __la_ prefix.
  */
 #if defined(ARCHIVE_HASH_MD5_WIN)    ||\
       defined(ARCHIVE_HASH_SHA1_WIN)   || defined(ARCHIVE_HASH_SHA256_WIN) ||\
@@ -64,6 +64,9 @@ typedef struct {
        HCRYPTPROV      cryptProv;
        HCRYPTHASH      hash;
 } Digest_CTX;
+extern void __la_hash_Init(Digest_CTX *, ALG_ID);
+extern void __la_hash_Final(unsigned char *, size_t, Digest_CTX *);
+extern void __la_hash_Update(Digest_CTX *, const unsigned char *, size_t);
 #endif
 
 #if defined(ARCHIVE_HASH_MD5_LIBC)
@@ -84,12 +87,9 @@ typedef MD5_CTX archive_md5_ctx;
 #  define ARCHIVE_HAS_MD5
 #  define MD5_DIGEST_LENGTH    16
 typedef Digest_CTX archive_md5_ctx;
-extern void __la_MD5_Init(Digest_CTX *);
-extern void __la_MD5_Final(unsigned char *, Digest_CTX *);
-extern void __la_MD5_Update(Digest_CTX *, const unsigned char *, size_t);
-#  define archive_md5_init(ctx)                        __la_MD5_Init(ctx)
-#  define archive_md5_final(ctx, buf)          __la_MD5_Final(buf, ctx)
-#  define archive_md5_update(ctx, buf, n)      __la_MD5_Update(ctx, buf, n)
+#  define archive_md5_init(ctx)                        __la_hash_Init(ctx, CALG_MD5)
+#  define archive_md5_final(ctx, buf)          __la_hash_Final(buf, MD5_DIGEST_LENGTH, ctx)
+#  define archive_md5_update(ctx, buf, n)      __la_hash_Update(ctx, buf, n)
 #endif
 
 #if defined(ARCHIVE_HASH_RMD160_LIBC)
@@ -126,12 +126,9 @@ typedef SHA_CTX archive_sha1_ctx;
 #  define ARCHIVE_HAS_SHA1
 #  define SHA1_DIGEST_LENGTH   20
 typedef Digest_CTX archive_sha1_ctx;
-extern void __la_SHA1_Init(Digest_CTX *);
-extern void __la_SHA1_Final(unsigned char *, Digest_CTX *);
-extern void __la_SHA1_Update(Digest_CTX *, const unsigned char *, size_t);
-#  define archive_sha1_init(ctx)               __la_SHA1_Init(ctx)
-#  define archive_sha1_final(ctx, buf)         __la_SHA1_Final(buf, ctx)
-#  define archive_sha1_update(ctx, buf, n)     __la_SHA1_Update(ctx, buf, n)
+#  define archive_sha1_init(ctx)               __la_hash_Init(ctx, CALG_SHA1)
+#  define archive_sha1_final(ctx, buf)         __la_hash_Final(buf, SHA1_DIGEST_LENGTH, ctx)
+#  define archive_sha1_update(ctx, buf, n)     __la_hash_Update(ctx, buf, n)
 #endif
 
 #if defined(ARCHIVE_HASH_SHA256_LIBC)
@@ -166,12 +163,9 @@ typedef SHA256_CTX archive_sha256_ctx;
 #  define ARCHIVE_HAS_SHA256
 #  define SHA256_DIGEST_LENGTH 32
 typedef Digest_CTX archive_sha256_ctx;
-extern void __la_SHA256_Init(Digest_CTX *);
-extern void __la_SHA256_Final(unsigned char *, Digest_CTX *);
-extern void __la_SHA256_Update(Digest_CTX *, const unsigned char *, size_t);
-#  define archive_sha256_init(ctx)             __la_SHA256_Init(ctx)
-#  define archive_sha256_final(ctx, buf)       __la_SHA256_Final(buf, ctx)
-#  define archive_sha256_update(ctx, buf, n)   __la_SHA256_Update(ctx, buf, n)
+#  define archive_sha256_init(ctx)             __la_hash_Init(ctx, CALG_SHA_256)
+#  define archive_sha256_final(ctx, buf)       __la_hash_Final(buf, SHA256_DIGEST_LENGTH, ctx)
+#  define archive_sha256_update(ctx, buf, n)   __la_hash_Update(ctx, buf, n)
 #endif
 
 #if defined(ARCHIVE_HASH_SHA384_LIBC)
@@ -206,12 +200,9 @@ typedef SHA512_CTX archive_sha384_ctx;
 #  define ARCHIVE_HAS_SHA384
 #  define SHA384_DIGEST_LENGTH 48
 typedef Digest_CTX archive_sha384_ctx;
-extern void __la_SHA384_Init(Digest_CTX *);
-extern void __la_SHA384_Final(unsigned char *, Digest_CTX *);
-extern void __la_SHA384_Update(Digest_CTX *, const unsigned char *, size_t);
-#  define archive_sha384_init(ctx)             __la_SHA384_Init(ctx)
-#  define archive_sha384_final(ctx, buf)       __la_SHA384_Final(buf, ctx)
-#  define archive_sha384_update(ctx, buf, n)   __la_SHA384_Update(ctx, buf, n)
+#  define archive_sha384_init(ctx)             __la_hash_Init(ctx, CALG_SHA_384)
+#  define archive_sha384_final(ctx, buf)       __la_hash_Final(buf, SHA384_DIGEST_LENGTH, ctx)
+#  define archive_sha384_update(ctx, buf, n)   __la_hash_Update(ctx, buf, n)
 #endif
 
 #if defined(ARCHIVE_HASH_SHA512_LIBC)
@@ -246,10 +237,7 @@ typedef SHA512_CTX archive_sha512_ctx;
 #  define ARCHIVE_HAS_SHA512
 #  define SHA512_DIGEST_LENGTH 64
 typedef Digest_CTX archive_sha512_ctx;
-extern void __la_SHA512_Init(Digest_CTX *);
-extern void __la_SHA512_Final(unsigned char *, Digest_CTX *);
-extern void __la_SHA512_Update(Digest_CTX *, const unsigned char *, size_t);
-#  define archive_sha512_init(ctx)             __la_SHA512_Init(ctx)
-#  define archive_sha512_final(ctx, buf)       __la_SHA512_Final(buf, ctx)
-#  define archive_sha512_update(ctx, buf, n)   __la_SHA512_Update(ctx, buf, n)
+#  define archive_sha512_init(ctx)             __la_hash_Init(ctx, CALG_SHA_512)
+#  define archive_sha512_final(ctx, buf)       __la_hash_Final(buf, SHA512_DIGEST_LENGTH, ctx)
+#  define archive_sha512_update(ctx, buf, n)   __la_hash_Update(ctx, buf, n)
 #endif
index 84606579c46e80240f1aa289d880f6e0c58ce93f..7b7d1ba61781093ba2695bac6242590dc0c499d5 100644 (file)
@@ -1184,8 +1184,8 @@ la_dosmaperr(unsigned long e)
 /*
  * Message digest functions.
  */
-static void
-Digest_Init(Digest_CTX *ctx, ALG_ID algId)
+void
+__la_hash_Init(Digest_CTX *ctx, ALG_ID algId)
 {
 
        ctx->valid = 0;
@@ -1206,8 +1206,8 @@ Digest_Init(Digest_CTX *ctx, ALG_ID algId)
        ctx->valid = 1;
 }
 
-static void
-Digest_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len)
+void
+__la_hash_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len)
 {
 
        if (!ctx->valid)
@@ -1218,8 +1218,8 @@ Digest_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len)
                      (DWORD)len, 0);
 }
 
-static void
-Digest_Final(unsigned char *buf, int bufsize, Digest_CTX *ctx)
+void
+__la_hash_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx)
 {
        DWORD siglen = bufsize;
 
@@ -1232,57 +1232,6 @@ Digest_Final(unsigned char *buf, int bufsize, Digest_CTX *ctx)
        ctx->valid = 0;
 }
 
-#define DIGEST_INIT(name, algid) \
-void __la_ ## name ## _Init(Digest_CTX *ctx)\
-{\
-       Digest_Init(ctx, algid);\
-}
-
-#define DIGEST_UPDATE(name) \
-void __la_ ## name ## _Update(Digest_CTX *ctx, const unsigned char *buf, size_t len)\
-{\
-       Digest_Update(ctx, buf, len);\
-}
-
-#define DIGEST_FINAL(name, size) \
-void __la_ ## 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.
- */
-#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
-
-#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
-
-#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 /* defined(ARCHIVE_HASH_*_WIN) */
 
 /*