Add sha1 to daemon auth hashes & tweak conditionals.
authorWayne Davison <wayne@opencoder.net>
Sun, 14 Aug 2022 01:40:03 +0000 (18:40 -0700)
committerWayne Davison <wayne@opencoder.net>
Sun, 14 Aug 2022 01:40:10 +0000 (18:40 -0700)
sha1.diff

index 6982d6cf80e5264aff831c30b1c7aedd0346f5b2..78e289172396844d8c4334dddc25b8c12cc28645 100644 (file)
--- a/sha1.diff
+++ b/sha1.diff
@@ -1,4 +1,5 @@
 This patch adds sha1 to the checksum code when the openssl library is available.
+It also enables SHA1 checksum hashing in the daemon auth code.
 
 To use this patch, run these commands for a successful build:
 
@@ -16,21 +17,33 @@ diff --git a/checksum.c b/checksum.c
                { CSUM_XXH64, "xxh64", NULL },
                { CSUM_XXH64, "xxhash", NULL },
 +#endif
-+#ifdef USE_OPENSSL
++#ifdef SHA_DIGEST_LENGTH
 +              { CSUM_SHA1, "sha1", NULL },
  #endif
                { CSUM_MD5, "md5", NULL },
                { CSUM_MD4, "md4", NULL },
-@@ -143,6 +146,8 @@ int csum_len_for_type(int cst, BOOL flist_csum)
+@@ -61,6 +64,9 @@ struct name_num_obj valid_checksums = {
+ struct name_num_obj valid_auth_checksums = {
+       "daemon auth checksum", NULL, NULL, 0, 0, {
++#ifdef SHA_DIGEST_LENGTH
++              { CSUM_SHA1, "sha1", NULL },
++#endif
+               { CSUM_MD5, "md5", NULL },
+               { CSUM_MD4, "md4", NULL },
+               { 0, NULL, NULL }
+@@ -155,6 +161,10 @@ int csum_len_for_type(int cst, BOOL flist_csum)
                return MD4_DIGEST_LEN;
          case CSUM_MD5:
                return MD5_DIGEST_LEN;
++#ifdef SHA_DIGEST_LENGTH
 +        case CSUM_SHA1:
 +              return SHA_DIGEST_LENGTH;
++#endif
          case CSUM_XXH64:
          case CSUM_XXH3_64:
                return 64/8;
-@@ -168,6 +173,7 @@ int canonical_checksum(int csum_type)
+@@ -180,6 +190,7 @@ int canonical_checksum(int csum_type)
                break;
          case CSUM_MD4:
          case CSUM_MD5:
@@ -38,12 +51,12 @@ diff --git a/checksum.c b/checksum.c
                return -1;
          case CSUM_XXH64:
          case CSUM_XXH3_64:
-@@ -220,6 +226,18 @@ void get_checksum2(char *buf, int32 len, char *sum)
+@@ -232,6 +243,18 @@ void get_checksum2(char *buf, int32 len, char *sum)
                SIVAL64(sum, 8, digest.high64);
                break;
          }
 +#endif
-+#ifdef USE_OPENSSL
++#ifdef SHA_DIGEST_LENGTH
 +        case CSUM_SHA1: {
 +              SHA_CTX sha;
 +              uchar seedbuf[4];
@@ -57,12 +70,12 @@ diff --git a/checksum.c b/checksum.c
  #endif
          case CSUM_MD5: {
                md5_context m5;
-@@ -372,6 +390,23 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
+@@ -384,6 +407,23 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
                SIVAL64(sum, 8, digest.high64);
                break;
          }
 +#endif
-+#ifdef USE_OPENSSL
++#ifdef SHA_DIGEST_LENGTH
 +        case CSUM_SHA1: {
 +              SHA_CTX sha;
 +
@@ -81,44 +94,46 @@ diff --git a/checksum.c b/checksum.c
  #endif
          case CSUM_MD5: {
                md5_context m5;
-@@ -442,6 +477,7 @@ static union {
+@@ -454,6 +494,9 @@ static union {
        md_context md;
  #ifdef USE_OPENSSL
        MD4_CTX m4;
++#endif
++#ifdef SHA_DIGEST_LENGTH
 +      SHA_CTX sha;
  #endif
        md5_context m5;
  } ctx;
-@@ -480,6 +516,11 @@ void sum_init(int csum_type, int seed)
+@@ -494,6 +537,11 @@ int sum_init(int csum_type, int seed)
                        out_of_memory("sum_init");
                XXH3_128bits_reset(xxh3_state);
                break;
 +#endif
-+#ifdef USE_OPENSSL
++#ifdef SHA_DIGEST_LENGTH
 +        case CSUM_SHA1:
 +              SHA1_Init(&ctx.sha);
 +              break;
  #endif
          case CSUM_MD5:
                md5_begin(&ctx.m5);
-@@ -530,6 +571,11 @@ void sum_update(const char *p, int32 len)
+@@ -546,6 +594,11 @@ void sum_update(const char *p, int32 len)
          case CSUM_XXH3_128:
                XXH3_128bits_update(xxh3_state, p, len);
                break;
 +#endif
-+#ifdef USE_OPENSSL
++#ifdef SHA_DIGEST_LENGTH
 +        case CSUM_SHA1:
 +              SHA1_Update(&ctx.sha, (uchar *)p, len);
 +              break;
  #endif
          case CSUM_MD5:
                md5_update(&ctx.m5, (uchar *)p, len);
-@@ -595,6 +641,11 @@ int sum_end(char *sum)
+@@ -611,6 +664,11 @@ void sum_end(char *sum)
                SIVAL64(sum, 8, digest.high64);
                break;
          }
 +#endif
-+#ifdef USE_OPENSSL
++#ifdef SHA_DIGEST_LENGTH
 +        case CSUM_SHA1:
 +              SHA1_Final((uchar *)sum, &ctx.sha);
 +              break;
@@ -132,7 +147,7 @@ diff --git a/lib/md-defines.h b/lib/md-defines.h
  
  #define MD4_DIGEST_LEN 16
  #define MD5_DIGEST_LEN 16
-+#ifdef USE_OPENSSL
++#ifdef SHA_DIGEST_LENGTH
 +#define MAX_DIGEST_LEN SHA_DIGEST_LENGTH
 +#else
  #define MAX_DIGEST_LEN MD5_DIGEST_LEN