summaryrefslogtreecommitdiff
path: root/community/john
diff options
context:
space:
mode:
Diffstat (limited to 'community/john')
-rw-r--r--community/john/PKGBUILD131
-rw-r--r--community/john/john.install10
-rw-r--r--community/john/params.h.patch13
3 files changed, 154 insertions, 0 deletions
diff --git a/community/john/PKGBUILD b/community/john/PKGBUILD
new file mode 100644
index 000000000..20e0a3d7c
--- /dev/null
+++ b/community/john/PKGBUILD
@@ -0,0 +1,131 @@
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Michal Krenek <mikos@sg1.cz>
+
+pkgname=john
+pkgver=1.7.9
+pkgrel=7
+_jumbover=7
+pkgdesc="John The Ripper - A fast password cracker (jumbo-$_jumbover included)"
+arch=('i686' 'x86_64')
+url="http://www.openwall.com/$pkgname/"
+license=('GPL2' 'custom')
+depends=('openssl')
+optdepends=("perl: for executing some of the scripts at /usr/share/john"
+ "ruby: for executing some of the scripts at /usr/share/john"
+ "python: for executing some of the scripts at /usr/share/john")
+backup=('etc/john/john.conf')
+install=john.install
+source=(http://www.openwall.com/$pkgname/g/$pkgname-$pkgver.tar.bz2
+ http://www.openwall.com/john/g/john-$pkgver-jumbo-$_jumbover.diff.gz
+ ftp://ftp.kfki.hu/pub/packages/security/ssh/ossh/libdes-4.04b.tar.gz
+ params.h.patch)
+md5sums=('45f54fc59386ecd67daaef9f19781d93'
+ 'b953fcb7f743eeeb5f938a28c352b8ef'
+ 'c8d5c69f86c2eedb485583b0305284a1'
+ 'f69ed632eba8fb9e45847a4b4a323787')
+
+build() {
+ # jumbo patch
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -p1 < ${srcdir}/$pkgname-$pkgver-jumbo-$_jumbover.diff
+ cd ${srcdir}/john-$pkgver/src/
+
+ # patch default params
+ patch -p0 < ${srcdir}/params.h.patch
+ if [ "$CARCH" == "x86_64" ]; then
+ sed -i 's|CFLAGS = -c -Wall -O2|CFLAGS = -c -Wall -O2 -march=x86-64 -DJOHN_SYSTEMWIDE=1|' Makefile
+ sed -i 's|^LDFLAGS =\(.*\)|LDFLAGS =\1 -lm|' Makefile
+ sed -i -e 's|-m486||g' Makefile
+ else sed -i 's|CFLAGS = -c -Wall -O2|CFLAGS = -c -Wall -O2 -march=i686 -DJOHN_SYSTEMWIDE=1|' Makefile
+ fi
+ sed -i 's|LIBS = -ldes|LIBS = -ldes -Ldes|' Makefile
+# sed -i 's|#include <des.h>|#include "des/des.h"|' KRB5_fmt.c
+ sed -i 's|#include <des.h>|#include "des/des.h"|' KRB5_std.h
+
+ # enable OMP
+ sed -i 's|#OMPFLAGS = -fopenmp$|OMPFLAGS = -fopenmp|' Makefile
+
+ # build john
+ if [ "$CARCH" == "x86_64" ]; then
+ make linux-x86-64
+ else make linux-x86-mmx
+ fi
+}
+
+package() {
+ # config file
+ sed -i 's|$JOHN/john.local.conf|/etc/john/john.local.conf|g' ${srcdir}/john-$pkgver/run/john.conf
+ sed -i 's|$JOHN|/usr/share/john|g' ${srcdir}/john-$pkgver/run/john.conf
+ install -Dm644 ${srcdir}/john-$pkgver/run/john.conf ${pkgdir}/etc/john/john.conf
+
+ # docs
+ install -d ${pkgdir}/usr/share/doc/john
+ install -m644 ${srcdir}/john-$pkgver/doc/* ${pkgdir}/usr/share/doc/john/
+ install -Dm644 ${srcdir}/john-$pkgver/doc/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+
+ # install password list, charset files
+ install -d ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/password.lst ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/dictionary.rfc2865 ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/stats ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{all,alnum,alpha,digits,lanman}.chr \
+ ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{dumb16,dumb32,dynamic}.conf \
+ ${pkgdir}/usr/share/john/
+
+ # install scripts
+ john_scripts=(benchmark-unify \
+ cracf2john.py \
+ genincstats.rb \
+ ldif2john.pl \
+ lion2john-alt.pl \
+ lion2john.pl \
+ netntlm.pl \
+ netscreen.py \
+ odf2john.py \
+ pass_gen.pl \
+ radius2john.pl \
+ sap2john.pl \
+ sha-dump.pl \
+ sha-test.pl \
+ sipdump2john.py)
+ for john_script in "${john_scripts[@]}"; do
+ install -m755 ${srcdir}/${pkgname}-${pkgver}/run/${john_script} \
+ ${pkgdir}/usr/share/john
+ done
+
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/dynamic.conf ${pkgdir}/etc/john/
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/run/john.bash_completion \
+ ${pkgdir}/etc/bash_completion.d/john
+
+ # install binaries
+ install -Dm755 ${srcdir}/john-$pkgver/run/john ${pkgdir}/usr/bin/john
+ install -Dm755 ${srcdir}/john-$pkgver/run/calc_stat ${pkgdir}/usr/bin/calc_stat
+ install -Dm755 ${srcdir}/john-$pkgver/run/genmkvpwd ${pkgdir}/usr/bin/genmkvpwd
+ install -Dm755 ${srcdir}/john-$pkgver/run/mkvcalcproba ${pkgdir}/usr/bin/mkvcalcproba
+ install -Dm755 ${srcdir}/john-$pkgver/run/relbench ${pkgdir}/usr/bin/relbench
+ install -Dm755 ${srcdir}/john-$pkgver/run/tgtsnarf ${pkgdir}/usr/bin/tgtsnarf
+ install -Dm755 ${srcdir}/john-$pkgver/run/mailer ${pkgdir}/usr/bin/john-mailer
+ install -Dm755 ${srcdir}/john-$pkgver/run/raw2dyna ${pkgdir}/usr/bin/raw2dyna
+
+ # create links
+ cd ${pkgdir}/usr/bin
+ ln -s john hccap2john
+ ln -s john keepass2john
+ ln -s john pdf2john
+ ln -s john pwsafe2john
+ ln -s john racf2john
+ ln -s john rar2john
+ ln -s john ssh2john
+ ln -s john unafs
+ ln -s john unique
+ ln -s john unshadow
+ ln -s john undrop
+ ln -s john zip2john
+}
+
+# vim:set ts=2 sw=2 et:
+
diff --git a/community/john/john.install b/community/john/john.install
new file mode 100644
index 000000000..21bc51c70
--- /dev/null
+++ b/community/john/john.install
@@ -0,0 +1,10 @@
+post_install() {
+ touch /etc/john/john.local.conf 2> /dev/null
+}
+
+
+post_upgrade() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/john/params.h.patch b/community/john/params.h.patch
new file mode 100644
index 000000000..ba05a40ab
--- /dev/null
+++ b/community/john/params.h.patch
@@ -0,0 +1,13 @@
+--- params.h.orig 2006-03-17 08:23:42.000000000 -0500
++++ params.h 2006-03-17 08:50:35.000000000 -0500
+@@ -101,8 +101,8 @@
+ /*
+ * File names.
+ */
+-#define CFG_FULL_NAME "$JOHN/john.conf"
+-#define CFG_ALT_NAME "$JOHN/john.ini"
++#define CFG_FULL_NAME "/etc/john/john.conf"
++#define CFG_ALT_NAME "/etc/john/john.ini"
+ #if JOHN_SYSTEMWIDE
+ #define CFG_PRIVATE_FULL_NAME JOHN_PRIVATE_HOME "/john.conf"
+ #define CFG_PRIVATE_ALT_NAME JOHN_PRIVATE_HOME "/john.ini"