diff options
Diffstat (limited to 'libre/pyrit')
-rw-r--r-- | libre/pyrit/PKGBUILD | 48 | ||||
-rw-r--r-- | libre/pyrit/scapy-2.3.2.patch | 42 |
2 files changed, 90 insertions, 0 deletions
diff --git a/libre/pyrit/PKGBUILD b/libre/pyrit/PKGBUILD new file mode 100644 index 000000000..ddaeb9fbe --- /dev/null +++ b/libre/pyrit/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer (Arch): Levente Polyak <anthraxx[at]archlinux[dot]org> +# Contributor (Arch): Fabian Melters <melters [at] gmail [dot] com> +# Maintainer: André Silva <emulatorman@parabola.nu> + +pkgname=pyrit +_pkgname=Pyrit +pkgver=0.5.0 +pkgrel=1.parabola1 +pkgdesc='The famous WPA precomputed cracker, without nonfree cpyrit-cuda recommendation' +url='https://github.com/JPaulMora/Pyrit' +arch=('i686' 'x86_64') +license=('GPL3') +depends=('openssl' 'python2' 'zlib' 'libpcap') +optdepends=( + 'cpyrit-opencl: opencl support' + 'scapy: packet capture analyzation support' + 'python2-sqlalchemy: storage support' +) +checkdepends=('python2-sqlalchemy' 'scapy') +source=(${pkgname}-${pkgver}.tar.gz::https://github.com/JPaulMora/Pyrit/archive/v${pkgver}.tar.gz + scapy-2.3.2.patch) +sha512sums=('912742cd7d9cd9231b9b3aa155a5170c0ba36c3865280423e100c1d12df34e093ee56305d8738d4f406abbfef9b1d540872872b8ef23d699466298d41289ad25' + '99d4ae2159be2d829337f3481cbb6580da1c6a2d2b6b28c7ed17348daa983859b7cd6ba3ee8575cbcba16efa27bf230bac075599b1fa0b531178dbdc45f853b2') + +prepare() { + cd ${_pkgname}-${pkgver} + patch -p1 < "${srcdir}/scapy-2.3.2.patch" +} + +build() { + cd ${_pkgname}-${pkgver} + python2 setup.py build +} + +check() { + cd ${_pkgname}-${pkgver}/test + local PYTHONVERSION="$(python2 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')" + PYTHONPATH="../build/lib.linux-${CARCH}-${PYTHONVERSION}" \ + python2 test_pyrit.py +} + +package() { + cd ${_pkgname}-${pkgver} + python2 setup.py install -O1 --root="${pkgdir}" --skip-build + install -Dm 644 README.md CHANGELOG -t "${pkgdir}/usr/share/doc/${pkgname}" +} + +# vim: ts=2 sw=2 et: diff --git a/libre/pyrit/scapy-2.3.2.patch b/libre/pyrit/scapy-2.3.2.patch new file mode 100644 index 000000000..d1b0ec1e5 --- /dev/null +++ b/libre/pyrit/scapy-2.3.2.patch @@ -0,0 +1,42 @@ +From 14ec997174b8e8fd20d22b6a97c57e19633f12a0 Mon Sep 17 00:00:00 2001 +From: Ilya Terentyev <bacondropped@gmail.com> +Date: Tue, 1 Nov 2016 20:40:15 +0300 +Subject: [PATCH] update isinstance(EnumField) for scapy 2.3.3+ + +scapy 2.3.2- requires that scapy.fields.EnumField is passed to +isinstance, while scapy 2.3.3+ needs scapy.fields._EnumField. +This patch accomodates pyrit for both versions. +Fixes #500. +--- + cpyrit/pckttools.py | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/cpyrit/pckttools.py b/cpyrit/pckttools.py +index 326829d..d58fff1 100644 +--- a/cpyrit/pckttools.py ++++ b/cpyrit/pckttools.py +@@ -54,12 +54,23 @@ + scapy.layers.dot11.PrismHeader) + + ++def isEnumField(f): ++ """Return True if f is an instance of EnumField. This function tries to be ++ portable: scapy versions 2.3.2 and earlier need isinstance(EnumField), ++ while scapy 2.3.3+ requires isinstance(_EnumField). ++ """ ++ try: ++ return isinstance(f, scapy.fields._EnumField) ++ except AttributeError: ++ return isinstance(f, scapy.fields.EnumField) ++ ++ + def isFlagSet(self, name, value): + """Return True if the given field 'includes' the given value. + Exact behaviour of this function is specific to the field-type. + """ + field, val = self.getfield_and_val(name) +- if isinstance(field, scapy.fields.EnumField): ++ if isEnumField(field): + if val not in field.i2s: + return False + return field.i2s[val] == value |