Skip to content

Commit 908a43a

Browse files
committed
Formats: Colorize warnings and/or use _ONCE macros
1 parent f518972 commit 908a43a

22 files changed

+125
-181
lines changed

src/7z_common_plug.c

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,6 @@ struct fmt_tests sevenzip_tests[] = {
101101

102102
sevenzip_salt_t *sevenzip_salt;
103103

104-
#define YEL "\x1b[0;33m"
105-
#define NRM "\x1b[0m"
106-
107104
int sevenzip_trust_padding;
108105

109106
static char *comp_type[16] = { "stored", "LZMA1", "LZMA2", "PPMD", NULL, NULL, "BZIP2", "DEFLATE" };
@@ -140,23 +137,23 @@ int sevenzip_valid(char *ciphertext, struct fmt_main *self)
140137
&& type != 128) {
141138
if (john_main_process && !warned[type]) {
142139
warned[type] = 1;
143-
fprintf(stderr, YEL "Warning: Not loading files with unsupported compression type %s (0x%02x)\n" NRM,
140+
fprintf_color(color_warning, stderr, "Warning: Not loading files with unsupported compression type %s (0x%02x)\n",
144141
comp_type[c_type] ? comp_type[c_type] : "(unknown)", type);
145142
#if !HAVE_LIBBZ2
146143
if (type == 6)
147-
fprintf(stderr, YEL "Rebuild with libbz2 to get support for that type.\n" NRM);
144+
fprintf_color(color_warning, stderr, "Rebuild with libbz2 to get support for that type.\n");
148145
#endif
149146
#if !HAVE_LIBZ
150147
if (type == 7)
151-
fprintf(stderr, YEL "Rebuild with libz (zlib) to get support for that type.\n" NRM);
148+
fprintf_color(color_warning, stderr, "Rebuild with libz (zlib) to get support for that type.\n");
152149
#endif
153150
}
154151
goto err;
155152
}
156153
if (john_main_process && !ldr_in_pot && !self_test_running &&
157154
options.verbosity > VERB_DEFAULT && !warned[type]) {
158155
warned[type] = 1;
159-
fprintf(stderr, YEL "Saw file(s) with compression type %s%s%s (0x%02x)\n" NRM,
156+
fprintf_color(color_notice, stderr, "Saw file(s) with compression type %s%s%s (0x%02x)\n",
160157
precomp_type[p_type], p_type ? "+" : "", comp_type[c_type], type);
161158
}
162159
if ((p = strtokm(NULL, "$")) == NULL) /* NumCyclesPower */
@@ -174,11 +171,8 @@ int sevenzip_valid(char *ciphertext, struct fmt_main *self)
174171
goto err;
175172
len = atoi(p);
176173
if (len > 0 && strstr(self->params.label, "-opencl")) {
177-
static int warned;
178-
179-
if (!warned++)
180-
fprintf(stderr, YEL "%s: Warning: Not loading hashes with salt due to optimizations. Please report!\n" NRM,
181-
self->params.label);
174+
if (!ldr_in_pot && john_main_process)
175+
WARN_ONCE(color_warning, stderr, "%s: Warning: Not loading hashes with salt due to optimizations. Please report!\n", self->params.label);
182176
goto err;
183177
}
184178
if (len > 16)
@@ -355,7 +349,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
355349

356350
#if DEBUG
357351
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
358-
fprintf(stderr, "\nType %02x (%s%s%s) AES length %zu, packed len %zu, pad size %d, crc len %zu\n",
352+
fprintf_color(color_notice, stderr, "\nType %02x (%s%s%s) AES length %zu, packed len %zu, pad size %d, crc len %zu\n",
359353
sevenzip_salt->type, precomp_type[p_type] ? precomp_type[p_type] : "",
360354
p_type ? "+" : "",
361355
comp_type[c_type] ? comp_type[c_type] : "(unknown)",
@@ -379,12 +373,11 @@ int sevenzip_decrypt(unsigned char *derived_key)
379373
if (buf[i] != 0) {
380374
#if DEBUG
381375
if (!benchmark_running && options.verbosity >= VERB_DEBUG) {
382-
fprintf(stderr, YEL "Early padding check failed, ");
376+
fprintf_color(color_warning, stderr, "Early padding check failed, ");
383377
dump_stderr_msg("padding", buf + 16 - pad_size, pad_size);
384-
fprintf(stderr, NRM);
385378
}
386379
if (sevenzip_salt->type == 0x80)
387-
fprintf(stderr, YEL "We don't have data for complete decryption\n");
380+
WARN_ONCE(color_warning, stderr, "We don't have data for complete decryption\n");
388381
break;
389382
#else
390383
return 0;
@@ -395,13 +388,13 @@ int sevenzip_decrypt(unsigned char *derived_key)
395388
}
396389
#if DEBUG
397390
if (!nbytes && !benchmark_running && options.verbosity >= VERB_DEBUG)
398-
fprintf(stderr, "Early padding check passed\n");
391+
fprintf_color(color_notice, stderr, "Early padding check passed\n");
399392
else
400393
nbytes = 0;
401-
#else
394+
if (self_test_running)
395+
#endif
402396
if (sevenzip_salt->type == 0x80) /* We only have truncated data */
403397
return 1;
404-
#endif
405398
}
406399

407400
/* Complete decryption */
@@ -417,9 +410,8 @@ int sevenzip_decrypt(unsigned char *derived_key)
417410
if (out[i] != 0) {
418411
#if DEBUG
419412
if (!benchmark_running && options.verbosity >= VERB_DEBUG) {
420-
fprintf(stderr, YEL "Full data padding check failed, ");
413+
fprintf_color(color_warning, stderr, "Full data padding check failed, ");
421414
dump_stderr_msg("padding", out + sevenzip_salt->aes_length - pad_size, pad_size);
422-
fprintf(stderr, NRM);
423415
}
424416
break;
425417
#else
@@ -431,7 +423,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
431423
}
432424
#if DEBUG
433425
if (!nbytes && !benchmark_running && options.verbosity >= VERB_DEBUG)
434-
fprintf(stderr, "Padding check passed\n");
426+
fprintf_color(color_notice, stderr, "Padding check passed\n");
435427
#endif
436428
}
437429

@@ -456,7 +448,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
456448
out_size == crc_len) {
457449
#if DEBUG
458450
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
459-
fprintf(stderr, "LZMA decoding passed, %zu/%zu -> %zu/%zu, props %02x%02x%02x%02x\n",
451+
fprintf_color(color_notice, stderr, "LZMA decoding passed, %zu/%zu -> %zu/%zu, props %02x%02x%02x%02x\n",
460452
in_size, sevenzip_salt->packed_size, out_size, crc_len, sevenzip_salt->decoder_props[0],
461453
sevenzip_salt->decoder_props[1], sevenzip_salt->decoder_props[2], sevenzip_salt->decoder_props[3]);
462454
#endif
@@ -465,7 +457,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
465457
} else {
466458
#if DEBUG
467459
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
468-
fprintf(stderr, YEL "LZMA decoding failed, %zu/%zu -> %zu/%zu, props %02x%02x%02x%02x\n" NRM,
460+
fprintf_color(color_warning, stderr, "LZMA decoding failed, %zu/%zu -> %zu/%zu, props %02x%02x%02x%02x\n",
469461
in_size, sevenzip_salt->packed_size, out_size, crc_len, sevenzip_salt->decoder_props[0],
470462
sevenzip_salt->decoder_props[1], sevenzip_salt->decoder_props[2], sevenzip_salt->decoder_props[3]);
471463
#endif
@@ -488,15 +480,15 @@ int sevenzip_decrypt(unsigned char *derived_key)
488480
out_size == crc_len) {
489481
#if DEBUG
490482
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
491-
fprintf(stderr, "LZMA2 decoding passed, %zu/%zu -> %zu/%zu, props %02x\n",
483+
fprintf_color(color_notice, stderr, "LZMA2 decoding passed, %zu/%zu -> %zu/%zu, props %02x\n",
492484
in_size, sevenzip_salt->packed_size, out_size, crc_len, sevenzip_salt->decoder_props[0]);
493485
#endif
494486
MEM_FREE(out);
495487
out = new_out;
496488
} else {
497489
#if DEBUG
498490
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
499-
fprintf(stderr, YEL "LZMA2 decoding failed, %zu/%zu -> %zu/%zu, props %02x\n" NRM,
491+
fprintf_color(color_warning, stderr, "LZMA2 decoding failed, %zu/%zu -> %zu/%zu, props %02x\n",
500492
in_size, sevenzip_salt->packed_size, out_size, crc_len, sevenzip_salt->decoder_props[0]);
501493
#endif
502494
MEM_FREE(new_out);
@@ -526,7 +518,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
526518
if (ret == BZ_STREAM_END) {
527519
#if DEBUG
528520
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
529-
fprintf(stderr, "BZIP2 decoding passed, %zu/%zu -> %zu/%zu\n",
521+
fprintf_color(color_notice, stderr, "BZIP2 decoding passed, %zu/%zu -> %zu/%zu\n",
530522
sevenzip_salt->packed_size - inf_stream.avail_in, sevenzip_salt->packed_size,
531523
crc_len - inf_stream.avail_out, crc_len);
532524
#endif
@@ -535,7 +527,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
535527
} else {
536528
#if DEBUG
537529
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
538-
fprintf(stderr, YEL "BZIP2 decoding failed, %zu/%zu -> %zu/%zu\n" NRM,
530+
fprintf_color(color_warning, stderr, "BZIP2 decoding failed, %zu/%zu -> %zu/%zu\n",
539531
sevenzip_salt->packed_size - inf_stream.avail_in, sevenzip_salt->packed_size,
540532
crc_len - inf_stream.avail_out, crc_len);
541533
#endif
@@ -564,7 +556,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
564556
if (ret == Z_STREAM_END) {
565557
#if DEBUG
566558
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
567-
fprintf(stderr, "DEFLATE decoding passed, %zu/%zu -> %zu/%zu\n",
559+
fprintf_color(color_notice, stderr, "DEFLATE decoding passed, %zu/%zu -> %zu/%zu\n",
568560
sevenzip_salt->packed_size - inf_stream.avail_in, sevenzip_salt->packed_size,
569561
crc_len - inf_stream.avail_out, crc_len);
570562
#endif
@@ -573,7 +565,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
573565
} else {
574566
#if DEBUG
575567
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
576-
fprintf(stderr, YEL "DEFLATE decoding failed, %zu/%zu -> %zu/%zu\n" NRM,
568+
fprintf_color(color_warning, stderr, "DEFLATE decoding failed, %zu/%zu -> %zu/%zu\n",
577569
sevenzip_salt->packed_size - inf_stream.avail_in, sevenzip_salt->packed_size,
578570
crc_len - inf_stream.avail_out, crc_len);
579571
#endif
@@ -586,7 +578,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
586578
if (p_type) {
587579
#if DEBUG
588580
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
589-
fprintf(stderr, "Decoding %s, props %02x\n", precomp_type[p_type], sevenzip_salt->preproc_props);
581+
fprintf_color(color_notice, stderr, "Decoding %s, props %02x\n", precomp_type[p_type], sevenzip_salt->preproc_props);
590582
#endif
591583
if (p_type == 1) {
592584
uint32_t state;
@@ -595,12 +587,8 @@ int sevenzip_decrypt(unsigned char *derived_key)
595587
x86_Convert(out, crc_len, 0, &state, 0);
596588
}
597589
else if (p_type == 2) {
598-
if (!benchmark_running && options.verbosity >= VERB_DEFAULT) {
599-
static int warned;
600-
601-
if (!warned++)
602-
fprintf(stderr, YEL "Can't decode BCJ2, so skipping CRC check" NRM);
603-
}
590+
if (!benchmark_running && options.verbosity >= VERB_DEFAULT)
591+
WARN_ONCE(color_warning, stderr, "Can't decode BCJ2, so skipping CRC check");
604592
goto exit_good;
605593
}
606594
else if (p_type == 3)
@@ -620,7 +608,7 @@ int sevenzip_decrypt(unsigned char *derived_key)
620608
Delta_Decode(state, sevenzip_salt->preproc_props + 1, out, crc_len);
621609
#if DEBUG
622610
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
623-
fprintf(stderr, YEL "DELTA decoding can't fail so result unknown\n" NRM);
611+
fprintf_color(color_notice, stderr, "DELTA decoding can't fail so result unknown\n");
624612
#endif
625613
}
626614
}
@@ -636,13 +624,13 @@ int sevenzip_decrypt(unsigned char *derived_key)
636624
if (ccrc == sevenzip_salt->crc) {
637625
#if DEBUG
638626
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
639-
fprintf(stderr, "CRC check passed (%08x)\n", ccrc);
627+
fprintf_color(color_notice, stderr, "CRC check passed (%08x)\n", ccrc);
640628
#endif
641629
goto exit_good;
642630
}
643631
#if DEBUG
644632
if (!benchmark_running && options.verbosity >= VERB_DEBUG)
645-
fprintf(stderr, YEL "CRC failed, %08x vs %08x\n" NRM, ccrc, sevenzip_salt->crc);
633+
fprintf_color(color_warning, stderr, "CRC failed, %08x vs %08x\n", ccrc, sevenzip_salt->crc);
646634
#endif
647635

648636
exit_bad:

src/bestcrypt_ve_fmt_plug.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ john_register_one(&fmt_bestcrypt_ve);
3131
#endif
3232

3333
#include "arch.h"
34+
#include "john.h"
3435
#include "misc.h"
3536
#include "common.h"
3637
#include "formats.h"
@@ -229,7 +230,8 @@ static int valid(char *ciphertext, struct fmt_main *self)
229230
if (atoi(p) != 8 && atoi(p) != 9 && atoi(p) != 10 && atoi(p) != 11 && atoi(p) != 15)
230231
goto err;
231232
if (atoi(p) == 11) {
232-
fprintf(stderr, "Warning: " FORMAT_LABEL ": RC6 encryption not supported yet!\n");
233+
if (john_main_process && !ldr_in_pot)
234+
fprintf_color(color_warning, stderr, "Warning: " FORMAT_LABEL ": RC6 encryption not supported yet!\n");
233235
goto err;
234236
}
235237
if ((p = strtokm(NULL, "$")) == NULL) // salt

src/bitshares_fmt_plug.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,8 +300,9 @@ static int crypt_all(int *pcount, struct db_salt *salt)
300300
any_cracked |= 1;
301301

302302
if (memcmp(km, out_full, 4) != 0) {
303-
fprintf(stderr, "Warning: " FORMAT_LABEL ": Good padding, but bad checksum"
304-
" (corrupted data or false positive?) - will keep guessing\n");
303+
fprintf_color(color_warning, stderr,
304+
"Warning: " FORMAT_LABEL ": Good padding, but bad checksum"
305+
" (corrupted data or false positive?) - will keep guessing\n");
305306
fmt_bitshares.params.flags |= FMT_NOT_EXACT;
306307
}
307308
}

src/c3_fmt.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -371,11 +371,12 @@ static int valid(char *ciphertext, struct fmt_main *self)
371371

372372
if (id != 10 && !ldr_in_pot)
373373
if (john_main_process)
374-
fprintf(stderr, "Warning: "
375-
"hash encoding string length %d, type id %c%c\n"
376-
"appears to be unsupported on this system; "
377-
"will not load such hashes.\n",
378-
length, id > 0x20 ? '$' : '#', id > 0x20 ? id : '0' + id);
374+
fprintf_color(color_warning, stderr,
375+
"Warning: "
376+
"hash encoding string length %d, type id %c%c\n"
377+
"appears to be unsupported on this system; "
378+
"will not load such hashes.\n",
379+
length, id > 0x20 ? '$' : '#', id > 0x20 ? id : '0' + id);
379380

380381
if (!sup_length[length])
381382
sup_length[length] = -1;

src/keepass_common.h

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -135,24 +135,20 @@ static int keepass_valid(char *ciphertext, struct fmt_main *self)
135135
goto err;
136136
#if !KEEPASS_ARGON2
137137
if (!strcmp(p, "ef636ddf") || !strcmp(p, "9e298b19")) {
138-
static int warned;
139-
140-
if (!ldr_in_pot && john_main_process && !warned) {
141-
fprintf(stderr, "%s: Argon2 hash(es) not supported, skipping.\n",
142-
self->params.label);
143-
warned = 1;
138+
if (!ldr_in_pot && john_main_process) {
139+
WARN_ONCE(color_warning, stderr,
140+
"%s: Argon2 hash(es) not supported, skipping.\n",
141+
self->params.label);
144142
}
145143
goto err;
146144
}
147145
#endif
148146
#if !KEEPASS_AES
149147
if (!strcmp(p, "c9d9f39a")) {
150-
static int warned;
151-
152-
if (!ldr_in_pot && john_main_process && !warned) {
153-
fprintf(stderr, "%s: AES hash(es) not supported, skipping.\n",
154-
self->params.label);
155-
warned = 1;
148+
if (!ldr_in_pot && john_main_process) {
149+
WARN_ONCE(color_warning, stderr,
150+
"%s: AES hash(es) not supported, skipping.\n",
151+
self->params.label);
156152
}
157153
goto err;
158154
}
@@ -199,14 +195,14 @@ static int keepass_valid(char *ciphertext, struct fmt_main *self)
199195
if (extra)
200196
goto err;
201197
if (content_size > KEEPASS_MAX_CONTENT_SIZE) {
202-
static int warned;
198+
static int warned_size;
203199

204-
if (!ldr_in_pot && john_main_process && warned < content_size) {
205-
fprintf(stderr,
206-
"%s: Input rejected due to larger size than compile-time limit.\n"
207-
"Bump KEEPASS_MAX_CONTENT_SIZE in keepass_common.h to >= 0x%x, and rebuild\n",
208-
self->params.label, content_size);
209-
warned = content_size;
200+
if (!ldr_in_pot && john_main_process && warned_size < content_size) {
201+
fprintf_color(color_warning, stderr,
202+
"%s: Input rejected due to larger size than compile-time limit.\n"
203+
"Bump KEEPASS_MAX_CONTENT_SIZE in keepass_common.h to >= 0x%x, and rebuild\n",
204+
self->params.label, content_size);
205+
warned_size = content_size;
210206
}
211207
goto err;
212208
}
@@ -241,14 +237,14 @@ static int keepass_valid(char *ciphertext, struct fmt_main *self)
241237
goto err;
242238
int content_size = atoi(p);
243239
if (content_size > KEEPASS_MAX_CONTENT_SIZE) {
244-
static int warned;
240+
static int warned_size;
245241

246-
if (!ldr_in_pot && john_main_process && warned < content_size) {
247-
fprintf(stderr,
248-
"%s: Input rejected due to larger size than compile-time limit.\n"
249-
"Bump KEEPASS_MAX_CONTENT_SIZE in keepass_common.h to >= 0x%x, and rebuild\n",
250-
self->params.label, content_size);
251-
warned = content_size;
242+
if (!ldr_in_pot && john_main_process && warned_size < content_size) {
243+
fprintf_color(color_warning, stderr,
244+
"%s: Input rejected due to larger size than compile-time limit.\n"
245+
"Bump KEEPASS_MAX_CONTENT_SIZE in keepass_common.h to >= 0x%x, and rebuild\n",
246+
self->params.label, content_size);
247+
warned_size = content_size;
252248
}
253249
goto err;
254250
}
@@ -419,8 +415,9 @@ static void *keepass_get_salt(char *ciphertext)
419415
p = strtokm(NULL, "*");
420416
int keyfilesize = atoi(p);
421417
if (keyfilesize != 64)
422-
fprintf(stderr, "Warning: keepass possible bug indication %s:%d size %d\n",
423-
__FILE__, __LINE__, keyfilesize);
418+
fprintf_color(color_warning, stderr,
419+
"Warning: keepass possible bug indication %s:%d size %d\n",
420+
__FILE__, __LINE__, keyfilesize);
424421
p = strtokm(NULL, "*");
425422
for (i = 0; i < keyfilesize / 2; i++)
426423
cs.keyfile[i] = atoi16[ARCH_INDEX(p[i * 2])] * 16

0 commit comments

Comments
 (0)