]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Add support for SHA256/512 in Verify Jobs
authorEric Bollengier <eric@baculasystems.com>
Tue, 13 Oct 2020 08:50:33 +0000 (10:50 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:02:57 +0000 (09:02 +0100)
bacula/src/dird/inc_conf.c
bacula/src/dird/verify.c
bacula/src/filed/verify_vol.c

index cde6465daad3f3435fa2a36f41356d0ae15e8247..c7d97c5cf4db80e6675a0ac742e77198786451f3 100644 (file)
@@ -273,11 +273,11 @@ static void scan_include_options(LEX *lc, int keyword, char *opts, int optlen)
    /* Check if the options are correct */
    switch(keyword) {
    case INC_KW_VERIFY:
-      fs_options = "ipnugsamcd51:V"; /* From dird/verify.c */
+      fs_options = "ipnugsamcd5123:V"; /* From dird/verify.c */
       break;
    case INC_KW_BASEJOB:
    case INC_KW_ACCURATE:
-      fs_options = "ipnugsamMcdA51:JC"; /* From filed/accurate.c accurate_check_file() */
+      fs_options = "ipnugsamMcdA5123:JC"; /* From filed/accurate.c accurate_check_file() */
       break;
    default:
       break;
index 392ab7e0cc7694a4a43a90f631d1f0932347ac89..6100255ef24714fb40ecee9187ede16caad2379b 100644 (file)
@@ -798,6 +798,12 @@ void get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId)
             case '1':                 /* compare SHA1 */
                do_Digest = CRYPTO_DIGEST_SHA1;
                break;
+            case '2':                 /* compare SHA256 */
+               do_Digest = CRYPTO_DIGEST_SHA256;
+               break;
+            case '3':                 /* compare SHA512 */
+               do_Digest = CRYPTO_DIGEST_SHA512;
+               break;
             case ':':
             case 'V':
             default:
@@ -815,7 +821,7 @@ void get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId)
           * preceded by an attributes record, which sets attr_file_index
           */
          if (jcr->FileIndex != file_index) {
-            Jmsg2(jcr, M_FATAL, 0, _("MD5/SHA1 index %d not same as attributes %d\n"),
+            Jmsg2(jcr, M_FATAL, 0, _("MD5/SHA index %d not same as attributes %d\n"),
                file_index, jcr->FileIndex);
             free_pool_memory(fname);
             return;
index 754c3f4a7c5af024a1ccd5447ed2a39f8a71c169..91c2471a576458eedff7aa240116296478ad0e55 100644 (file)
@@ -144,6 +144,8 @@ void v_ctx::scan_fileset()
          findFOPTS *fo = (findFOPTS *)incexe->opts_list.get(j);
          check_size = (strchr(fo->VerifyOpts, 's') != NULL);
          if ((strchr(fo->VerifyOpts, '1') != NULL) ||
+             (strchr(fo->VerifyOpts, '2') != NULL) ||
+             (strchr(fo->VerifyOpts, '3') != NULL) ||
              (strchr(fo->VerifyOpts, '5') != NULL))
          {
             check_chksum = true;