pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/security/john



Module Name:    pkgsrc
Committed By:   leot
Date:           Sat Aug  8 02:09:01 UTC 2020

Modified Files:
        pkgsrc/security/john: Makefile PLIST distinfo
        pkgsrc/security/john/patches: patch-aa patch-ab
Added Files:
        pkgsrc/security/john/patches: patch-src_logger.c

Log Message:
john: Update to 1.9.0

pkgsrc changes:
 - Document all the patches
 - Honors user's CFLAGS and don't remove -Wall from CFLAGS in patch-aa: they are
   usually pretty useful
 - Unset OPT_{NORMAL,INLINE} optimizations via MAKE_FLAGS to minimize patch-aa
 - Remove not needed NO_CONFIGURE
 - Use pre-configure as stage for SUBST (now that NO_CONFIGURE is removed)

Changes:
The following changes have been made between John 1.8.0 and 1.9.0:

* Increased the interleaving for bcrypt on x86-64 from 2x to 3x for a major
speedup on CPUs without SMT.  Unfortunately, this sometimes results in a minor
performance regression when running multiple threads on CPUs with SMT.
* Recognize the $2b$ bcrypt prefix.
* In the generic crypt(3) format, detect descrypt with valid vs. invalid salts
as separate id's for our heuristics on supported hash types.
* Introduced a number of optimizations for faster handling of large password
hash files, including loading, cracking, and "--show".  Some of these use more
memory than before, yet in a more efficient manner.
* Benchmark using all-different candidate passwords of length 7 by default.
* Dropped undocumented special handling of "Mc" in 'c' and 'C' rule commands.
* Dropped undocumented limitation of the 'M' and 'Q' rule commands where they
would sometimes memorize/check only up to the current hash type's length limit
yet this optimization wouldn't necessarily be transparent (e.g., if a later
command would extract a substring from above the hash type's length limit and
bring it to within the limit).
* Implemented special-case handling of repeated rule commands '$', '^', '[',
']', '{', and '}', as well as faster handling of the 'D' command.
* When built with "--fork" support, disallow session names with all-digit
suffixes since these clash with those produced by "--fork".
* Forward SIGTERM to --fork'ed children.
* Set stdout to line buffered (rather than potentially fully buffered), except
for "--stdout", "--show", and auxiliary programs such as "unshadow".
* On Windows, restore normal processing of Ctrl-C in case our parent (such as
Johnny the GUI) had disabled it.
* Added linux-x86*-avx512 and linux-x86*-avx2 make targets, which use
respectively AVX-512 and AVX2 for bitslice DES.
* Added linux-mic make target for Intel MIC (first generation Xeon Phi, aka
Knights Corner), which uses its 512-bit SIMD intrinsics for bitslice DES.
(For second generation Xeon Phi, aka Knights Landing, use linux-x86-64-avx512.)
* Added linux-arm64le, linux-arm32le-neon, and linux-arm32le make targets.
(The first two of these make use of ASIMD or NEON for bitslice DES.)
* Added linux-sparc64 make target.
* Made a minor optimization to MMX and SSE2 assembly code for LM hash.
* Dropped Ultrix and SCO support.
* Don't probe for alternate config file names (like john.ini when on Unix).
* "DokuWiki" external mode sample has been added to the default john.conf.
* Fixed operator precedence in the external mode compiler to be the same as C.
* Fixed an out of bounds write bug in the external mode virtual machine.
* Fixed a bug introduced in version 1.7.4 in the wordlist rules engine, where
some sequences of rule commands could overflow a word buffer.
* Fixed a bug where unaligned access SSE/AVX instructions would unnecessarily
be generated by GCC 4.6+ in the bitslice DES code in non-OpenMP builds.
* Fixed a bug where "Warning: no OpenMP support for this hash type" could be
printed in "--stdout" mode.
* Made assorted other bugfixes, portability and documentation enhancements.


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 pkgsrc/security/john/Makefile
cvs rdiff -u -r1.4 -r1.5 pkgsrc/security/john/PLIST
cvs rdiff -u -r1.15 -r1.16 pkgsrc/security/john/distinfo
cvs rdiff -u -r1.9 -r1.10 pkgsrc/security/john/patches/patch-aa
cvs rdiff -u -r1.2 -r1.3 pkgsrc/security/john/patches/patch-ab
cvs rdiff -u -r0 -r1.1 pkgsrc/security/john/patches/patch-src_logger.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/security/john/Makefile
diff -u pkgsrc/security/john/Makefile:1.28 pkgsrc/security/john/Makefile:1.29
--- pkgsrc/security/john/Makefile:1.28  Sun Jan 26 17:32:03 2020
+++ pkgsrc/security/john/Makefile       Sat Aug  8 02:09:01 2020
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.28 2020/01/26 17:32:03 rillig Exp $
+# $NetBSD: Makefile,v 1.29 2020/08/08 02:09:01 leot Exp $
 #
 
-DISTNAME=      john-1.8.0
+DISTNAME=      john-1.9.0
 CATEGORIES=    security textproc
-MASTER_SITES=  http://www.openwall.com/john/j/
+MASTER_SITES=  http://www.openwall.com/john/k/
 EXTRACT_SUFX=  .tar.xz
 
 MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
@@ -11,7 +11,6 @@ HOMEPAGE=     https://www.openwall.com/john/
 COMMENT=       Unix Password Cracker
 LICENSE=       gnu-gpl-v2
 
-NO_CONFIGURE=  yes
 BUILD_DIRS=    src
 TEST_TARGET=   check
 
@@ -68,12 +67,17 @@ BUILD_TARGET=               generic
 BUILD_TARGET=          generic
 .endif
 
+# Avoid possible per-platform optimization
+MAKE_FLAGS+=   OPT_NORMAL=
+MAKE_FLAGS+=   OPT_INLINE=
+
 INSTALLATION_DIRS=     bin share/john
 
-SUBST_CLASSES+=                john
-SUBST_STAGE.john=      pre-build
-SUBST_FILES.john=      src/params.h
-SUBST_VARS.john=       PREFIX
+SUBST_CLASSES+=                        fix-paths
+SUBST_STAGE.fix-paths=         pre-configure
+SUBST_MESSAGE.fix-paths=       Fixing hardcoded paths.
+SUBST_FILES.fix-paths=         src/params.h
+SUBST_VARS.fix-paths=          PREFIX
 
 do-install:
        # programs and scripts
@@ -86,7 +90,8 @@ do-install:
        ${LN} -sf john ${DESTDIR}${PREFIX}/bin/${i}
 .endfor
        # data files
-.for i in ascii.chr digits.chr lm_ascii.chr password.lst
+.for i in alnum.chr alpha.chr ascii.chr digits.chr lm_ascii.chr lower.chr \
+    lowernum.chr lowerspace.chr upper.chr uppernum.chr password.lst
        ${INSTALL_DATA} ${WRKSRC}/run/${i} ${DESTDIR}${PREFIX}/share/john
 .endfor
 

Index: pkgsrc/security/john/PLIST
diff -u pkgsrc/security/john/PLIST:1.4 pkgsrc/security/john/PLIST:1.5
--- pkgsrc/security/john/PLIST:1.4      Sun Sep 14 13:20:08 2014
+++ pkgsrc/security/john/PLIST  Sat Aug  8 02:09:01 2020
@@ -1,11 +1,18 @@
-@comment $NetBSD: PLIST,v 1.4 2014/09/14 13:20:08 shattered Exp $
+@comment $NetBSD: PLIST,v 1.5 2020/08/08 02:09:01 leot Exp $
 bin/john
 bin/mailer
 bin/unafs
 bin/unique
 bin/unshadow
+share/john/alnum.chr
+share/john/alpha.chr
 share/john/ascii.chr
 share/john/digits.chr
 share/john/john.conf
 share/john/lm_ascii.chr
+share/john/lower.chr
+share/john/lowernum.chr
+share/john/lowerspace.chr
 share/john/password.lst
+share/john/upper.chr
+share/john/uppernum.chr

Index: pkgsrc/security/john/distinfo
diff -u pkgsrc/security/john/distinfo:1.15 pkgsrc/security/john/distinfo:1.16
--- pkgsrc/security/john/distinfo:1.15  Wed Nov  4 01:17:47 2015
+++ pkgsrc/security/john/distinfo       Sat Aug  8 02:09:01 2020
@@ -1,8 +1,9 @@
-$NetBSD: distinfo,v 1.15 2015/11/04 01:17:47 agc Exp $
+$NetBSD: distinfo,v 1.16 2020/08/08 02:09:01 leot Exp $
 
-SHA1 (john-1.8.0.tar.xz) = 423901b9b281c26656234ee31b362f1c0c2b680c
-RMD160 (john-1.8.0.tar.xz) = fda9971cd78bdf2b5154586efde2504c9a5974a4
-SHA512 (john-1.8.0.tar.xz) = e2820ecabd7ea4c7404c3d40f064994d0f5746b093c859a58fbf2588492ebcef411d9f3088c8e8ee726284ead969e26fdae834cdae3eb2d32408fc79ed906543
-Size (john-1.8.0.tar.xz) = 4468704 bytes
-SHA1 (patch-aa) = 15ba3d70444435c6705f189b32af109e1f211ff4
-SHA1 (patch-ab) = 4f8c9e1bba14f64b651c6d08337f004a3e278e44
+SHA1 (john-1.9.0.tar.xz) = 5e15e41adb96768cb1ea05af1b3128059df842df
+RMD160 (john-1.9.0.tar.xz) = 16114db2fe5004ce4044a2d56b46ef209b941dc4
+SHA512 (john-1.9.0.tar.xz) = 26e9a245e9f050344ae8c3320e1e24dad6bc2b73e99cc041a50c2d124b2c898c93d048727451ab8a2ba1c8aa4d8d462a8c0c9fea7de39f3479a0c170a5e9ad60
+Size (john-1.9.0.tar.xz) = 8944932 bytes
+SHA1 (patch-aa) = 8bc111b75bb848f7373f339c77075886e0c54098
+SHA1 (patch-ab) = 7cce81d7692b556ee35b90912192ae48c5b98cc7
+SHA1 (patch-src_logger.c) = e97548fe857ee58da21cab2d763155360b70a964

Index: pkgsrc/security/john/patches/patch-aa
diff -u pkgsrc/security/john/patches/patch-aa:1.9 pkgsrc/security/john/patches/patch-aa:1.10
--- pkgsrc/security/john/patches/patch-aa:1.9   Sun Sep 14 13:20:08 2014
+++ pkgsrc/security/john/patches/patch-aa       Sat Aug  8 02:09:01 2020
@@ -1,23 +1,20 @@
-$NetBSD: patch-aa,v 1.9 2014/09/14 13:20:08 shattered Exp $
+$NetBSD: patch-aa,v 1.10 2020/08/08 02:09:01 leot Exp $
 
---- src/Makefile.orig  2013-05-29 23:21:25.000000000 +0000
+Honors user's {C,LD}FLAGS and do not strip.
+
+--- src/Makefile.orig  2019-04-10 16:53:34.000000000 +0000
 +++ src/Makefile
-@@ -28,14 +28,13 @@ OMPFLAGS =
- #OMPFLAGS = -fopenmp -D_FORTIFY_SOURCE=0
+@@ -30,11 +30,11 @@ OMPFLAGS =
+ #OMPFLAGS = -openmp
  # Sun Studio with OpenMP (set the OMP_NUM_THREADS env var at runtime)
  #OMPFLAGS = -xopenmp
--CFLAGS = -c -Wall -Wdeclaration-after-statement -O2 -fomit-frame-pointer $(OMPFLAGS)
-+CFLAGS = -c $(OMPFLAGS)
+-CFLAGS = -c -Wall -O2 -fomit-frame-pointer $(OMPFLAGS)
++CFLAGS += -c -Wall $(OMPFLAGS)
  # CFLAGS for use on the main john.c file only
  CFLAGS_MAIN = $(CFLAGS)
  ASFLAGS = -c $(OMPFLAGS)
 -LDFLAGS = -s $(OMPFLAGS)
--OPT_NORMAL = -funroll-loops
--# Remove the "-Os" if you're using an ancient version of gcc
--OPT_INLINE = -Os -funroll-loops -finline-functions
-+LDFLAGS += -s $(OMPFLAGS)
-+OPT_NORMAL =
-+OPT_INLINE =
- 
- JOHN_OBJS = \
-       DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o \
++LDFLAGS += $(OMPFLAGS)
+ OPT_NORMAL = -funroll-loops
+ # Remove the "-Os" if you're using an ancient version of gcc
+ OPT_INLINE = -Os -funroll-loops -finline-functions

Index: pkgsrc/security/john/patches/patch-ab
diff -u pkgsrc/security/john/patches/patch-ab:1.2 pkgsrc/security/john/patches/patch-ab:1.3
--- pkgsrc/security/john/patches/patch-ab:1.2   Mon Dec 13 10:32:35 2010
+++ pkgsrc/security/john/patches/patch-ab       Sat Aug  8 02:09:01 2020
@@ -1,8 +1,10 @@
-$NetBSD: patch-ab,v 1.2 2010/12/13 10:32:35 wiz Exp $
+$NetBSD: patch-ab,v 1.3 2020/08/08 02:09:01 leot Exp $
 
---- src/params.h.orig  2010-06-14 02:38:55.000000000 +0000
+Use @PREFIX@ instead of hardcoding /usr.
+
+--- src/params.h.orig  2019-04-12 01:00:35.000000000 +0000
 +++ src/params.h
-@@ -51,15 +51,15 @@
+@@ -75,15 +75,15 @@
   * notes above.
   */
  #ifndef JOHN_SYSTEMWIDE
@@ -21,18 +23,19 @@ $NetBSD: patch-ab,v 1.2 2010/12/13 10:32
  #endif
  #define JOHN_PRIVATE_HOME             "~/.john"
  #endif
-@@ -103,8 +103,8 @@
- /*
+@@ -136,9 +136,9 @@
   * File names.
   */
+ #ifdef __DJGPP__
+-#define CFG_FULL_NAME                 "$JOHN/john.ini"
++#define CFG_FULL_NAME                 "@PREFIX@/share/john/john.ini"
+ #else
 -#define CFG_FULL_NAME                 "$JOHN/john.conf"
--#define CFG_ALT_NAME                  "$JOHN/john.ini"
-+#define CFG_FULL_NAME                 "@PREFIX@/share/john/john.conf"
-+#define CFG_ALT_NAME                  "@PREFIX@/share/john/john.ini"
++#define CFG_FULL_NAME                 "@PREFIX@/share/john/john.ini"
+ #endif
  #if JOHN_SYSTEMWIDE
- #define CFG_PRIVATE_FULL_NAME         JOHN_PRIVATE_HOME "/john.conf"
- #define CFG_PRIVATE_ALT_NAME          JOHN_PRIVATE_HOME "/john.ini"
-@@ -118,7 +118,7 @@
+ #ifdef __DJGPP__
+@@ -156,7 +156,7 @@
  #endif
  #define LOG_SUFFIX                    ".log"
  #define RECOVERY_SUFFIX                       ".rec"

Added files:

Index: pkgsrc/security/john/patches/patch-src_logger.c
diff -u /dev/null pkgsrc/security/john/patches/patch-src_logger.c:1.1
--- /dev/null   Sat Aug  8 02:09:01 2020
+++ pkgsrc/security/john/patches/patch-src_logger.c     Sat Aug  8 02:09:01 2020
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_logger.c,v 1.1 2020/08/08 02:09:01 leot Exp $
+
+Properly define _XOPEN_SOURCE.
+
+--- src/logger.c.orig  2015-05-31 06:38:14.000000000 +0000
++++ src/logger.c
+@@ -8,7 +8,7 @@
+  * There's ABSOLUTELY NO WARRANTY, express or implied.
+  */
+ 
+-#define _XOPEN_SOURCE /* for fileno(3) and fsync(2) */
++#define _XOPEN_SOURCE 500 /* for fileno(3) and fsync(2) */
+ 
+ #define NEED_OS_FLOCK
+ #include "os.h"



Home | Main Index | Thread Index | Old Index