| diff -ru a/src/DES_bs.c b/src/DES_bs.c |
| |
| |
| @@ -52,7 +52,7 @@ |
| }; |
| |
| #if DES_BS_ASM |
| -extern void DES_bs_init_asm(void); |
| +extern void DES_INTERNAL_CALL DES_bs_init_asm(void); |
| #endif |
| |
| void DES_bs_init(int LM, int cpt) |
| diff -ru a/src/DES_bs.h b/src/DES_bs.h |
| |
| |
| @@ -35,6 +35,16 @@ |
| #define DES_bs_vector ARCH_WORD |
| #endif |
| |
| +#ifndef HAVE_INTERNAL_ATTR |
| +#define HAVE_INTERNAL_ATTR 0 |
| +#endif |
| + |
| +#if HAVE_INTERNAL_ATTR |
| +#define DES_INTERNAL_CALL __attribute__((visibility("internal"))) |
| +#else |
| +#define DES_INTERNAL_CALL |
| +#endif |
| + |
| /* |
| * All bitslice DES parameters combined into one struct for more efficient |
| * cache usage. Don't re-order unless you know what you're doing, as there |
| @@ -112,7 +122,7 @@ |
| #else |
| #define DES_bs_mt 0 |
| #define DES_bs_cpt 1 |
| -extern DES_bs_combined DES_bs_all; |
| +extern DES_INTERNAL_CALL DES_bs_combined DES_bs_all; |
| #define for_each_t(n) |
| #define init_t() |
| #endif |
| @@ -120,7 +130,7 @@ |
| /* |
| * Initializes the internal structures. |
| */ |
| -extern void DES_bs_init(int LM, int cpt); |
| +extern void DES_INTERNAL_CALL DES_bs_init(int LM, int cpt); |
| |
| /* |
| * Sets a salt for DES_bs_crypt(). |
| @@ -139,12 +149,12 @@ |
| /* |
| * Almost generic implementation: 24-bit salts, variable iteration count. |
| */ |
| -extern void DES_bs_crypt(int count, int keys_count); |
| +extern void DES_INTERNAL_CALL DES_bs_crypt(int count, int keys_count); |
| |
| /* |
| * A simplified special-case implementation: 12-bit salts, 25 iterations. |
| */ |
| -extern void DES_bs_crypt_25(int keys_count); |
| +extern void DES_INTERNAL_CALL DES_bs_crypt_25(int keys_count); |
| |
| /* |
| * Another special-case version: a non-zero IV, no salts, no iterations. |
| |
| |
| @@ -32,7 +32,7 @@ |
| # CFLAGS for use on the main john.c file only |
| CFLAGS_MAIN = $(CFLAGS) |
| ASFLAGS = -c $(OMPFLAGS) |
| -LDFLAGS = -s $(OMPFLAGS) |
| +LDFLAGS = $(LDFLAGS_DEBUG) $(OMPFLAGS) |
| OPT_NORMAL = -funroll-loops |
| # Remove the "-Os" if you're using an ancient version of gcc |
| OPT_INLINE = -Os -funroll-loops -finline-functions |
| @@ -104,6 +104,13 @@ |
| # @echo "linux-ppc64-altivec Linux, PowerPC 64-bit w/AltiVec" |
| @echo "linux-ppc64 Linux, PowerPC 64-bit" |
| @echo "linux-ia64 Linux, IA-64" |
| + @echo "midipix-x86-64-avx Midipix, x86-64 with AVX (2011+ Intel CPUs)" |
| + @echo "midipix-x86-64 Midipix, x86-64 with SSE2 (most common)" |
| + @echo "midipix-x86-avx Midipix, x86 32-bit with AVX (2011+ Intel CPUs)" |
| + @echo "midipix-x86-xop Midipix, x86 32-bit with AVX and XOP (2011+ AMD CPUs)" |
| + @echo "midipix-x86-sse2 Midipix, x86 32-bit with SSE2 (most common, if 32-bit)" |
| + @echo "midipix-x86-mmx Midipix, x86 32-bit with MMX (for old computers)" |
| + @echo "midipix-x86-any Midipix, x86 32-bit (for truly ancient computers)" |
| @echo "freebsd-x86-64 FreeBSD, x86-64 with SSE2 (best)" |
| @echo "freebsd-x86-sse2 FreeBSD, x86 with SSE2 (best if 32-bit)" |
| @echo "freebsd-x86-mmx FreeBSD, x86 with MMX" |
| @@ -306,6 +313,64 @@ |
| CFLAGS="$(CFLAGS) -DHAVE_CRYPT" \ |
| LDFLAGS="$(LDFLAGS) -lcrypt" |
| |
| +midipix-x86-64-avx: |
| + $(LN) x86-64.h arch.h |
| + $(MAKE) $(PROJ) \ |
| + JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86-64.o" \ |
| + CFLAGS_MAIN="$(CFLAGS) -DJOHN_AVX -DHAVE_CRYPT" \ |
| + CFLAGS="$(CFLAGS) -mavx -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR" \ |
| + ASFLAGS="$(ASFLAGS) -mavx" \ |
| + LDFLAGS="$(LDFLAGS) -lcrypt" |
| + |
| +midipix-x86-64: |
| + $(LN) x86-64.h arch.h |
| + $(MAKE) $(PROJ) \ |
| + JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86-64.o" \ |
| + CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR" \ |
| + LDFLAGS="$(LDFLAGS) -lcrypt" |
| + |
| +midipix-x86-avx: |
| + $(LN) x86-sse.h arch.h |
| + $(MAKE) $(PROJ) \ |
| + JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ |
| + CFLAGS_MAIN="$(CFLAGS) -m32 -DJOHN_AVX -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ |
| + CFLAGS="$(CFLAGS) -m32 -mavx -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ |
| + ASFLAGS="$(ASFLAGS) -m32 -mavx -DUNDERSCORES" \ |
| + LDFLAGS="$(LDFLAGS) -m32 -lcrypt" |
| + |
| +midipix-x86-xop: |
| + $(LN) x86-sse.h arch.h |
| + $(MAKE) $(PROJ) \ |
| + JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ |
| + CFLAGS_MAIN="$(CFLAGS) -m32 -DJOHN_XOP -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ |
| + CFLAGS="$(CFLAGS) -m32 -mxop -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ |
| + ASFLAGS="$(ASFLAGS) -m32 -mxop -DUNDERSCORES" \ |
| + LDFLAGS="$(LDFLAGS) -m32 -lcrypt" |
| + |
| +midipix-x86-sse2: |
| + $(LN) x86-sse.h arch.h |
| + $(MAKE) $(PROJ) \ |
| + JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o x86-sse.o" \ |
| + CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ |
| + ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ |
| + LDFLAGS="$(LDFLAGS) -lcrypt" |
| + |
| +midipix-x86-mmx: |
| + $(LN) x86-mmx.h arch.h |
| + $(MAKE) $(PROJ) \ |
| + JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o x86-mmx.o" \ |
| + CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ |
| + ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ |
| + LDFLAGS="$(LDFLAGS) -lcrypt" |
| + |
| +midipix-x86-any: |
| + $(LN) x86-any.h arch.h |
| + $(MAKE) $(PROJ) \ |
| + JOHN_OBJS="$(JOHN_OBJS) c3_fmt.o x86.o" \ |
| + CFLAGS="$(CFLAGS) -DHAVE_CRYPT -DHAVE_INTERNAL_ATTR -DUNDERSCORES" \ |
| + ASFLAGS="$(ASFLAGS) -m32 -DUNDERSCORES" \ |
| + LDFLAGS="$(LDFLAGS) -lcrypt" |
| + |
| freebsd-x86-64: |
| $(LN) x86-64.h arch.h |
| $(MAKE) $(PROJ) \ |