git: 4b7f7b97f1ff - main - security/john: belatedly update JtR to version 1.9.0-jumbo-1

From: Alexey Dokuchaev <danfe_at_FreeBSD.org>
Date: Fri, 26 Nov 2021 07:35:31 UTC
The branch main has been updated by danfe:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4b7f7b97f1fffa5b008504c7255289f5a2948ba2

commit 4b7f7b97f1fffa5b008504c7255289f5a2948ba2
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2021-11-26 07:34:18 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2021-11-26 07:34:25 +0000

    security/john: belatedly update JtR to version 1.9.0-jumbo-1
    
    Despite what Solar Designer had said earlier, community enhancements
    were not offered as separate patch, so the top comment about JUMBO
    option still stands.
    
    Because supported SIMD features are detected during configure, force
    SSE2 for x86 packages as reasonable default which most modern CPUs
    should support these days.  Ideally we should probably do several build
    rounds and produce binaries targeting different SIMD features (e.g.
    like Arch Linux is doing this), but that's the task for another day.
    
    Actualize the lists of binaries and symlinks (some programs had become
    standalone, others had been converted to scripts offered as extras).
    
    Drop BROKEN_mips64: it was added in r425682 five years ago for a
    different version, since then similar breakage for aarch64 had been
    fixed, and looking at the configure script, mips64 should be supported
    (even if it's really not, that particular error message is no longer
    accurate per grepping the sources).
    
    Adjust LICENSE (GPLv2 or later) and fix the build with OpenCL support.
    
    PR:     247229, 254922
---
 security/john/Makefile                           |  75 +++---
 security/john/distinfo                           |   6 +-
 security/john/files/patch-Makefile.in            |  61 -----
 security/john/files/patch-Makefile.legacy        | 114 ---------
 security/john/files/patch-bitcoin__fmt__plug.c   | 134 -----------
 security/john/files/patch-dmg__fmt__plug.c       | 156 -------------
 security/john/files/patch-encfs__fmt__plug.c     | 113 ---------
 security/john/files/patch-git-4442241b4c         | 253 ++++++++++++++++++++
 security/john/files/patch-git-4f5f6fc8dc         |  14 ++
 security/john/files/patch-gpg__fmt__plug.c       | 117 ----------
 security/john/files/patch-john.c                 |  31 ---
 security/john/files/patch-jumbo.c                |  26 ---
 security/john/files/patch-jumbo.h                |  13 --
 security/john/files/patch-rar__fmt__plug.c       | 254 --------------------
 security/john/files/patch-truecrypt__fmt__plug.c |  13 --
 security/john/files/patch-unrar.c                |  25 --
 security/john/files/patch-unrar.h                |  25 --
 security/john/files/patch-wordlist.c             |  14 --
 security/john/files/patch-wpapsk.h               |  62 -----
 security/john/pkg-plist                          | 285 +++++++++++++++++++++--
 20 files changed, 570 insertions(+), 1221 deletions(-)

diff --git a/security/john/Makefile b/security/john/Makefile
index 722b1aab277c..3db81fb3ea75 100644
--- a/security/john/Makefile
+++ b/security/john/Makefile
@@ -3,19 +3,17 @@
 PORTNAME=	john
 # NB: starting from the next version, community-enhanced (jumbo) patch
 # should be offered as an option (suggested by Solar Designer himself).
-DISTVERSION=	1.8.0-jumbo-1
-PORTREVISION=	6
+DISTVERSION=	1.9.0-jumbo-1
 CATEGORIES=	security
 MASTER_SITES=	http://www.openwall.com/john/j/ \
 		http://mirrors.kernel.org/openwall/projects/john/${DISTVERSION:C/-.*//}/ \
 		http://distro.ibiblio.org/openwall/projects/john/${DISTVERSION:C/-.*//}/
+PATCH_STRIP=	-p2
 
 MAINTAINER=	danfe@FreeBSD.org
 COMMENT=	Featureful Unix password cracker
 
-LICENSE=	GPLv2
-
-BROKEN_mips64=	cannot detect CPU architecture
+LICENSE=	GPLv2+
 
 LIB_DEPENDS=	libgmp.so:math/gmp
 
@@ -26,42 +24,34 @@ CONFIGURE_ENV=	CFLAGS_EXTRA="-DJOHN_SYSTEMWIDE=1" \
 		OPENSSL_LIBS="-L${OPENSSLLIB} -lcrypto -lssl"
 SHEBANG_FILES=	../run/*.pl ../run/*.rb ../run/benchmark-unify ../run/relbench
 WRKSRC_SUBDIR=	src
-
 ALL_TARGET=	default
 
-BINARIES=	calc_stat cprepair genmkvpwd john luks2john mkvcalcproba \
-		raw2dyna SIPdump tgtsnarf uaf2john vncpcap2john wpapcap2john
+BINARIES=	SIPdump bitlocker2john calc_stat cprepair dmg2john \
+		eapmd5tojohn genmkvpwd hccap2john john keepass2john \
+		mkvcalcproba putty2john racf2john raw2dyna tgtsnarf \
+		uaf2john vncpcap2john wpapcap2john
 
-BINLINKS=	base64conv dmg2john gpg2john hccap2john keepass2john \
-		keychain2john keyring2john keystore2john kwallet2john \
-		putty2john pwsafe2john racf2john rar2john \
-		truecrypt_volume2john unafs undrop unique unshadow zip2john
+BINLINKS=	base64conv gpg2john rar2john unafs undrop unique \
+		unshadow zip2john
 
 PORTDOCS=	*
 
-OPTIONS_DEFINE=	DOCS #OPENMP
-#OPENMP_USES=	compiler:openmp
+OPTIONS_DEFINE=	DOCS OPENCL OPENMP
+OPTIONS_DEFAULT=	OPENMP
+OPTIONS_SUB=	yes
+
+OPENCL_BUILD_DEPENDS=	${LOCALBASE}/include/CL/opencl.h:devel/opencl
+OPENCL_LIB_DEPENDS=	libOpenCL.so:devel/ocl-icd
+OPENCL_CONFIGURE_OFF=	--disable-opencl
+OPENCL_USES=		perl5
+OPENCL_USE=		PERL5=build
 
-post-extract:
-	@${RM} ${WRKSRC}/pfx_fmt_plug.c ${WRKSRC}/rawSHA0_fmt_plug.c \
-		${WRKSRC}/ssh_fmt_plug.c \
+OPENMP_CONFIGURE_OFF=	--disable-openmp
 
 post-patch:
 	@${REINPLACE_CMD} -e 's|/usr|${PREFIX}|' ${WRKSRC}/params.h
-# Replace methods and types that were marked deprecated by OpenSSL 0.9.7
-# and removed in OpenSSL 1.1.0 and LibreSSL
-	@${REINPLACE_CMD} -e 's|des_string_to_key|DES_string_to_key|' \
-		${WRKSRC}/KRB4_fmt_plug.c
-	@${REINPLACE_CMD} -e 's|des_set_odd_parity|DES_set_odd_parity|' \
-		${WRKSRC}/KRB4_std_plug.c
-	@${REINPLACE_CMD} -e 's|C_Block|DES_cblock|' \
-		${WRKSRC}/efs_fmt_plug.c \
-		${WRKSRC}/gpg_fmt_plug.c \
-		${WRKSRC}/keychain_fmt_plug.c \
-		${WRKSRC}/mozilla_ng_fmt_plug.c \
-		${WRKSRC}/opencl_gpg_fmt_plug.c \
-		${WRKSRC}/opencl_keychain_fmt_plug.c \
-		${WRKSRC}/ssh_ng_fmt_plug.c
+	@${REINPLACE_CMD} -e '/^host_cpu=/s|$$| ; case $$host_cpu in\
+		amd64) host_cpu=x86_64 ;; esac|' ${WRKSRC}/configure
 
 do-install:
 .for b in ${BINARIES}
@@ -73,13 +63,28 @@ do-install:
 	@${MKDIR} ${STAGEDIR}${DATADIR}/extra
 	cd ${WRKSRC}/../run && ${INSTALL_DATA} *.chr *.conf *.lst \
 		${STAGEDIR}${DATADIR}
-	cd ${WRKSRC}/../run && ${INSTALL_DATA} *.?? benchmark-unify \
-		dictionary.rfc2865 john.*sh_completion mailer makechr \
-		relbench stats ${STAGEDIR}${DATADIR}/extra
+	cd ${WRKSRC}/../run && ${INSTALL_DATA} *.?? *.lua benchmark-unify \
+		dictionary.rfc2865 fuzz.dic john.*sh_completion mailer \
+		makechr oui.txt relbench stats ${STAGEDIR}${DATADIR}/extra
+	${CP} -a ${WRKSRC}/../run/rules ${STAGEDIR}${DATADIR}
+	cd ${WRKSRC}/../run && ${CP} -a dns lib ztex \
+		${STAGEDIR}${DATADIR}/extra
+	@${RM} ${STAGEDIR}${DATADIR}/extra/dns/README.txt
+
+do-install-OPENCL-on:
+	${CP} -a ${WRKSRC}/../run/kernels ${STAGEDIR}${DATADIR}
 
 do-install-DOCS-on:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	@${RM} ${WRKSRC}/../doc/COPYING
+	${MV} ${WRKSRC}/../doc/extras/* ${WRKSRC}/../*.md ${WRKSRC}/../doc
+	@${RMDIR} ${WRKSRC}/../doc/extras
+	@${RM} ${WRKSRC}/../doc/COPYING ${WRKSRC}/../doc/README
 	${INSTALL_DATA} ${WRKSRC}/../doc/* ${STAGEDIR}${DOCSDIR}
 
 .include <bsd.port.mk>
+
+.if defined(PACKAGE_BUILDING) || defined(BATCH)
+.  if ${ARCH} == amd64 || ${ARCH} == i386
+CONFIGURE_ARGS+=	--enable-simd=sse2
+.  endif
+.endif
diff --git a/security/john/distinfo b/security/john/distinfo
index 77b6f3fa322d..34ceb0ee2388 100644
--- a/security/john/distinfo
+++ b/security/john/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1418916028
-SHA256 (john-1.8.0-jumbo-1.tar.xz) = bac93d025995a051f055adbd7ce2f1975676cac6c74a6c7a3ee4cfdd9c160923
-SIZE (john-1.8.0-jumbo-1.tar.xz) = 23232492
+TIMESTAMP = 1557853453
+SHA256 (john-1.9.0-jumbo-1.tar.xz) = f5d123f82983c53d8cc598e174394b074be7a77756f5fb5ed8515918c81e7f3b
+SIZE (john-1.9.0-jumbo-1.tar.xz) = 33638768
diff --git a/security/john/files/patch-Makefile.in b/security/john/files/patch-Makefile.in
deleted file mode 100644
index cdeb0859413d..000000000000
--- a/security/john/files/patch-Makefile.in
+++ /dev/null
@@ -1,61 +0,0 @@
---- Makefile.in.orig	2014-12-18 13:53:53 UTC
-+++ Makefile.in
-@@ -84,8 +84,6 @@ JOHN_OBJS = \
- 	base64.o base64_convert.o \
- 	md4.o sha2.o \
- 	dynamic_fmt.o dynamic_parser.o dynamic_preloads.o dynamic_utils.o dynamic_big_crypt.o \
--	ssh2john.o \
--	pfx2john.o \
- 	unrarcmd.o unrarfilter.o unrarhlp.o unrar.o unrarppm.o unrarvm.o \
- 	rar2john.o \
- 	zip2john.o gladman_hmac.o gladman_pwd2key.o \
-@@ -132,10 +130,10 @@ GENMKVPWD_OBJS = \
- 	genmkvpwd.o mkvlib.o memory.o miscnl.o path.o memdbg.o
- 
- PROJ = ../run/john@EXE_EXT@ ../run/unshadow@EXE_EXT@ ../run/unafs@EXE_EXT@ ../run/unique@EXE_EXT@ ../run/undrop@EXE_EXT@ \
--	../run/ssh2john@EXE_EXT@ ../run/rar2john@EXE_EXT@ ../run/zip2john@EXE_EXT@ \
-+	../run/rar2john@EXE_EXT@ ../run/zip2john@EXE_EXT@ \
- 	../run/genmkvpwd@EXE_EXT@ ../run/mkvcalcproba@EXE_EXT@ ../run/calc_stat@EXE_EXT@ \
- 	../run/tgtsnarf@EXE_EXT@ ../run/racf2john@EXE_EXT@ ../run/hccap2john@EXE_EXT@ \
--	../run/pwsafe2john@EXE_EXT@ ../run/raw2dyna@EXE_EXT@ ../run/keepass2john@EXE_EXT@ ../run/pfx2john@EXE_EXT@ \
-+	../run/pwsafe2john@EXE_EXT@ ../run/raw2dyna@EXE_EXT@ ../run/keepass2john@EXE_EXT@ \
- 	../run/keychain2john@EXE_EXT@ ../run/keyring2john@EXE_EXT@ ../run/kwallet2john@EXE_EXT@ \
- 	../run/dmg2john@EXE_EXT@ ../run/putty2john@EXE_EXT@ ../run/uaf2john@EXE_EXT@ \
- 	../run/truecrypt_volume2john@EXE_EXT@ ../run/keystore2john@EXE_EXT@ ../run/wpapcap2john@EXE_EXT@ \
-@@ -305,18 +303,10 @@ miscnl.o: misc.c
- 	$(RM) ../run/undrop
- 	$(LN) john ../run/undrop
- 
--../run/ssh2john: ../run/john
--	$(RM) ../run/ssh2john
--	$(LN) john ../run/ssh2john
--
- ../run/putty2john: ../run/john
- 	$(RM) ../run/putty2john
- 	$(LN) john ../run/putty2john
- 
--../run/pfx2john: ../run/john
--	$(RM) ../run/pfx2john
--	$(LN) john ../run/pfx2john
--
- ../run/keepass2john: ../run/john
- 	$(RM) ../run/keepass2john
- 	$(LN) john ../run/keepass2john
-@@ -397,17 +387,9 @@ miscnl.o: misc.c
- 	$(CC) symlink.c -o ../run/undrop.exe
- 	$(STRIP) ../run/undrop.exe
- 
--../run/ssh2john.exe: symlink.c
--	$(CC) symlink.c -o ../run/ssh2john.exe
--	$(STRIP) ../run/ssh2john.exe
--
- ../run/putty2john.exe: symlink.c
- 	$(CC) symlink.c -o ../run/putty2john.exe
- 	$(STRIP) ../run/putty2john.exe
--
--../run/pfx2john.exe: symlink.c
--	$(CC) symlink.c -o ../run/pfx2john.exe
--	$(STRIP) ../run/pfx2john.exe
- 
- ../run/keepass2john.exe: symlink.c
- 	$(CC) symlink.c -o ../run/keepass2john.exe
diff --git a/security/john/files/patch-Makefile.legacy b/security/john/files/patch-Makefile.legacy
deleted file mode 100644
index 9ade7aeb1d4c..000000000000
--- a/security/john/files/patch-Makefile.legacy
+++ /dev/null
@@ -1,114 +0,0 @@
---- Makefile.legacy.orig	2014-12-18 07:59:02 UTC
-+++ Makefile.legacy
-@@ -127,8 +127,6 @@ JOHN_OBJS = \
- 	base64.o base64_convert.o \
- 	md4.o sha2.o \
- 	dynamic_fmt.o dynamic_parser.o dynamic_preloads.o dynamic_utils.o dynamic_big_crypt.o \
--	ssh2john.o \
--	pfx2john.o \
- 	unrarcmd.o unrarfilter.o unrarhlp.o unrar.o unrarppm.o unrarvm.o \
- 	rar2john.o \
- 	zip2john.o gladman_hmac.o gladman_pwd2key.o \
-@@ -209,10 +207,10 @@ GENMKVPWD_OBJS = \
- 	genmkvpwd.o mkvlib.o memory.o miscnl.o path.o memdbg.o
- 
- PROJ = ../run/john ../run/unshadow ../run/unafs ../run/unique ../run/undrop \
--	../run/ssh2john ../run/rar2john ../run/zip2john \
-+	../run/rar2john ../run/zip2john \
- 	../run/genmkvpwd ../run/mkvcalcproba ../run/calc_stat \
- 	../run/tgtsnarf ../run/racf2john ../run/hccap2john \
--	../run/pwsafe2john ../run/raw2dyna ../run/keepass2john ../run/pfx2john \
-+	../run/pwsafe2john ../run/raw2dyna ../run/keepass2john \
- 	../run/keychain2john ../run/keyring2john ../run/kwallet2john \
- 	../run/dmg2john ../run/putty2john john.local.conf ../run/uaf2john \
- 	../run/truecrypt_volume2john ../run/keystore2john ../run/wpapcap2john \
-@@ -220,30 +218,30 @@ PROJ = ../run/john ../run/unshadow ../run/unafs ../run
- PROJ_DOS = ../run/john.bin ../run/john.com \
- 	../run/unshadow.com ../run/unafs.com ../run/unique.com \
- 	../run/undrop.com \
--	../run/ssh2john.com ../run/rar2john.com ../run/zip2john \
-+	../run/rar2john.com ../run/zip2john \
- 	../run/racf2john.com ../run/hccap2john.com \
--	../run/pwsafe2john.com ../run/keepass2john.com ../run/pfx2john.com \
-+	../run/pwsafe2john.com ../run/keepass2john.com \
- 	../run/keychain2john.com ../run/keyring2john.com ../run/kwallet2john.com \
- 	../run/dmg2john.com ../run/putty2john.com john.local.conf \
- 	../run/gpg2john.com
- PROJ_WIN32 = ../run/john.exe \
- 	../run/unshadow.exe ../run/unafs.exe ../run/unique.exe \
- 	../run/undrop.exe \
--	../run/ssh2john.exe ../run/rar2john.exe ../run/zip2john.exe \
-+	../run/rar2john.exe ../run/zip2john.exe \
- 	../run/genmkvpwd.exe ../run/mkvcalcproba.exe ../run/calc_stat.exe \
- 	../run/racf2john.exe ../run/hccap2john.exe \
- 	../run/pwsafe2john.exe ../run/raw2dyna.exe ../run/keepass2john.exe \
--	../run/pfx2john.exe ../run/keychain2john.exe ../run/keyring2john.exe \
-+	../run/keychain2john.exe ../run/keyring2john.exe \
- 	../run/kwallet2john.exe ../run/dmg2john.exe ../run/putty2john.exe \
- 	john.local.conf ../run/gpg2john.exe ../run/base64conv.exe
- PROJ_WIN32_MINGW = ../run/john-mingw.exe \
- 	../run/unshadow.exe ../run/unafs.exe ../run/unique.exe \
- 	../run/undrop.exe \
--	../run/ssh2john.exe ../run/rar2john.exe ../run/zip2john.exe \
-+	../run/rar2john.exe ../run/zip2john.exe \
- 	../run/genmkvpwd.exe ../run/mkvcalcproba.exe ../run/calc_stat.exe \
- 	../run/racf2john.exe ../run/hccap2john.exe \
- 	../run/pwsafe2john.exe ../run/raw2dyna.exe ../run/keepass2john.exe \
--	../run/pfx2john.exe ../run/keychain2john.exe ../run/keyring2john.exe \
-+	../run/keychain2john.exe ../run/keyring2john.exe \
- 	../run/kwallet2john.exe ../run/putty2john.exe john.local.conf \
- 	../run/gpg2john.exe ../run/base64conv.exe
- PROJ_PCAP = ../run/SIPdump ../run/vncpcap2john
-@@ -2029,18 +2027,10 @@ $(SUBDIRS):
- 	$(RM) ../run/undrop
- 	ln -s john ../run/undrop
- 
--../run/ssh2john: ../run/john
--	$(RM) ../run/ssh2john
--	ln -s john ../run/ssh2john
--
- ../run/putty2john: ../run/john
- 	$(RM) ../run/putty2john
- 	ln -s john ../run/putty2john
- 
--../run/pfx2john: ../run/john
--	$(RM) ../run/pfx2john
--	ln -s john ../run/pfx2john
--
- ../run/keepass2john: ../run/john
- 	$(RM) ../run/keepass2john
- 	ln -s john ../run/keepass2john
-@@ -2114,15 +2104,9 @@ $(SUBDIRS):
- ../run/undrop.com: john.com
- 	copy john.com ..\run\undrop.com
- 
--../run/ssh2john.com: john.com
--	copy john.com ..\run\ssh2john.com
--
- ../run/putty2john.com: john.com
- 	copy john.com ..\run\putty2john.com
- 
--../run/pfx2john.com: john.com
--	copy john.com ..\run\pfx2john.com
--
- ../run/keepass2john.com: john.com
- 	copy john.com ..\run\keepass2john.com
- 
-@@ -2198,17 +2182,9 @@ john.com: john.asm
- 	$(CC) symlink.c -o ../run/undrop.exe
- 	$(STRIP) ../run/undrop.exe
- 
--../run/ssh2john.exe: symlink.c
--	$(CC) symlink.c -o ../run/ssh2john.exe
--	$(STRIP) ../run/ssh2john.exe
--
- ../run/putty2john.exe: symlink.c
- 	$(CC) symlink.c -o ../run/putty2john.exe
- 	$(STRIP) ../run/putty2john.exe
--
--../run/pfx2john.exe: symlink.c
--	$(CC) symlink.c -o ../run/pfx2john.exe
--	$(STRIP) ../run/pfx2john.exe
- 
- ../run/keepass2john.exe: symlink.c
- 	$(CC) symlink.c -o ../run/keepass2john.exe
diff --git a/security/john/files/patch-bitcoin__fmt__plug.c b/security/john/files/patch-bitcoin__fmt__plug.c
deleted file mode 100644
index 93c2045aeb8b..000000000000
--- a/security/john/files/patch-bitcoin__fmt__plug.c
+++ /dev/null
@@ -1,134 +0,0 @@
---- bitcoin_fmt_plug.c.orig	2014-12-18 07:59:02 UTC
-+++ bitcoin_fmt_plug.c
-@@ -15,33 +15,32 @@
-  * Thanks to Solar for asking to add support for bitcoin wallet files.
-  */
- 
--#include "arch.h"
--#include <openssl/opensslv.h>
--#if (AC_BUILT && HAVE_EVP_SHA512) || \
--	(!AC_BUILT && OPENSSL_VERSION_NUMBER >= 0x0090708f)
--
- #if FMT_EXTERNS_H
- extern struct fmt_main fmt_bitcoin;
- #elif FMT_REGISTERS_H
- john_register_one(&fmt_bitcoin);
- #else
- 
--#include <openssl/evp.h>
- #include <string.h>
-+#ifdef _OPENMP
-+#include <omp.h>
-+#ifndef OMP_SCALE
-+#define OMP_SCALE               1
-+#endif
-+static int omp_t = 1;
-+#endif
-+
-+#include "arch.h"
- #include "misc.h"
- #include "common.h"
- #include "formats.h"
- #include "params.h"
- #include "options.h"
- #include "sha2.h"
-+#include "aes/aes.h"
- #include "stdint.h"
- #include "johnswap.h"
- #include "sse-intrinsics.h"
--#ifdef _OPENMP
--#include <omp.h>
--#define OMP_SCALE               1
--static int omp_t = 1;
--#endif
- #include "memdbg.h"
- 
- #define FORMAT_LABEL		"Bitcoin"
-@@ -73,6 +72,7 @@ static int omp_t = 1;
- #endif
- 
- #define SZ 			128
-+#define PADDING		"\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10"
- 
- static struct fmt_tests bitcoin_tests[] = {
- 	/* bitcoin wallet hashes */
-@@ -265,10 +265,7 @@ static int crypt_all(int *pcount, struct db_salt *salt
- #endif
- 	{
- 		unsigned char output[SZ];
--		int fOk;
- 		SHA512_CTX sha_ctx;
--		EVP_CIPHER_CTX ctx;
--		int nPLen, nFLen;
- 		int i;
- 
- #ifdef MMX_COEF_SHA512
-@@ -316,6 +313,7 @@ static int crypt_all(int *pcount, struct db_salt *salt
- 		alter_endianity_to_BE64(key_iv, 6 * MAX_KEYS_PER_CRYPT);
- 
- 		for (index2 = 0; index2 < MAX_KEYS_PER_CRYPT; index2++) {
-+			AES_KEY aes_key;
- 			unsigned char key[32];
- 			unsigned char iv[16];
- 
-@@ -325,26 +323,21 @@ static int crypt_all(int *pcount, struct db_salt *salt
- 			for (i = 0; i < sizeof(iv)/sizeof(ARCH_WORD_64); i++)   // the derived iv
- 				((ARCH_WORD_64 *)iv)[i]  = key_iv[MMX_COEF_SHA512*(sizeof(key)/sizeof(ARCH_WORD_64) + i) + index2];
- 
--			/* NOTE: write our code instead of using following high-level OpenSSL functions */
--			EVP_CIPHER_CTX_init(&ctx);
--			fOk = EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, key, iv);
--			if (fOk)
--				fOk = EVP_DecryptUpdate(&ctx, output, &nPLen, cur_salt->cry_master, cur_salt->cry_master_length);
--			if (fOk)
--				fOk = EVP_DecryptFinal_ex(&ctx, output + nPLen, &nFLen);
--			EVP_CIPHER_CTX_cleanup(&ctx);
--			// a decrypted mkey is exactly 32 bytes in len; ossl has already checked the padding (16 0x0f's) for us
--			if (fOk && nPLen + nFLen == 32) {
-+			AES_set_decrypt_key(key, 256, &aes_key);
-+			AES_cbc_encrypt(cur_salt->cry_master, output, cur_salt->cry_master_length, &aes_key, iv, AES_DECRYPT);
-+
-+			if (!memcmp(output + 32, PADDING, 16)) {
- 				cracked[index + index2] = 1;
- #ifdef _OPENMP
- #pragma omp atomic
- #endif
- 				any_cracked |= 1;
- 			}
--
- 		}
- #else
-+		AES_KEY aes_key;
- 		unsigned char key_iv[SHA512_DIGEST_LENGTH];  // buffer for both the derived key and iv
-+
- 		SHA512_Init(&sha_ctx);
- 		SHA512_Update(&sha_ctx, saved_key[index], strlen(saved_key[index]));
- 		SHA512_Update(&sha_ctx, cur_salt->cry_salt, cur_salt->cry_salt_length);
-@@ -354,16 +347,11 @@ static int crypt_all(int *pcount, struct db_salt *salt
- 			SHA512_Update(&sha_ctx, key_iv, SHA512_DIGEST_LENGTH);
- 			SHA512_Final(key_iv, &sha_ctx);
- 		}
--		/* NOTE: write our code instead of using following high-level OpenSSL functions */
--		EVP_CIPHER_CTX_init(&ctx);
--		fOk = EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, key_iv, key_iv+32);
--		if (fOk)
--			fOk = EVP_DecryptUpdate(&ctx, output, &nPLen, cur_salt->cry_master, cur_salt->cry_master_length);
--		if (fOk)
--			fOk = EVP_DecryptFinal_ex(&ctx, output + nPLen, &nFLen);
--		EVP_CIPHER_CTX_cleanup(&ctx);
--		// a decrypted mkey is exactly 32 bytes in len; ossl has already checked the padding (16 0x0f's) for us
--		if (fOk && nPLen + nFLen == 32) {
-+
-+		AES_set_decrypt_key(key_iv, 256, &aes_key);
-+		AES_cbc_encrypt(cur_salt->cry_master, output, cur_salt->cry_master_length, &aes_key, key_iv + 32, AES_DECRYPT);
-+
-+		if (!memcmp(output + 32, PADDING, 16)) {
- 			cracked[index] = 1;
- #ifdef _OPENMP
- #pragma omp atomic
-@@ -471,5 +459,3 @@ struct fmt_main fmt_bitcoin = {
- };
- 
- #endif /* plugin stanza */
--
--#endif /* OpenSSL requirement */
diff --git a/security/john/files/patch-dmg__fmt__plug.c b/security/john/files/patch-dmg__fmt__plug.c
deleted file mode 100644
index 98100d98e32b..000000000000
--- a/security/john/files/patch-dmg__fmt__plug.c
+++ /dev/null
@@ -1,156 +0,0 @@
---- dmg_fmt_plug.c.orig	2014-12-18 07:59:02 UTC
-+++ dmg_fmt_plug.c
-@@ -56,7 +56,7 @@ john_register_one(&fmt_dmg);
- #include <stdlib.h>
- #include "stdint.h"
- #include <sys/types.h>
--#include <openssl/evp.h>
-+#include <openssl/des.h>
- #include <openssl/aes.h>
- #include <openssl/hmac.h>
- #include "filevault.h"
-@@ -413,42 +413,36 @@ static void *get_salt(char *ciphertext)
- 	return (void *)&cs;
- }
- 
--static int apple_des3_ede_unwrap_key1(unsigned char *wrapped_key, int wrapped_key_len, unsigned char *decryptKey)
-+static int apple_des3_ede_unwrap_key1(const unsigned char *wrapped_key, const int wrapped_key_len, const unsigned char *decryptKey)
- {
--	EVP_CIPHER_CTX ctx;
-+	DES_key_schedule ks1, ks2, ks3;
- 	unsigned char TEMP1[sizeof(cur_salt->wrapped_hmac_sha1_key)];
- 	unsigned char TEMP2[sizeof(cur_salt->wrapped_hmac_sha1_key)];
--	unsigned char CEKICV[sizeof(cur_salt->wrapped_hmac_sha1_key)];
- 	unsigned char IV[8] = { 0x4a, 0xdd, 0xa2, 0x2c, 0x79, 0xe8, 0x21, 0x05 };
--	int outlen, tmplen, i;
-+	int outlen, i;
- 
--	EVP_CIPHER_CTX_init(&ctx);
--	EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, decryptKey, IV);
--	if (!EVP_DecryptUpdate(&ctx, TEMP1, &outlen, wrapped_key, wrapped_key_len)) {
--		goto err;
--	}
--	if (!EVP_DecryptFinal_ex(&ctx, TEMP1 + outlen, &tmplen)) {
--		goto err;
--	}
--	outlen += tmplen;
--	EVP_CIPHER_CTX_cleanup(&ctx);
--	for (i = 0; i < outlen; i++) {
-+	DES_set_key((DES_cblock*)(decryptKey +  0), &ks1);
-+	DES_set_key((DES_cblock*)(decryptKey +  8), &ks2);
-+	DES_set_key((DES_cblock*)(decryptKey + 16), &ks3);
-+	DES_ede3_cbc_encrypt(wrapped_key, TEMP1, wrapped_key_len, &ks1, &ks2, &ks3,
-+	                     (DES_cblock*)IV, DES_DECRYPT);
-+
-+	outlen = check_pkcs_pad(TEMP1, wrapped_key_len, 8);
-+	if (outlen < 0)
-+		return 0;
-+
-+	for (i = 0; i < outlen; i++)
- 		TEMP2[i] = TEMP1[outlen - i - 1];
--	}
--	EVP_CIPHER_CTX_init(&ctx);
--	EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, decryptKey, TEMP2);
--	if (!EVP_DecryptUpdate(&ctx, CEKICV, &outlen, TEMP2 + 8, outlen - 8)) {
--		goto err;
--	}
--	if (!EVP_DecryptFinal_ex(&ctx, CEKICV + outlen, &tmplen)) {
--		goto err;
--	}
--	outlen += tmplen;
--	EVP_CIPHER_CTX_cleanup(&ctx);
--	return 0;
--err:
--	EVP_CIPHER_CTX_cleanup(&ctx);
--	return -1;
-+
-+	outlen -= 8;
-+	DES_ede3_cbc_encrypt(TEMP2 + 8, TEMP1, outlen, &ks1, &ks2, &ks3,
-+	                     (DES_cblock*)TEMP2, DES_DECRYPT);
-+
-+	outlen = check_pkcs_pad(TEMP1, outlen, 8);
-+	if (outlen < 0)
-+		return 0;
-+
-+	return 1;
- }
- 
- static void hash_plugin_check_hash(int index)
-@@ -492,22 +486,20 @@ static void hash_plugin_check_hash(int index)
- 		for(j = 0; j < SSE_GROUP_SZ_SHA1; ++j) {
- 		derived_key = Derived_key[j];
- #endif
--		if ((apple_des3_ede_unwrap_key1(cur_salt->wrapped_aes_key, cur_salt->len_wrapped_aes_key, derived_key) == 0) && (apple_des3_ede_unwrap_key1(cur_salt->wrapped_hmac_sha1_key, cur_salt->len_hmac_sha1_key, derived_key) == 0)) {
-+		if (apple_des3_ede_unwrap_key1(cur_salt->wrapped_aes_key, cur_salt->len_wrapped_aes_key, derived_key) &&
-+		    apple_des3_ede_unwrap_key1(cur_salt->wrapped_hmac_sha1_key, cur_salt->len_hmac_sha1_key, derived_key)) {
- 			cracked[index+j] = 1;
- 		}
- #ifdef MMX_COEF
- 		}
- #endif
- 	} else {
--		EVP_CIPHER_CTX ctx;
-+		DES_key_schedule ks1, ks2, ks3;
- 		unsigned char TEMP1[sizeof(cur_salt->wrapped_hmac_sha1_key)];
--		int outlen, tmplen;
- 		AES_KEY aes_decrypt_key;
- 		unsigned char outbuf[8192 + 1];
- 		unsigned char outbuf2[4096 + 1];
- 		unsigned char iv[20];
--		HMAC_CTX hmacsha1_ctx;
--		int mdlen;
- #ifdef DMG_DEBUG
- 		unsigned char *r;
- #endif
-@@ -547,27 +539,18 @@ static void hash_plugin_check_hash(int index)
- 		for(j = 0; j < SSE_GROUP_SZ_SHA1; ++j) {
- 		derived_key = Derived_key[j];
- #endif
--		EVP_CIPHER_CTX_init(&ctx);
--		EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, derived_key, cur_salt->iv);
--		if (!EVP_DecryptUpdate(&ctx, TEMP1, &outlen,
--		    cur_salt->encrypted_keyblob, cur_salt->encrypted_keyblob_size)) {
--			EVP_CIPHER_CTX_cleanup(&ctx);
--#ifdef MMX_COEF
--			continue;
--#else
--			return;
--#endif
--		}
--		EVP_DecryptFinal_ex(&ctx, TEMP1 + outlen, &tmplen);
--		EVP_CIPHER_CTX_cleanup(&ctx);
--		outlen += tmplen;
-+
-+		DES_set_key((DES_cblock*)(derived_key +  0), &ks1);
-+		DES_set_key((DES_cblock*)(derived_key +  8), &ks2);
-+		DES_set_key((DES_cblock*)(derived_key + 16), &ks3);
-+		memcpy(iv, cur_salt->iv, 8);
-+		DES_ede3_cbc_encrypt(cur_salt->encrypted_keyblob, TEMP1,
-+		                     cur_salt->encrypted_keyblob_size, &ks1, &ks2, &ks3,
-+		                     (DES_cblock*)iv, DES_DECRYPT);
-+
- 		memcpy(aes_key_, TEMP1, 32);
- 		memcpy(hmacsha1_key_, TEMP1, 20);
--		HMAC_CTX_init(&hmacsha1_ctx);
--		HMAC_Init_ex(&hmacsha1_ctx, hmacsha1_key_, 20, EVP_sha1(), NULL);
--		HMAC_Update(&hmacsha1_ctx, (void *) &cur_salt->cno, 4);
--		HMAC_Final(&hmacsha1_ctx, iv, (unsigned int *) &mdlen);
--		HMAC_CTX_cleanup(&hmacsha1_ctx);
-+		hmac_sha1(hmacsha1_key_, 20, (unsigned char*)&cur_salt->cno, 4, iv, 20);
- 		if (cur_salt->encrypted_keyblob_size == 48)
- 			AES_set_decrypt_key(aes_key_, 128, &aes_decrypt_key);
- 		else
-@@ -631,12 +614,7 @@ static void hash_plugin_check_hash(int index)
- 		/* Second buffer test. If present, *this* is the very first block of the DMG */
- 		if (!cracked[index+j] && cur_salt->scp == 1) {
- 			int cno = 0;
--
--			HMAC_CTX_init(&hmacsha1_ctx);
--			HMAC_Init_ex(&hmacsha1_ctx, hmacsha1_key_, 20, EVP_sha1(), NULL);
--			HMAC_Update(&hmacsha1_ctx, (void *) &cno, 4);
--			HMAC_Final(&hmacsha1_ctx, iv, (unsigned int *) &mdlen);
--			HMAC_CTX_cleanup(&hmacsha1_ctx);
-+			hmac_sha1(hmacsha1_key_, 20, (unsigned char*)&cno, 4, iv, 20);
- 			if (cur_salt->encrypted_keyblob_size == 48)
- 				AES_set_decrypt_key(aes_key_, 128, &aes_decrypt_key);
- 			else
diff --git a/security/john/files/patch-encfs__fmt__plug.c b/security/john/files/patch-encfs__fmt__plug.c
deleted file mode 100644
index fa14ed6412ad..000000000000
--- a/security/john/files/patch-encfs__fmt__plug.c
+++ /dev/null
@@ -1,113 +0,0 @@
---- encfs_fmt_plug.c.orig	2014-11-11 14:41:25 UTC
-+++ encfs_fmt_plug.c
-@@ -90,25 +90,16 @@ static struct fmt_tests encfs_tests[] = {
- static void setIVec( unsigned char *ivec, uint64_t seed,
-         unsigned char *key)
- {
--	unsigned char md[EVP_MAX_MD_SIZE];
--	unsigned int mdLen = EVP_MAX_MD_SIZE;
-+	unsigned char iv_and_seed[MAX_IVLENGTH+8];
- 	int i;
--	HMAC_CTX mac_ctx;
- 
--	memcpy( ivec, &key[cur_salt->keySize], cur_salt->ivLength );
-+	// combine ivec and seed with HMAC
-+	memcpy(iv_and_seed, &key[cur_salt->keySize], cur_salt->ivLength);
- 	for(i=0; i<8; ++i) {
--		md[i] = (unsigned char)(seed & 0xff);
-+		iv_and_seed[i+cur_salt->ivLength] = (unsigned char)(seed & 0xff);
- 		seed >>= 8;
- 	}
--	// combine ivec and seed with HMAC
--	HMAC_CTX_init(&mac_ctx);
--	HMAC_Init_ex( &mac_ctx, key, cur_salt->keySize, EVP_sha1(), 0 );
--	HMAC_Init_ex( &mac_ctx, 0, 0, 0, 0 );
--	HMAC_Update( &mac_ctx, ivec, cur_salt->ivLength );
--	HMAC_Update( &mac_ctx, md, 8 );
--	HMAC_Final( &mac_ctx, md, &mdLen );
--	HMAC_CTX_cleanup(&mac_ctx);
--	memcpy( ivec, md, cur_salt->ivLength );
-+	hmac_sha1(key, cur_salt->keySize, iv_and_seed, cur_salt->ivLength+8, ivec, cur_salt->ivLength);
- }
- 
- 
-@@ -144,33 +135,28 @@ static void flipBytes(unsigned char *buf, int size)
- static uint64_t _checksum_64(unsigned char *key,
- 		const unsigned char *data, int dataLen, uint64_t *chainedIV)
- {
--	unsigned char md[EVP_MAX_MD_SIZE];
-+	unsigned char DataIV[128+8];	// max data len is 128
-+	unsigned char md[20];
- 	unsigned int mdLen = EVP_MAX_MD_SIZE;
- 	int i;
- 	unsigned char h[8] = {0,0,0,0,0,0,0,0};
- 	uint64_t value;
--	HMAC_CTX mac_ctx;
- 
--	HMAC_CTX_init(&mac_ctx);
--	HMAC_Init_ex( &mac_ctx, key, cur_salt->keySize, EVP_sha1(), 0 );
--	HMAC_Init_ex( &mac_ctx, 0, 0, 0, 0 );
--	HMAC_Update( &mac_ctx, data, dataLen );
-+	memcpy(DataIV, data, dataLen);
- 	if(chainedIV)
- 	{
- 	  // toss in the chained IV as well
- 		uint64_t tmp = *chainedIV;
- 		unsigned char h[8];
- 		for(i=0; i<8; ++i) {
--			h[i] = tmp & 0xff;
-+			h[i] = DataIV[dataLen++] = (tmp & 0xff);
- 			tmp >>= 8;
- 		}
--		HMAC_Update( &mac_ctx, h, 8 );
- 	}
--	HMAC_Final( &mac_ctx, md, &mdLen );
--	HMAC_CTX_cleanup(&mac_ctx);
-+	hmac_sha1(key, cur_salt->keySize, DataIV, dataLen, md, 20);
- 
- 	// chop this down to a 64bit value..
--	for(i=0; i < (mdLen - 1); ++i)
-+	for(i=0; i < 19; ++i)
- 		h[i%8] ^= (unsigned char)(md[i]);
- 
- 	value = (uint64_t)h[0];
-@@ -202,26 +188,26 @@ static int streamDecode(unsigned char *buf, int size,
- {
- 	unsigned char ivec[ MAX_IVLENGTH ];
- 	int dstLen=0, tmpLen=0;
--	EVP_CIPHER_CTX stream_dec;
-+	EVP_CIPHER_CTX *stream_dec = EVP_CIPHER_CTX_new();
- 
- 	setIVec( ivec, iv64 + 1, key);
--	EVP_CIPHER_CTX_init(&stream_dec);
--	EVP_DecryptInit_ex( &stream_dec, cur_salt->streamCipher, NULL, NULL, NULL);
--	EVP_CIPHER_CTX_set_key_length( &stream_dec, cur_salt->keySize );
--	EVP_CIPHER_CTX_set_padding( &stream_dec, 0 );
--	EVP_DecryptInit_ex( &stream_dec, NULL, NULL, key, NULL);
-+	EVP_CIPHER_CTX_init(stream_dec);
-+	EVP_DecryptInit_ex( stream_dec, cur_salt->streamCipher, NULL, NULL, NULL);
-+	EVP_CIPHER_CTX_set_key_length( stream_dec, cur_salt->keySize );
-+	EVP_CIPHER_CTX_set_padding( stream_dec, 0 );
-+	EVP_DecryptInit_ex( stream_dec, NULL, NULL, key, NULL);
- 
--	EVP_DecryptInit_ex( &stream_dec, NULL, NULL, NULL, ivec);
--	EVP_DecryptUpdate( &stream_dec, buf, &dstLen, buf, size );
--	EVP_DecryptFinal_ex( &stream_dec, buf+dstLen, &tmpLen );
-+	EVP_DecryptInit_ex( stream_dec, NULL, NULL, NULL, ivec);
-+	EVP_DecryptUpdate( stream_dec, buf, &dstLen, buf, size );
-+	EVP_DecryptFinal_ex( stream_dec, buf+dstLen, &tmpLen );
- 	unshuffleBytes( buf, size );
- 	flipBytes( buf, size );
- 
- 	setIVec( ivec, iv64, key );
--	EVP_DecryptInit_ex( &stream_dec, NULL, NULL, NULL, ivec);
--	EVP_DecryptUpdate( &stream_dec, buf, &dstLen, buf, size );
--	EVP_DecryptFinal_ex( &stream_dec, buf+dstLen, &tmpLen );
--	EVP_CIPHER_CTX_cleanup(&stream_dec);
-+	EVP_DecryptInit_ex( stream_dec, NULL, NULL, NULL, ivec);
-+	EVP_DecryptUpdate( stream_dec, buf, &dstLen, buf, size );
-+	EVP_DecryptFinal_ex( stream_dec, buf+dstLen, &tmpLen );
-+	EVP_CIPHER_CTX_cleanup(stream_dec);
- 
- 	unshuffleBytes( buf, size );
- 	dstLen += tmpLen;
diff --git a/security/john/files/patch-git-4442241b4c b/security/john/files/patch-git-4442241b4c
new file mode 100644
index 000000000000..93c2ce585946
--- /dev/null
+++ b/security/john/files/patch-git-4442241b4c
@@ -0,0 +1,253 @@
+diff --git a/src/opencl_DES_bs.h b/src/opencl_DES_bs.h
+index 62acca1d96..e086711a22 100644
+--- a/src/opencl_DES_bs.h
++++ b/src/opencl_DES_bs.h
+@@ -60,7 +60,7 @@ extern int restore_lws_config(const char *, int, size_t *, size_t, unsigned int
+ 
+ typedef unsigned WORD vtype;
+ 
+-unsigned int CC_CACHE_ALIGN opencl_DES_bs_index768[0x300];
++extern unsigned int CC_CACHE_ALIGN opencl_DES_bs_index768[0x300];
+ 
+ struct fmt_main;
+ 
+diff --git a/src/opencl_DES_bs_plug.c b/src/opencl_DES_bs_plug.c
+index 548a7e101f..be25d0216e 100644
+--- a/src/opencl_DES_bs_plug.c
++++ b/src/opencl_DES_bs_plug.c
+@@ -40,6 +40,7 @@ static opencl_DES_bs_transfer *des_raw_keys;
+ static unsigned int *des_int_key_loc;
+ static unsigned int static_gpu_locations[MASK_FMT_INT_PLHDR];
+ static size_t process_key_gws;
++unsigned int CC_CACHE_ALIGN opencl_DES_bs_index768[0x300];
+ 
+ unsigned char opencl_DES_E[48] = {
+ 	31, 0, 1, 2, 3, 4,
+diff --git a/src/opencl_agilekeychain_fmt_plug.c b/src/opencl_agilekeychain_fmt_plug.c
+index 8845c6c90b..e8c8e6dd03 100644
+--- a/src/opencl_agilekeychain_fmt_plug.c
++++ b/src/opencl_agilekeychain_fmt_plug.c
+@@ -76,7 +76,7 @@ static agile_password *inbuffer;
+ static agile_hash *outbuffer;
+ static agile_salt currentsalt;
+ static cl_mem mem_in, mem_out, mem_setting;
+-size_t insize, outsize, settingsize, cracked_size;
++static size_t insize, outsize, settingsize;
+ static struct fmt_main *self;
+ 
+ #define STEP			0
+diff --git a/src/opencl_axcrypt_fmt_plug.c b/src/opencl_axcrypt_fmt_plug.c
+index 4cc18c08fd..ce2041b79a 100644
+--- a/src/opencl_axcrypt_fmt_plug.c
++++ b/src/opencl_axcrypt_fmt_plug.c
+@@ -74,7 +74,7 @@ static axcrypt_salt currentsalt;
+ static cl_mem mem_in, mem_out, mem_setting;
+ static struct fmt_main *self;
+ 
+-size_t insize, outsize, settingsize, cracked_size;
++static size_t insize, outsize, settingsize;
+ 
+ #define STEP			0
+ #define SEED			256
+diff --git a/src/opencl_gpg_fmt_plug.c b/src/opencl_gpg_fmt_plug.c
+index c48b491007..64623e7527 100644
+--- a/src/opencl_gpg_fmt_plug.c
++++ b/src/opencl_gpg_fmt_plug.c
+@@ -101,7 +101,7 @@ static cl_mem mem_in, mem_out, mem_setting;
+ static struct fmt_main *self;
+ static cl_kernel crypt_kernel_sha256, crypt_kernel_sha512;
+ 
+-size_t insize, outsize, settingsize, cracked_size;
++static size_t insize, outsize, settingsize, cracked_size;
+ 
+ #define STEP			0
+ #define SEED			256
+diff --git a/src/opencl_keychain_fmt_plug.c b/src/opencl_keychain_fmt_plug.c
+index b270938280..0045a02d35 100644
+--- a/src/opencl_keychain_fmt_plug.c
++++ b/src/opencl_keychain_fmt_plug.c
+@@ -78,7 +78,7 @@ static keychain_out *outbuffer;
+ static keychain_salt currentsalt;
+ static cl_mem mem_in, mem_dk, mem_salt, mem_out;
+ 
+-size_t insize, dksize, saltsize, outsize;
++static size_t insize, dksize, saltsize, outsize;
+ 
+ #define STEP                    0
+ #define SEED                    256
+diff --git a/src/opencl_lm.h b/src/opencl_lm.h
+index 689f56f9e1..5e5a939d0e 100644
+--- a/src/opencl_lm.h
++++ b/src/opencl_lm.h
+@@ -68,9 +68,9 @@
+ 
+ typedef unsigned WORD vtype;
+ 
+-unsigned int CC_CACHE_ALIGN opencl_lm_index768[0x300];
++extern unsigned int CC_CACHE_ALIGN opencl_lm_index768[0x300];
+ 
+-unsigned char opencl_lm_u[0x100];
++extern unsigned char opencl_lm_u[0x100];
+ 
+ typedef struct {
+ 	unsigned char *pxkeys[LM_DEPTH]; /* Pointers into xkeys.c */
+diff --git a/src/opencl_lm_plug.c b/src/opencl_lm_plug.c
+index 2cd0703245..42073129fc 100644
+--- a/src/opencl_lm_plug.c
++++ b/src/opencl_lm_plug.c
+@@ -19,6 +19,8 @@
+ opencl_lm_combined *opencl_lm_all;
+ opencl_lm_transfer *opencl_lm_keys;
+ unsigned int *opencl_lm_int_key_loc = NULL;
++unsigned int CC_CACHE_ALIGN opencl_lm_index768[0x300];
++unsigned char opencl_lm_u[0x100];
+ 
+ static unsigned char LM_KP[56] = {
+ 	1, 2, 3, 4, 5, 6, 7,
+diff --git a/src/opencl_odf_fmt_plug.c b/src/opencl_odf_fmt_plug.c
+index c5172d7c45..3b0ceadaf7 100644
+--- a/src/opencl_odf_fmt_plug.c
++++ b/src/opencl_odf_fmt_plug.c
+@@ -67,7 +67,7 @@ static odf_password *saved_key;
+ static odf_out *crypt_out;
+ static odf_salt currentsalt;
+ 
+-size_t insize, outsize, settingsize, cracked_size;
++static size_t insize, outsize, settingsize;
+ 
+ static struct custom_salt *cur_salt;
+ 
+diff --git a/src/opencl_pfx_fmt_plug.c b/src/opencl_pfx_fmt_plug.c
+index 8c0bc01bd2..53050d9b7d 100644
+--- a/src/opencl_pfx_fmt_plug.c
++++ b/src/opencl_pfx_fmt_plug.c
+@@ -91,7 +91,7 @@ static pfx_salt currentsalt;
+ static cl_mem mem_in, mem_out, mem_setting;
+ static struct fmt_main *self;
+ 
+-size_t insize, outsize, settingsize, cracked_size;
++static size_t insize, outsize, settingsize;
+ 
+ #define STEP			0
+ #define SEED			256
+diff --git a/src/opencl_pgpdisk_fmt_plug.c b/src/opencl_pgpdisk_fmt_plug.c
+index 914d631a56..e2ce30de96 100644
+--- a/src/opencl_pgpdisk_fmt_plug.c
++++ b/src/opencl_pgpdisk_fmt_plug.c
+@@ -67,7 +67,7 @@ static cl_kernel aes_kernel, twofish_kernel, cast_kernel;
+ static cl_mem mem_in, mem_out, mem_salt;
+ static struct fmt_main *self;
+ 
+-size_t insize, outsize, saltsize;
++static size_t insize, outsize, saltsize;
+ 
+ // This file contains auto-tuning routine(s). Has to be included after formats definitions.
+ #include "opencl_autotune.h"
+diff --git a/src/opencl_pgpsda_fmt_plug.c b/src/opencl_pgpsda_fmt_plug.c
+index 9649265a2e..cb66620c37 100644
+--- a/src/opencl_pgpsda_fmt_plug.c
++++ b/src/opencl_pgpsda_fmt_plug.c
+@@ -64,7 +64,7 @@ static pgpsda_salt currentsalt;
+ static cl_mem mem_in, mem_out, mem_setting;
+ static struct fmt_main *self;
+ 
+-size_t insize, outsize, settingsize;
++static size_t insize, outsize, settingsize;
+ 
+ // This file contains auto-tuning routine(s). Has to be included after formats definitions.
+ #include "opencl_autotune.h"
+diff --git a/src/opencl_pgpwde_fmt_plug.c b/src/opencl_pgpwde_fmt_plug.c
+index c89b5b37b3..dccfefb6b1 100644
+--- a/src/opencl_pgpwde_fmt_plug.c
++++ b/src/opencl_pgpwde_fmt_plug.c
+@@ -68,7 +68,7 @@ static pgpwde_salt currentsalt;
+ static cl_mem mem_in, mem_out, mem_setting;
+ static struct fmt_main *self;
+ 
+-size_t insize, outsize, settingsize, cracked_size;
++static size_t insize, outsize, settingsize;
+ 
+ // This file contains auto-tuning routine(s). Has to be included after formats definitions.
+ #include "opencl_autotune.h"
+diff --git a/src/opencl_sappse_fmt_plug.c b/src/opencl_sappse_fmt_plug.c
+index 0e05d7cdc5..1bc3c16eed 100644
+--- a/src/opencl_sappse_fmt_plug.c
++++ b/src/opencl_sappse_fmt_plug.c
+@@ -71,7 +71,7 @@ static sappse_salt currentsalt;
+ static cl_mem mem_in, mem_out, mem_setting;
+ static struct fmt_main *self;
+ 
+-size_t insize, outsize, settingsize, cracked_size;
++static size_t insize, outsize, settingsize;
+ 
+ #define STEP			0
+ #define SEED			256
*** 1104 LINES SKIPPED ***