-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
CHANGES-jumbo
17126 lines (16935 loc) · 832 KB
/
CHANGES-jumbo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
The following changes were made between 1.8.0-jumbo-1 and 1.9.0-jumbo-1:
magnum (2623):
inc.c: Instead of sending a "" to crk_process_key(), use a safe static
buffer of PLAINTEXT_BUFFER_SIZE. No problem seen here but in other
places with similar code.
Move lastpass format back in tree. See #890
OpenCL: Support reporting OpenCL 2.0 versions.
OpenCL: Pass DEV_VER_MAJOR and DEV_VER_MINOR to OpenCL compiler. Eg.
for Catalyst 1234.5 they will be 1234 and 5 respectively. For
strings like "text 123 text 56" they will be 123 and 56. Closes
#909.
DEScrypt OpenCL: Tweak the selection of "fast" versus "safe" version
of the kernel. The selection logic will very likely grow over time.
OpenCL: If kernel build fails, force outputting build options.
OpenCL: AMD devices have some weird bug when using pinned buffers.
They seem to allocate twice the memory. We need to account for this
when finding out limits.
Speed up some --list stuff with OpenCL formats. See #919.
Even more speedup for --list stuff with OpenCL formats. See #919.
Tweak for --list=format-[all-]details and OMP formats. See #919.
OMP tuning and some other performance fixes. See #877.
AC: Fix ASAN configuration. Closes #921.
AC: More fixes to ASAN configuration. #921.
Fix a problem with --list=format-tests and Unicode formats. Closes
#919
DEScrypt OpenCL: Tweak the selection of "fast" versus "safe" version
of the kernel. The __Tahiti__ macro is not all upper case, as I had
it. And only nvidia GM204 seem to be faster using the "safe" kernel
- Kepler and Fermi wants the other.
Vectorized OpenCL formats: Correction for max memory use.
Vectorized OpenCL formats: Correction for max memory use.
raw-sha256 bug fix. It didn't unify case for all hashes. Closes #925,
#926, #927, #928, #931.
OpenCL: Fix a bad bug with multi-field test vectors. Found by ASAN.
OpenCL: Auto-tune max. size calc. fix for vectorized formats (RAKP and
NTLMv2). See #922
Office2013 OpenCL: Disable vectorizing on VLIW5 because the register
pressure is too high. Discussion in #908.
AC: Add -D__USE_MINGW_ANSI_STDIO for MinGW.
Office2013 OpenCL: Allow forcing vectorizing.
Fix a minor problem in AESNI Makefile.
RAKP OpenCL: On VLIW5, limit vectorizing to 2x due to GPR pressure.
See #908.
Various OpenCL formats: On VLIW5, limit vectorizing to 2x due to GPR
pressure. See #908.
Oops I committed the define of JTR_RELASE_BUILD into bleeding.
Makefile: Fix a typo in luks2john's LDFLAGS. See #933
jumbo.c: Pure whitespace fixes.
OpenCL: Drop some obsolete code. Fix a lot of formats for using LWS=0
(auto tune LWS) or LWS=9999 (set to ceiling instead of forcing auto
tune). Also plenty other minor tweaks and fixes.
Change the $HEX$ loader bodge to use strncmp() instead of strstr(),
for performance.
Drop OCL_CONFIG in favor of FORMAT_LABEL. It will be stripped to it's
base and lower-cased, eg. rar-opencl -> rar, so the end result is
supposedly the same (or bugs got fixed automagically, which is the
very intention with this). Closes #940.
Drop a couple of old formats from the unused/ directory. That
directory is not a permanent graveyard - Git is.
Drop a couple of old Unicode "original" files from unused. We do not
need them - the licensing information is stated in the files we
actually use.
Fix a problem with opencl_cryptsha512_fmt after my recent changes.
Drop no-op code from Truecrypt. See #941.
Fix indentation and widescreen comments in memory.c
raw-sha1-linkedin bodge for loader.c. Closes #924.
RAKP-opencl, fix a problem with uninitialized index buffer when used
with -skip. Closes #947.
mscash-cuda. Update valid() and prepare() from CPU format. Closes #942
sha256crypt-cuda. Use shared valid() and binary() functions. Closes
#943.
sha512crypt-cuda. Use shared valid() and binary() functions. Closes
#944.
Revert an incorrect fix in formats.c from faf28f43. You must not call
clear_keys() in the middle of a batch of keys!
Revert an incorrect fix in mssql from faf28f43.
Put workaround back in RSVP since we reverted the fix in formats.c
Bugfix for xsha512-cuda found by ASAN.
Add more test vectors to CUDA formats that only had one.
Encfs-opencl and sxc-opencl: Add test vectors from CPU format.
OpenCL keyring format: Add second test vector from CPU format. This
immediately made a bad bug show up, which was fixed too.
Revert "loader: incresed number of parms being loaded from file, for
scrypt"
pwsafe-opencl: Reject uppercase in valid().
Drop 'test' but keep .gitmodules. Experimental.
Drop some unused code from Keccak and Blake.
Fix some header inclusions that should be <brackets> but was "quotes"
Add an option to configure (--enable-plugin-dependencies) that creates
plugin dependencies in Makefile. Highly experimental and
best-effort. See #955.
Add a self-test for salt() ensuring it returns same data for same
salt. See #953.
Base64_convert code: Some off-by-one and buffer cleaning problems
fixed. See #953
Fix some more header inclusions that should be <brackets> but were
"quotes".
Add Makefile dependencies for non-plugins, "best effort".
Default to enable plugin dependencies generation.
Add a debug print to formats.c salt dupe check.
PFX bugfix. We were clearing salt after setting things in it. This
does not fix #953 - it appears we really have to use a dynamic salt.
Change wording of self-test warning for dupe salt detection. There's
not really any doubt it's broken.
OpenCL DES: Use an LWS of 8 for Intel, for good measure (they
recommend it in their white papers). Closes #958.
Revert 53442ed and 123a654. They were never needed. See #958
Allow environment variable OMP_SCALE to override john.conf setting
FormatBlockScaleTuneMultiplier. And clean up code.
luks2john: Add missing LF in error output.
Fix bugs in LUKS format. Some optimist had changed things without
checking results of it. We were freeing memory that was not
alloc'ed, and non-inlined hash handling was terrificly b0rken in
valid().
Add autoconfig-stamp-h.in to .gitignore
DEScrypt-opencl: Add a kludge for older buggy Intel CPU driver.
Double entry in .gitignore after mid-air collision. Removed.
Make base64_convert less Windows-ish by lifting the limit of 50K max.
number of lines read from stdin. Fix some bugs while at it. The max
line length is now 256K as stated (it was coded as 256M). FWIW our
current LINE_BUFFER_SIZE is less at 0x30000.
base64_convert: Put a line length limit notice back in usage blob.
Fix edge-case issues with enc_lc() and enc_uc(). The destination size
is now buffer size, not string length.
Fix a good bunch of formats that did not work with the new OMP_SCALE
test/devel stuff. See #877.
Fix some more formats that did not work with the new OMP_SCALE
test/devel stuff. Plus some no-ops for unified code. See #877.
Revert CP737 to what the Unicode database says.
Manual sync of libclamav unrar code from upstream. This did not fix
#1000.
Fix an ASAN problem in unrar.c where a read ahead buffer could read
past end of buffer. Closes #1000.
Fix a bug in -list=format-details where multi-field ciphertexts were
not printed. Also drop some for loops in -list=format-tests in favor
of strchr().
unrar.c, bump over-alloc more for protection against bad data. See
#1000 and closes #1001.
Document how to crack CRAM-MD5 using the HMAC-MD5 format. Closes #999.
Add salt_compare method and plaintext_min_length param to format
struct. Closes 996, closes #997.
Add --list info for new format struct members. Closes #1004.
unrar.c: Implement a similar protection for rar_getbits() that Jim did
in rarvm_getbits(). Unfortunately this did not help #1008.
Wordlist mode had no consecutive dupe suppression when running
unbuffered and without rules. This reverts 15949eb and fixes it in a
better way. Closes #1012.
Reduce some chatter when -verbosity is decreased.
If verbosity is increased, report tunable cost even when all hashes
have same cost. This was suggested in #816.
Allow -cost with -test. See #816.
Clean up cost-with-test code, see #816.
Cost-with-test: Added printing of costs used in test. Closes #816.
Cost-with-test: Changed message for costs used in test. See #816.
Benchmark w/ -cost issues. Closes #816. - Never output cost
information w/ --test=0. - Also mute it if verbosity was decreased
from default. - Give a better error message when -cost pruned all
test vectors. - Fail with a proper notice if a required cost is not
defined.
Import pp.c (as prince.c) from Atom's Princeprocessor and implement a
prince mode with it. See #1011.
Add means for setting PRINCE parameters. Also add logging of them. See
#1011.
PRINCE: Add ETA/progress. See #1011.
PRINCE: Minor tweaks. See #1011.
PRINCE: Implement session save/restore. See #1011.
PRINCE: Minor tweaks. See #1011.
PRINCE: Fix a problem where we broke out of inner loop but not the
outer. See #1014.
PRINCE: Fix another problem where we broke out of inner loop but not
the outer. Closes #1014.
Fix a potential "ASan problem" in mask mode.
PRINCE: Always report DONE when everything is cracked. This is not
necessarily a good idea (will open another issue) but all other
modes do so.
PRINCE: Support node/fork. See #1011.
PRINCE: Better node/fork distribution. See #1011.
PRINCE: Fix resume problem. Closes #1016.
PRINCE: Cosmetic & performance resume tweaks. See #1016.
Drop PRINCE from usage blob and other stuff, unless GMP is available.
PRINCE: Sync pp.c from Atom's repo.
PRINCE: Add proper GMP cleanup for JtR-specific variables.
PRINCE: Optionally define PRINCE-specific wordlist in john.conf.
Autoconf: Add a PRINCE notice to summary (for GMP library).
PRINCE: Mute a compiler warning.
Add a header in pkzip_plug.c muting a compiler warning.
Sync upstream PRINCE changes. Major improvement for resuming.
PRINCE: Much faster node distribution - but distributes poorly for
very small keyspaces.
PRINCE: Sync prince.c from upstream (d9bbf908) pp.c.
PRINCE: Sync prince.c from upstream (be309320) pp.c (major bugfix).
Autoconf: Check whether compiler supports some int128 type(s).
PRINCE: Prefer uint128_t over GMP if available, for a 44% boost. This
only works with 64-bit builds and not with all compilers (it should
work with gcc 3.1 and above). Otherwise fall back to GMP.
PRINCE: Support 128-bit integer for legacy Makefile builds.
PRINCE: Fix a bug with 128-bit restore.
Show default parameters for PRINCE mode in usage blob.
PRINCE: Bugfix for legacy builds.
Add instructions for working around bugs in the system headers of OS X
Yosemite. See #1025.
PRINCE: Merge upstream.
OSX: Backup originals if patching system headers o.O
Mask mode (pure): Fix progress/ETA for node/fork runs. Closes #1024.
PRINCE: Drop the inner-loop node distribution alternative, plus some
error output tweaks.
PRINCE: Update from upstream.
PRINCE: Ensure session store/resume compatibility between GMP and
non-GMP versions. And fix input/output of large numbers in the
int128 version. Also fix what I hope is a bug upstream (else we got
a problem).
PRINCE: Update from upstream. 6.4x boost. Drop the int128 version for
now (WIP).
PRINCE: Add options --prince-skip=N and --prince-limit=N.
PRINCE: Add int128 alternative to GMP again, this time using a header
with nefarious macros.
Re-add AC status output for int128 PRINCE.
PRINCE: Add --prince-keyspace option. Also add --disable-int128 to
autoconf.
mpz_int128.h: Support base 10 and 16 for mpz_set_str()
PRINCE: Show "bits used" when printing keyspace. Also revert a bug
workaround that should no longer be needed (div by zero while
skipping).
Add unrule.pl embryo. This does wot epixoip said, plus removes dupes
and sorts by count. Reduces rockyou.txt by 60% in 30 seconds. See
#998.
mpz_int128.h: Add overflow checks, saturating to INT128_MAX (and to
zero for subtraction)
mpz_int128.h: Minor tweaks.
blf.h: Use "stdint.h" and not <stdint.h>
Sync pp.c from upstream.
Add a warning about saturation in mpz_int128.h in case someone tries
to use it for something other than PRINCE.
PRINCE: Fix a bug in JtR-specific code introduced when merging
upstream.
Drop OS X 'as' wrapper script in favor of -q option to native 'as'.
mpz_int128.h: Fix saturation checks for case where rop and op1 is the
same variable.
PRINCE: Update from upstream v 0.20.
PRINCE: Tweak parameter checking.
PRINCE: Fix (JtR specific) resume bug.
PRINCE: Update pp.c from upstream and add new -prince-case-permute
amplifier option to JtR.
PRINCE: Allow output lengths up to 125. Note that this mode currently
limits output length to 16 unless you use -max-len to bump it. For
most other use cases, -max-len is a limiter.
Print timestamp with --log-stderr.
PRINCE: Bug fixes for case when output length > max input length.
Jim's portability hack of pp.c was broken: * If -DJTR_MODE we don't
need getopt.h at all * if that macro is not defined we must not
depend on other object files.
PRINCE: Reduce memory use.
PRINCE: Fix a bug when output length > max. input length.
PRINCE: Fix output length bugs. We can't support longer output than 32
unless we switch to u64, but it will too slow anyway.
PRINCE: Fix a session bugs with node/fork. This is incompatible with
saved sessions from previous versions - there was no way around it.
MIPS tweaks for autoconf script. Suggested by Solar after tests.
PRINCE: Update from upstream.
AC: Add mips* back (and a new mips64*) for catching obscure target
triples.
WPAPSK: Better version of previous patch. See #1031
PRINCE: Add support for encodings. This does not affect performance
much, and only during initial wordlist load.
PRINCE: Add loopback mode. Note that we do not yet have dupe
suppression which is almost a must for loopback.
PRINCE: Add dupe-suppression.
PRINCE: Update from (sort of) upstream.
Some tweaks for --max-length option. Do not allow it to over-ride a
limited --stdout=N length, and bail with error if trying to use
larger than allowed for PRINCE mode (currently 32).
Change the inline error output from keepass format to reference the
issue for fixing it, and use error() instead of exit(). See #1023
and #1026.
Do not test for int128 unless we are really 64-bit or better.
PRINCE: Fix resume bug.
PRINCE: Update from upstream. Dupe-suppression is now default.
PRINCE: Yet again tweak session save/resume. It's hard to get
node/fork right.
Replace exit() calls with error() so we get a proper bailout with
logging.
PRINCE: Optionally memory-map the input file (not for loopback mode
nor when using case permutations). This is JtR-specific, the
original prince-processor still only supports loading from stdin.
Dupe suppression is no longer default except in loopback mode, good
old --dupe-suppression option does it otherwise.
Tweaks to the Yosemite patch, for not breaking clang builds.
Pacify a clang compiler warning in pp.c.
PRINCE: Add logging of memory use (JtR only).
PRINCE: Upstream bug fix, and some more fixes for dupe-suppression.
Comment out an unused variable in MD4 OpenCL kernel.
PRINCE: Revert a bogus change in last commit.
PRINCE: JtR-specific bugfix similar to the recently fixed one
upstream.
PRINCE: Automatically decrease elem-cnt-max to pw_max if applicable.
Drop an odd thing Frank accidentally(?) added to bash completion.
Fix bash completion for --prince=FILE. Closes #1020.
bash completion: Allow ':' instead of '=' for --prince=FILE. See
#1020.
MPI/fork: Mute dupe "slow loading" warning messages for NTLMv1.
PRINCE: Ensure session-save does not store a position we never
reached. Not sure there was a problem but better than sorry.
PRINCE: Add rules support. This is very slow right now because we run
each word through all rules instead of the other way round. Closes
#1019.
Add a format that is based on dummy but use no encoding at all.
ciphertext == plaintext. This is easier to use for some tests.
Some --list OpenCL tweaks for Apple.
Cosmetic --list CUDA tweak for cc 2.1.
Add a comment in plaintext format. This format is faster than dummy if
using same max lengths.
Drop some weird garbage from Makefile.in
Support -DSYSTEMWIDE using Autoconf --with-systemwide. Shared binary
directory defaults to /usr/libexec/john unless you use the --prefix
option to configure [which also implies --with-systemwide].
PRINCE: Updates from upstream.
logger.c: Only flush stdout if we're indeed running fork. It should
not be needed for MPI.
Minor tweak for SecureMode = Y.
Fix p/s counter for GPU generation.
PRINCE: Enable hybrid mask mode.
Various fixes for PRINCE hybrid mask mode.
Add a newly needed GMP function for emulation.
Some file locking tweaks: Ensure a LOCK_SH before pot sync was not
interrupted by a signal (timer). This should not matter much, if at
all. Also show whether locking is supported or not in
--list=build-info.
Add some file locking debug output for -DLOCK_DEBUG and also have it
imply -DPOTSYNC_DEBUG.
Add a flock-test script to unused.
Change a couple #ifdef POTSYNC_DEBUG to LOCK_DEBUG for consistency.
Simplify pot-reload file open. This should really not make any
difference in the end (we're doing the same things) but it looks
nicer and it no longer feels like we're missing a call to close()
(as opposed to fclose() which we do call).
Make it possible to *completely* disable pot syncing just by editing
john.conf. Also clarify some descriptions.
Plaintext format: Add a test vector including spaces, and some
comments.
PRINCE: Enable use of mmap with loopback, plus various bugfixes.
Fix some logging that happened before log_init() so never made it into
log.
Finish the alternative fcntl() file locking. After having consulted
Solar, we also make it the default.
Improved -DLOCK_DEBUG a little.
BFEgg is FMT_NOT_EXACT. See #1045.
BFEgg should have a max. password length of 72.
Drop FMT_NOT_EXACT from BFEgg again, and document (in source) the
optional per-run alternative --keep-guessing. See #1045.
Tweaks and a bug fix for fcntl locking.
Update some obsolete information in README.mpi.
Clarify description of FMT_NOT_EXACT in formats.h, and drop that flag
from CRC32 format. That format should be run with --keep-guessing
option instead (if/when actually needed). Also drop some comments
from formats so they don't hit a "git grep FMT_NOT_EXACT" while not
actually having that flag.
Mute clang compiler warnings about unused variables (that we can't
drop cause we need the sizeof() them) in gpg2john.
Fix usage blob for --prince-mmap, a restriction was dropped.
The --stress-test option did not work very well with OpenMP formats
that have things like "self->params.max_keys_per_crypt *= omp_t"
since this would be evaluated before each test and figures would
soon get silly. So we save them and restore them. Also applies to
plaintext_length as that might be eg. "*= 3" for UTF-8.
Update doc/OPTIONS with some missing bits and pieces.
Work around a very strange MPI segfault when trying to resume a
session that does not exist.
Fix a bug that was introduced with the ShowUIDinCracks option, even
when not enabled. pwdump-format input files ended up showing random
garbage.
doc/OPTIONS, tweak description of --keep-guessing.
ShowUIDinCracks: Honor --field-sep-char.
CUDA md5crypt, clean salt.
Add salt_hash() to a couple of formats. See #809.
AC: Rename --disable-native-macro to --disable-native-march which is a
whole lot less confusing. Also ensure that --disable-native-tests
always implies --disable-native-march.
AC: All x86 cross-compile tests were busted and returned true for
anything.
Document a problem when using Ubuntu 12.04 with modern (AVX2)
hardware. Closes #1051.
PRINCE: Updates from upstream.
Always use mem_alloc(), or check result of malloc(), for good measure.
Our "mute ASAN" fix in bench.c affected benchmark speeds a whole lot
for fast formats. This mitigates it at least enough not to show
slower than real-life speed (compared to mask mode).
DES-opencl: Use mem_alloc wrapper.
Update Unicode external dumb/repeats modes for Unicode 7.0, and add
some codepages for possibly dealing with "Equation Group" hashes as
published by Kaspersky. All generated from the Unicode Database.
Update doc/ENCODINGS.
Fix bogus include paths (using quotes where there should be brackets).
Ensure Makefile dependencies for opencl_DES_hst_dev_shared.h
DEScrypt-opencl: Bugfix for dupe salts. The list of binaries for a
given salt may have NULL entries (already cracked).
OpenCL: Ensure that we get AMD-specific functionality even if JtR was
built with nvidia headers, and vice versa.
Add a few more vendor-specific OpenCL macros in case they are not
present in headers.
DEScrypt OpenCL: get rid of a warning about comparison of integers of
different signs.
Cosmetic tweak (on error) for fcntl locks.
OpenCL: Use locks when reading/writing cache files.
memdbg: Fix calloc bugs. Closes #1062.
DES-opencl bugfix. I got "Get key error! 50 1575" until I did this,
and with this fix it cracked a hash at that point.
Copy test vector plains to full-size buffers outside of hot loops so
we get a better raw speed benchmark figure. Closes #1054.
Add CRAM-MD5 support to HMAC-MD5 format, using the raw Base64 strings
prepended with a Hashcat-compatible tag. Closes #1018.
We've had an odd prototype for mem_calloc() ever since implemented in
36416c5. As much as I hate this no-op commit it makes it easier to
import code in the future.
Fix regex.h for new path of rexgen header.
hmac-SHA384 bug fix. Closes #1063.
Fix a bug in hmac-MD5 and hmac-SHA1, and unify HMAC code.
Revert recent changes to HMAC formats and make the correct fixes.
Better fix for #1063 (the previous fixes were OK but used larger
buffer sizes than necessary).
Disable raw-sha1-linkedin if SHA1_SSE_PARA > 3. Closes #454.
Bug fix for edge cases in wordlist mode using mmap(). Hopefully
addresses #1025.
Bug fix (ASAN) in HMAC-MD5 for CRAM-MD5 conversion. See #1067
Add our own strnlen() unless system has one.
Add a self-test for catching buggy SIMD implementations using 0x80 as
end of data. 0x80 can be anything, for example a euro-sign in
CP1252. You can't ever use it for detecting end of data!
XSHA512: Fix a bug that would truncate any plaintext containing 0x80.
MSSQL12 SIMD support. There's some overhead in set_key() that's hard
to work around without writing totally unreadable code.
MSSQL12: KISS fixes for SIMD: Simpler buffer cleaning and use flat
buffers. Speed is about the same (or better) and code is much
simpler and potential bugs are squashed before they showed up.
Replace more deprecated des_ methods and calls with the DES_
counterparts.
Fix bogus line endings in cryptsha256_common.h (it had a disgusting
MIX of LF and CRLF).
sha256crypt: Allow - but truncate - salts longer than 16.
sha256crypt-cuda: Bump max length to 23. See #1077. This format
probably should be able to do 24, but then it loses some in the Test
Suite due to a bug somewhere.
Pending core change in cracker.c. Ensure get_key() is not called (via
status.c) after clear_keys() was called. Closes #1076.
Pending core change in cracker.c. Ensure get_key() is not called (via
status.c) after clear_keys() was called. Take 2. Closes #1076.
Drop a few empty clear_keys() functions and use fmt_default*
Revert "bcrypt / opencl: created a BF_common set of functions / data"
Enforce C89 for gcc-5.x (it defaults to C11). See #1093.
Notify user of ASan affecting speed if she tries to benchmark (we
already did for -DDEBUG). I have ended up chasing non- problems a
couple of times because I forgot I was running an ASAN build o.O
Move our strnlen() function to jumbo.c, where we have other such
functions. Basically, misc.c is for our "own" functions while
jumbo.c is for functions that many systems already have, but some
systems do not. Like in this case: We only implement the strnlen()
function unless it is available in libc.
Revert "siemens: only validate a 1. Since we now have split, a 0
should not be valid any more"
MSSQL12 bugfix for non-MMX/SSE2
Add a bunch of known mappings between OpenCL driver version and
Catalyst driver version (and name).
OpenCL, --list=opencl-devices for Catalyst (cosmetic)
Drop the "[CPU]" after OpenCL version number, it's redundant.
Revert a test vector in siemens S7 format to it's original format.
Cosmetical changes to OpenCL SHA512 formats: PLAINTEXT_LENGTH was used
in a confusing way. Change to match our conventions. These changes
are verified with TS for good measure.
Merge an optimization for HH() in md5.c originally commented as "Help
the compiler detect a common subexpression between steps in round
3."
MD5_std.c, md5_go.c, md4.c, NT and some GPU MD4/MD5: "common
subexpressions in round 3" optimizations.
sse-intrinsics.c: Use _mm_set1_epi32(n) instead of
_mm_set_epi32(n,n,n,n) when applicable. This is 100% cosmetical.
Refactor MMX_COEF -> SIMD_COEF_32
MSSQL12: Avoid build warnings on non-SIMD
Add README-jumbo on top of README.md
OpenCL: More use of shared code.
Change mem_alloc_tiny() to malloc/free for large buffers in a bunch of
formats. This mitigates memory leaks when running --test with a huge
number of threads (eg. MIC/Xeon Phi) or with --stress-test. It
matters less for a real crack run. I picked some of most common
formats here plus the ones with largest OMP_SCALE figures for a
starter.
Dynamic: Use malloc/free for buffers. This fixes the real show
stoppers, but there's still plenty of memory leaking when running
eg. "../run/john -stress-test=0 -form:dynamic".
Use malloc/free for buffers; Another bunch of formats.
Mass refactoring of saved_key_length -> saved_len to ease scripted
changes.
Use malloc/free for buffers; Yet another bunch of formats.
bench.c now resets the Unicode system, formats need not care.
Revert a torrent of trigger-happy-commits and start using
posix_memalign() or aligned_alloc() for mem_alloc_align - drop the
extra pointers.
Waste a couple of cycles for each alloc just to mute the ridiculous
compiler warning "possibly uninitialized variable" - which is isn't.
Fix a couple of ASan crashes caused by erroneous $tag$*.
Avoid re-declaring _XOPEN_SOURCE (core code clash with autoconf)
If mem_alloc_align() fails, exit with message telling what size was
requested.
OpenCL fixes. More unifying of SHA1 ahead.
RAR5 OpenCL bugfix: Wrong "cost" (iteration count) reported due to
casting to incorrect (GPU side, should be core side) salt type.
OpenCL shared SHA1 and MD4/MD5 cleanup and bugfixes.
AMD bug workaround re-implemented in new shared SHA1 for OpenCL.
Fix OpenCL formats for strtokm(). See #1108.
Fix for that stupid AMD driver bug workaround for SHA1, for mixed
vector/scalar formats.
Use -Og for debug targets if compiler supports it. Closes #1113.
GPG-opencl failed due to changes half-assed merged from CPU format.
Closes #1119.
Change strok() to strtokm() in all formats but SKEY. See #1108.
It turns out a bug workaround for Catalyst 14.9 *triggers* an other
bug in older drivers... Doh. Addresses #908.
Change strok() to strtokm() in shared files that were missed. See
#1108.
PDF had a `strtok (` that didn't get replaced. Closes #1108 again.
OpenCL: Implement an optimized SHA512 for the case where half of the
block is zero (as in PBKDF2). Just a slight boost, I guess the
compiler did much of it already.
GPG: Needed to treat $gpg$* as the effective tag. And bump plaintext
size.
GPG: Bump max length to 125, and fix some code to adopt to
PLAINTEXT_LENGTH. The OpenCL format already behaved well in that
aspect but had some other non critical bugs leading to suboptimal
code. I also unified some code to ease comparing side by side.
GPG OpenCL: Alternate leaner code, trying to make it work on more
nvidias.
GPG OpenCL: Much leaner code. Still does not work on all nvidias.
GPG OpenCL: Disable leaner code for nvidias.
Disable "cost" support in CUDA sha2crypt formats. They were buggy and
not trivial to fix. Closes #1118.
Strip format, fix an ASan regression from 70f3b95a (I guess)
Cosmetic: Address clang warnings. Closes #1126.
Fix a "binary() returned misaligned pointer" in phpass/dynamic. See
#1127.
AC: protect a variable with quotes in some tests.
OpenCL raw-md4: Correct mask mode behavior when GWS is supplied. We'll
use the figure as-is but we still print a message about internal
generation.
Add some debug/benchmark stuff to raw-md4-opencl. For GCN and Maxwell,
I see no difference at all between different versions of the HH()
optimization - or not using at all.
OpenCL raw-MD5 GPU-side mask: Change GWS divisor to a more suiting
figure. This is significantly faster (on both GCN and Maxwell) but
still a compromise: Both auto-tunes to 4M, the HD7970 works best at
8K and Maxwell at 16K. We need to auto-tune *with* candidate mask!
SHA256 OpenCL: Mute complaint from picky compilers
pass_gen.pl: Do not list formats as supported when they are not.
Closes #1132.
mem_calloc_align had its parameters reversed. Not that it matters.
Change calloc_tiny to calloc/free in many formats. See #1110.
Fix a bug introduced in b9e13c38, closing #1139.
Change calloc_tiny to calloc/free in 14 formats. See #1110.
AC: Include CPPFLAGS when creating fmt_externs.h and fmt_registers.h
just in case it matters in some situation. Closes #1137.
Fixes for building "icc .S files". See #1065.
Update the icc pre-built see-intrinsics.S files, using the icc on
super: "icc version 14.0.0 (gcc version 4.4.7 compatibility)" Closes
#1065.
Fix a bug in MD5 introduced in 2e33cfd. Closes #1142.
Fix a copy/paste bug in DMD5. Closes #1143.
Most OpenCL formats: Auto-tune in reset().
Bugfix in o5logon-opencl.
Fix GPG-opencl for nvidias.
Optimizations for oldoffice-opencl that are also workarounds for some
AMD driver bugs.
OpenCL: The recent AMD change for PUTCHAR re-triggered the damn AMD
bug in oldoffice. Introduce a new macro for preferring the non-cast
alternative but default to the cast one.
Stop Lotus5-opencl auto-tune from overflowing on fast devices.
Lotus5-opencl, auto-tune limit.
README-OPENCL update.
Common OpenCL auto-tune: Temporary changes to handle auto-tune with
GPU-side mask. See #1136.
Common OpenCL code messed around with bench_running flag, this lead to
problems and should no longer be needed anyway.
mask.c: Allow actually using some other mask than options.mask
(possibly for auto-tune or benchmark).
Fix search/replace mistakes in comments in OpenCL MD4.
encoding_data.h: CP720 had (lack of) case conversion incorrectly
specified. Closes #1158.
Support fallback to older clang syntax for Address Sanitizer.
Fix a segfault when --users option resulted in no hashes loaded, and
an encoding was used. Closes #1164.
Prince format lacked some length checks. Closes #1163.
Fix a "theoretical" bug (ASan) in Prince. Closes #1162.
Fix alignment issues. Closes #1133.
Fix a bad bug introduced by f6af7d7: --show=left was broken for all
formats but dynamic. Closes #1130.
Refactor salt() -> get_salt() and binary -> get_binary() in most
(Jumbo) formats that did not already use those names.
Do not allow negative numbers for --mkpc. Closes #1166.
Prefer posix_memalign() over aligned_alloc() as a work-around for an
ASan shortcoming. See #1159.
Complete the previous patch: Prefer posix_memalign() over
aligned_alloc() as a work-around for an ASan shortcoming. See #1159.
Comply with the strange restriction of aligned_alloc() that "size
should be a multiple of alignment".
Less intrusive implementation of --mkpc. We do not alter format's view
of max_keys_per_crypt, just cracker.c's. Closes #1167.
--mkpc is now a no-op for --test so do not allow it.
Disallow some options unless we are running a cracking mode.
Handle --mkpc in an even safer way. This handles the situation where
max_keys_per_crypt changes during a run.
Raw-sha1-ng and shared intrinsics code incorrectly reported using AVX,
while they actually use at most SSE4.1 if no XOP.
Change the dump_stuff() debug functions so they don't spew out
warnings.
Add a pseudo_intrinsics.h function, for abstracting intrinsics from
the actual vector width.
raw-sha512-ng: Use pseudo-intrinsics.
raw-sha256-ng: Use pseudo-intrinsics.
raw-sha1-ng: Use pseudo intrinsics.
Q'n'D fix for a problem with cprepair.
vtestz was not available on Travis' clang.
Fix regression problems with clang from recent patches.
Drop an extraneous paren from pseudo-intrinsics header.
Fix a benign bug in raw-sha1-ng
Drop an unused variable in raw-sha256-ng.
Fix an issue with non-AVX SSE4.1 or SSSE3 systems Closes #1180.
Fix incorrect function declarations for cmp_all() and cmp_one()
Drop experimental code for OMP_SCALE, closing #1181.
When we do not request membdg, really do not let it interfere with
anything at all. See #1125.
Fix for cross-compiles on OS X, using SSE4.1 but not AVX.
Add a parameter to configure, --enable-experimental-code, that sets
USE_EXPERIMENTAL macro. This way we can merge incomplete features
but have them disabled unless user asks for them.
Make it possible to leave Dynamic format out entirely from a build.
And do so by default for AVX2, unless the option
--enable-experimental-code was given to configure.
Fix for the AC handling of AVX2 vs Dynamic.
Use pseudo-intrinsics for sse-intrinsics.c, making nearly all
remaining SIMD formats AVX2/AVX512 capable.
Various fixes for AVX2.
Fix NT2 format for AVX2.
Drop SIMD_COEF_BITS and just divide by SIMD_COEF instead. The
optimizer will change it to a bit shift anyway and code gets easier
to understand.
Fix more hard-coded vector sizes. And set all the SSE_PARA's to 2 for
__AVX2__, for ironing out problems.
Wpapsk bugfixes for AVX2. Practically 2x boost over AVX.
Fix hardcoded SIMD width in Office format.
Hardcoded vector widths in Dynamic. Just the top of the iceberg. Now,
dynamic_30 works. Not many more of them...
Hardcoded vector width in alignment.
Finally nailed the MD5 problem for AVX2. Now all raw formats work.
Fix a load of hardcoded vector widths.
Fix algorithm names for AVX2/AVX512.
CPU_NAME -> SIMD_TYPE
More fixes for hardcoded vector width.
Fixed SAP/H width issues.
Fixed IPB and mscash2 width issues.
Fixed mysql-sha1 and nsldap width issues.
Slow workaround for Office format. I have yet to get the original
implementation to work with AVX2 - something is not right with the
width macros.
Vector width fix for md5crypt. But it still doesn't work.
Fix hardcoded vector widths in RAKP.
Fix hardcoded vector widths in salted-sha1.
Fix hardcoded vector widths in sunmd5. Still does not work with AVX2.
Fix hardcoded vector widths in SAP/B.
Fix regression problems from Lei's recent fix.
Finally fix the inherent problem with raw-sha1-linkedin's source(),
that would not cope with certain combinations of vector width and
interleaving, and also did not allow crippled test vectors.
Fix 64-bit index calculation for widths > 4.
Fix hmac-sha256 vector width.
Fix hard-coded widths SAP F/G format.
SunMD5, fix hard-coded vector widths. Closes #1191.
Oracle11, fix hard-coded vector widths. Closes #1190.
Finally nailed md5crypt vector width. Closes #1192.
It appears we can use same PARA values for AVX2 as for AVX.
Add a few more easter egg format classes: -form:avx, -form:avx2 and
-form:avx512.
Some cleanup in pseudo_intrinsics.h, and an optimization for MIC
emulation of _mm512_loadu_si512() that should do lots of good in
most cases.
pseudo-intrinsics.h cosmetical/whitespace/comments.
sse-intrinsics.c whitespace/comments cleanup. And finally drop the old
80x4 SHA1 that we stopped using long ago.
Dynamic: Change a few hardcoded width figures to correct formulas.
These changes make a few more formats pass self-test. See #1189.
Width fixes in Dynamic. See #1189.
Algorithm name tweaks.
Minor algorithm name fixes.
More algorithm name fixes. We are not displaying "block loops", it's
just confusing.
More algorithm name fixes. Some were completely backwards.
It turns out I'm the one who was backwards w/ algorithm names.
Last bunch of fixes to algorithm names.
Yet some algorithm name fixes.
Drop confusing mentions of "sse2" in config. Closes #1193.
Add an ifdef'ed out scalar version of vtranspose_epi32() (in the AVX2
section) for reference and benchmarking. See #1201.
The _mm*_i32gather_epi32() intrinsic has different parameters for
different architectures:
Cleanups for raw-sha1-ng. Drop vtranspose_epi32 from
pseudo-intrinsics.h and revert the 4x code to a format-local macro
with its original name. Also re-write some ugly width-dependent code
to be more canonical and fix some white space problems.
Separate int128.h from mpz_int128.h, and fix raw-sha1-ng in that
regard.
Add some documentation about AVX2 vs. Dynamic format.
Auto-disable dynamic format for k1om (MIC) also.
AVX2 fixes for 32-bit builds. See #1205.
Fix for legacy generic build after AVX2 support was added.
Fixes for generic builds.
Fixes for generic. See #1205.
Some plugins could not just be deleted, so make them non-plugs. Closes
#1170.
Drop the binary plugin interface that no-one uses. Closes #1124.
Fix a typo in configure.ac
Allow building with no plugins present. Closes #1207.
Add some documentation about how to disable AVX2.
Autoconf: Add support for detecting AVX512. Also fixes a bug with XOP
erroneously regarded as better as AVX2.
Autoconf: Move the OS X as(1) quirk prior to all feature tests.
Autoconf: Do not test for AVX512 unless we have AVX2.
Drop dupe macros from pseudo_intrinsics.h and tweak non-XOP rotates.
Cosmetic change (unify code) to pseudo_intrinsics.h.
wordlist.c: Use pseudo-intrinsics for SIMD mgetl().
Fix a bug in vroti_epi16() (which is not used yet anyway).
sse-intrinsics.c: Implement the "MD4/5 common XOR" but leave it
defined out since it seems to be slower no matter how I do it
(reason yet to be examined).
MD5: 9% boost just by moving code around (this was with gcc 4.8.2 and
AVX2)
Pseudo-intrinsics tweaks for AVX2.
Change a few int's to unsigned in sse-intrinsics.c. 1% boost in eg.
wpapsk and md5crypt.
Revert some intrinsics tweaks that had dubious benefit.
OpenCL RC4: Use restrict pointers.
Autoconf: Detect AVX512BW as well.
AC: Assume that there's no point in testing for AVX512BW unless we
found AVX512F.
AC: Same as previous commit but for cross compiles.
Drop a vim swap file accidentally added in 2f8bc4871
Correct some algorithm names.
Fix the length stuffing in dynamic, taking us a good bit closer to
AVX2+ support. See #1189.
Fix more hardcoded width crap in Dynamic. See #1189.
Cruical AVX2+ fix for dynamic. Fixes most (all?) segfaults but some
formats still fail self-test. See #1189.
Yet another bunch of width fixes in dynamic. See #1189.
Possibly the last bunch of width fixes in dynamic. Closes #1189.
Do not disable dynamic format for AVX2 anymore. Closes #1189.
Drop obsolete dynamic vs. AVX2 notices.
Dynamic, change lots of variables to unsigned, enabling optimizations.
Ensure unsigned divisions with SIMD_COEF_32/64 for faster code.
Major white-space clean-up to common-opencl.[ch] First: indent -kr
-i4 -ts4 -nlp -nbbo -ncs -l79 -lc79 -bad -il0 common-opencl.[ch] and
then: astyle --style=kr -t4 -U -H -p -xC79 -c -k3 -z2
common-opencl.[ch]
Fix a bug in --list=opencl-devices that caused "Max clock (MHz)" to
show a totally bogus number on some (rare) devices.
Drop obsolete header from wordlist.c (we now use pseudo- intrinsics.h)
Fix a logic error in #ifdefs for including mman.h. This should close
#1214. It's strange we did not get complaints on many systems.
Add an experimental clone of raw-md5 that uses flat buffers for SIMD.
For now it uses Tavis' SSE set_key() from his raw-sha1-ng format,
but this will be dropped in favor of some upcoming code in
sse-intrinsics.c. See #1220.
Reformat Jim's unreadable 650-column wide comments in
see-intrinsics-load-flags.h, and add a few more flags (yet to be
actually implemented) to the enum. See #1220.
Bug fixes for raw-md5-flat. And drop the SIMD set_key().
Fix mixed declarations and code in pseudo-intrinsic.h
Fix memdbg for alignments larger than 16. Also fixes some other minor
problems (warnings). Closes #1200.
Always define _DEFAULT_SOURCE when defining _BSD_SOURCE. Closes #1227.
pkzip: Fix a cast that could lead to undefined behavior from
overflowing signed integer. Closes #1232.
OMP_SCALE tweak for raw-md5.
Promote "nt2" to be main "NT" format. Rename old "NT" to "NT-old".
Closes #1226.
NT OpenMP overhaul. This format should not run in HT threads.
listconf.c: Always call fmt_init() now that OpenCL formats are fixed.
03404dfd broke for any system using gcc but not glibc. Just comment it
out for now.
Fix a bug in pp.c where munmap() was called even when we do not
HAVE_MMAP. And add a warning notice when building without mmap.
AC: Change the way we look for mmap(). Closes #1214.
Add a format_all_done() for silencing memory leak checkers. Closes
#1244.
Fix a gigantic memory leak in dynamic when using --show and an input
file containing many different formats. See #1244.
Fix minor memory leaks in dual-use formats. See #1244.
Define _POSIX_SOURCE for glibc builds, for exposing fileno(3).
Let AC handle definition of _POSIX_SOURCE. Closes #1263.
Add a self-test fail for get_key() returning NULL.
Improve StatusShowCandidates so it logs the exact candidate number for
a crack. Screen output will still be rounded up to batch size.
Closes #1269.
memdbg: Fix alignment up to sizeof(vtype) for 32-bit builds. Closes
#1270.
memdbg: We were adding too much padding for 32-bit. It worked but was
wasteful. See #1270.
Revert "crypt-descrypt: for length-13, we never disable, since they
are in ST code"
Fix the slow AVX2 bug workaround in Office 2013 and add other
optimizations to boot. 65% speedup for -cost=2013:2013 (and now an
actual 2x speedup over AVX). Also hopefully fixes latent bugs with
interleaving.
Stop requiring libz. It's only needed for pkzip format and gpg2john.
Add some missing codepages to opencl_unicode.h
DMG (debug): Use fcntl locks if we have it.
Update .travis.yml
Update README.mozilla for mozilla-ng format
Update INSTALL-UBUNTU for latest rexgen (and drop obsolete libs).
Drop some artifacts from old MMX support.
Drop @Z_LIBS@ from Makefile.in - or it will be added either twice or
when not appropriate.
Revert "Drop @Z_LIBS@ from Makefile.in - or it will be added either"
Fix OS X as(1) workaround in cases where CC is not "gcc". Closes
#1293.
Minor and cosmetic tweaks for raw-sha1-ng.
krb5pa-sha1 formats: Salt cleansing, for pot sync to work properly.
Fix OpenSSL/CommonCrypto output. Closes #1299.
options.c: Bail with error if an invalid field separator char (eg.
multi-byte character) is used.
Reduce scope of a pot-sync variable.
sunmd5: Fix #1301 and also implement various changes for OpenMP that
was discussed on john-dev.
Fix a repeated bug in many SIMD formats that had min_keys_per_crypt
set to 1 or to SIMD_COEF without para multiplier. It's supposed to
be set to whatever number is calculated at minimum, so for SIMD
formats it should be (SIMD_COEF * SIMD_PARA).
OMP_SCALE tune for sha1crypt. See #1303. Higher numbers may be
slightly better but impacts self-test duration too much.
Work around AES-NI problems with 32-bit builds.
Fix misaligned return from binary() in IPB2 and Lotus5. Closes #1291,
closes #1304.
Add struct alignment in sunmd5 that was missed in 7910681c
gpg2john: implicit int declaration.
Add another solution to #1093. This make it possible to build using
gcc 5 without --std=gnu89 (although I kept the latter for now). See
also #1250.
ALWAYS_INLINE: Revert last commit and implement a different solution.
See #1093.
keyring: Alloc a huge buffer instead of trying to create it on stack.
Works around a problem on some 32-bit builds and does not affect
speed anyway. Closes #1292.
pufferfish: Fix incorrect source file permissions.
Add missing FORMAT_NAME for streebog formats.
Stribog: Properly emulate epi64 intrinsics for 32-bit builds. And
disable format completely unless SSE4.1 is available. Tested on
32-bit OSX. Closes #1331.
Sledge-hammer bodge for pp.c fileno() warning in Cygwin.
Default to not enable OpenMP for fast formats. Closes #1325.
Fix Pomelo algorithm_name for SSE2 case. I believe the format uses
SSE2 in single-hash calculation, so it says 1x.
Stribog formats use SSE4.1, but not for doing several hashes in
parallel. So change algo to 1x.
Do not treat SHA256/512-ng formats as "fast" ones when it comes to
OpenMP.
truecrypt_volume2john: Add a missing LF
Revert "Sledge-hammer bodge for pp.c fileno() warning in Cygwin."
Repeats16/32: Increment char before length (b will now come before
aa). This greatly benefits formats where length variations cause
thread (or branch) divergence.
Fix a bug in rar2john for decoding non-ASCII filenames when stored in
compressed form. Did not affect crack, just meta data (eg. Single
mode).
Tweak error output in wpapcap2john.
wpapcap2john: Add some rigidity against bad input. Closes #1340.
Finally start defaulting to UTF-8. Closes #1215.
Pomelo: Drop some checks that are always false (unsigned < 0). Closes
#1343.
keystore2john: Drop some checks that are always false. Closes #1342.
Fix a problem with debug builds and gcc 5.x. Closes #1286.
Bump max length in GOST R 34.11-94 format. There's no reason for us to
artificially limit it. Also fix HMAC-GOST code (not yet used).
Stribog: Don't compare too much in cmp_all() - but on the other hand
*do* compare all of the hash in cmp_one().
Many formats: Don't compare too much in cmp_all(). There is a reason
we separate cmp_all() and cmp_one() for crying out loud. Hopefully
this Q'n'D fix compiles to a simple binary[0] == crypt_key[0] in
many cases.
BFEgg has a binary size less than 8, do not memcmp ARCH_SIZE.
mem_alloc_tiny(): If -DDEBUG or -DMEMDBG, never return better
alignment than requested (for triggering bugs). See #1195.
Truecrypt: Fix a debug code buffer that was undersized.
Fix non-AVX2 builds after the previous patch.
Add SIMD_PARA_SHA256/512 macros to mic.h and x86-sse.h.
Dynamic: SHA2 interleaving fixes.
Show SHA2 interleaving factor in algorithm names if applicable.
Do not use "pragma GCC optimize" for ASan builds.
SHA512 SIMD interleaving bug fix.
sha512crypt: Interleaving fixes. Tested with para 3 so far.
sha256crypt: Interleaving fixes and some unification with sha512crypt.
Tested with para 2 & 3 so far, and AVX & AVX2.
SHA2 interleaving fixes. More to come.
sse-intrinsics.c: Asan builds was unbearably slow without using
#pragma GCC optimize... To get that, use Asan and build with "make
debug".
Fix non-OpenMP build problems introduced with b96ed88f.
Add all aliases to --list=encodings, and fix bash completion for
multiple "or". Closes #1352.
HMAC-SHA2 formats, interleaving fixes (not complete).
XSHA512 interleaving fixes (not complete).
SHA2 interleaving fixes.
Drop redundant SHA256/512_BUF_SIZ macros. They are all 16 so we don't
need different ones.
SHA2 interleaving fixes.
AIX-SSHA512 bugfix.
SHA2 interleaving fixes.
Blackberry: Interleaving bugfix, and correct algorithm name.
rawSHA224/256 formats: Fix interleaving (now passes Test Suite).
rawSHA384/512 formats: Fix interleaving. Still fails but I'm pretty
sure the problem is in sse-intrinsics.c. Except I can't find any
problem there...
Fix a SHA512 interleaving bug in sse-intrinsics.c. Lei did the right
thing, then I blew it.
Interleaving bugfix in Drupal. Still doesn't work.
Final interleaving bugfixes in Drupal.
Interleaving bugfixes in MSSQL12
Interleaving bugfixes in XSHA512.
Minor regression fixes after SHA2 interleaving battle.
Add a testparas.sh script. See #1297.
testparas.sh LF and OMP fixes.
Refactor MD5_SSE_PARA -> SIMD_PARA_MD5 and so on. See #1217.
Pomelo and SunMD5: Fixes for non-SIMD builds.
SybaseASE: Handle truncated key length. See #1367.
Implement SSEi_FLAT_OUT for simpler format code. SHA512 and MIC may
hopefully use the new scatter instructions here.
Use new SSEi_FLAT_OUT in formats that did marshalling in caller.
Bump Keepass max. length to 125.
Fix a minor OMP_SCALE regression from 87fab5b.
sse-intrinsics.c missed LF on last line from 84bd73e0c. I've seen
compilers choke on that.
Use vscatter for SSEi_FLAT_OUT in MD4 and MD5 too.
Add codepage.pl as seen on john-users mailing list.
testparas.sh: Ensure using OMP_SCALE=1 while testing. Also change all
formats to use any existing OMP_SCALE if defined. This is for
automated testing (obviously not limited to testparas.sh).
Fix SSE2 vswap64() macro. We change in-place *and* return the result.
See #1373.
More #ifndef OMP_SCALE wrappers. Last one-liner wasn't good enough.
Add SIMD support to new Oracle 12c format.
sse-intrinsics.c: Wider interleaving loops, and as a result use
non-array temp variables. See #1217.
SHA1 intrinsics: Drop a whole array of redundant temp. We can use the
existing pad array! And decrease SHA1_PARA to 1 because that's
faster now.
Fix bug for SSEi_FLAT_IN introduced in b3fb17c7b, and drop yet another
temp variable. Closes #1375.
sse-intrinsics: Revert to using tmp[SIMD_PARA].
SHA512 intrinsics: Decrease the w[80] pad to w[16] using the same
sliding-window technique used in SHA1 and SHA256. Just a 3-4% boost
here but may gain more on some systems. See #1217.
Unify SHA256 and SHA512 intrinsics. Effectively a no-op, but simpler
code. See #1217.
Add an EMMS at HDAA MMX function exit (icc warned about it).
Mute a warning from some compilers about see-intrinsics cast.
Intrinsics: Safer casting (union) between vtype and integer.
Replace testparas.sh with testparas.pl, with Markdown table output,
ready for pasting in GitHub.
Add non-OMP figures in testparas.pl
Improve testparas.pl for quicker run and real non-OMP figures. This is
very hacky but does the job.
krb5pa-md5: Improve comments on input format.
Keepass: Avoid a compiler bug related to SALT_ALIGN. Closes #1284.
Add CRC-32C format with SSE4.2 support, just for trying it out. See
#1379.
Use a unique tag for CRC-32C.
Re-enable SIMD for Truecrypt/SHA512. Closes #1421.
Fix a bug in last commit spotted just by review. We need test vectors
for this! See #1421.
Add error handling for keyfile operations in truecrypt.
doc/MASK: Fix a typo and do not use tabs.
Drop the separate CRC-32C format (CRC-32 format now hosts both).
Drop the recently introduced Lineage format. It wasn't ready.
Add "cost" support to CRC-32 format, mainly to facilitate benchmarking
CRC-32C separately (using --cost=1).
Whitespace/cosmetic in raw-md4-opencl
Add GPU-side mask mode to raw-md5.
Drop some obsolete/redundant stuff from CRC32 format.
Tweaks to README.md: Slightly smaller heading, put license last.
Fix a segfault in some OpenCL formats when ran after another.
raw-sha512-opencl: Fix re-init bugs.
Fix for plugins that are #ifdef _OPENMP (they were never included).
OpenCL formats: Fix a problem with --list where fmt_done() is called
without create_clobj() being called first. Closes #1237.
Drop an old kludge for nvidia rotates and fix weirdness in pwsafe code
(cosmetical).
Core merge for Makefile.legacy. Git lost track of the connection with
master:src/Makefile after some screw-ups we did in the past.
Update rexgen.h for latest librexgen.
Support Tera prefix for C/s numbers.
Revert bogus change of raw-md5-opencl format tag, plus some minor
(cosmetic) fixes.
Add generic pbkdf2-hmac-md5 OpenCL format.
Add SIMD support to pbkdf2-hmac-md5. Closes #1446.
Add 1000x test vectors to pbkdf2-hmac-md5.
OpenCL raw-md4/5 formats: Correction for assert.h, it was given in
quotes instead of brackets.