net-wireless/aircrack-ng: openssl-1.1 issues
authorAlon Bar-Lev <alonbl@gentoo.org>
Fri, 13 Jan 2017 22:13:01 +0000 (00:13 +0200)
committerAlon Bar-Lev <alonbl@gentoo.org>
Fri, 13 Jan 2017 22:13:14 +0000 (00:13 +0200)
+cleanup.

Bug: 604844
Thanks: eroen

Package-Manager: portage-2.3.0

net-wireless/aircrack-ng/aircrack-ng-1.2_rc4-r1.ebuild [new file with mode: 0644]
net-wireless/aircrack-ng/aircrack-ng-9999.ebuild
net-wireless/aircrack-ng/files/aircrack-ng-1.2_rc4-openssl.patch [new file with mode: 0644]

diff --git a/net-wireless/aircrack-ng/aircrack-ng-1.2_rc4-r1.ebuild b/net-wireless/aircrack-ng/aircrack-ng-1.2_rc4-r1.ebuild
new file mode 100644 (file)
index 0000000..21e2e5c
--- /dev/null
@@ -0,0 +1,119 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+PYTHON_COMPAT=( python2_7 )
+DISTUTILS_OPTIONAL=1
+
+inherit toolchain-funcs distutils-r1 flag-o-matic
+
+DESCRIPTION="WLAN tools for breaking 802.11 WEP/WPA keys"
+HOMEPAGE="http://www.aircrack-ng.org"
+
+MY_PV=${PV/_/-}
+SRC_URI="http://download.${PN}.org/${PN}-${MY_PV}.tar.gz"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="+airdrop-ng +airgraph-ng kernel_linux kernel_FreeBSD +netlink +pcre +sqlite +experimental"
+
+DEPEND="net-libs/libpcap
+       dev-libs/openssl:0=
+       netlink? ( dev-libs/libnl:3 )
+       pcre? ( dev-libs/libpcre )
+       airdrop-ng? ( ${PYTHON_DEPS} )
+       airgraph-ng? ( ${PYTHON_DEPS} )
+       experimental? ( sys-libs/zlib )
+       sqlite? ( >=dev-db/sqlite-3.4 )"
+RDEPEND="${DEPEND}
+       kernel_linux? (
+               net-wireless/iw
+               net-wireless/wireless-tools
+               sys-apps/ethtool
+               sys-apps/usbutils
+               sys-apps/pciutils )
+       sys-apps/hwids
+       airdrop-ng? ( net-wireless/lorcon[python,${PYTHON_USEDEP}] )"
+
+REQUIRED_USE="airdrop-ng? ( ${PYTHON_REQUIRED_USE} )
+               airgraph-ng? ( ${PYTHON_REQUIRED_USE} )"
+
+PATCHES=(
+       "${FILESDIR}/${P}-openssl.patch"
+)
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+pkg_setup() {
+       MAKE_COMMON=(
+               CC="$(tc-getCC)" \
+               CXX="$(tc-getCXX)" \
+               AR="$(tc-getAR)" \
+               LD="$(tc-getLD)" \
+               RANLIB="$(tc-getRANLIB)" \
+               libnl=$(usex netlink true false) \
+               pcre=$(usex pcre true false) \
+               sqlite=$(usex sqlite true false) \
+               experimental=$(usex experimental true false)
+               prefix="${ED}/usr" \
+       )
+}
+
+src_compile() {
+       if [[ $($(tc-getCC) --version) == clang* ]] ; then
+               #https://bugs.gentoo.org/show_bug.cgi?id=472890
+               filter-flags -frecord-gcc-switches
+       fi
+
+       emake "${MAKE_COMMON[@]}"
+
+       if use airgraph-ng; then
+               cd "${S}/scripts/airgraph-ng"
+               distutils-r1_src_compile
+       fi
+       if use airdrop-ng; then
+               cd "${S}/scripts/airdrop-ng"
+               distutils-r1_src_compile
+       fi
+}
+
+src_test() {
+       emake "${MAKE_COMMON[@]}" check
+}
+
+src_install() {
+       emake "${MAKE_COMMON[@]}" install
+
+       dodoc AUTHORS ChangeLog INSTALLING README
+
+       if use airgraph-ng; then
+               cd "${S}/scripts/airgraph-ng"
+               distutils-r1_src_install
+       fi
+       if use airdrop-ng; then
+               cd "${S}/scripts/airdrop-ng"
+               distutils-r1_src_install
+       fi
+
+       #we don't need aircrack-ng's oui updater, we have our own
+       rm "${ED}"/usr/sbin/airodump-ng-oui-update
+}
+
+pkg_postinst() {
+       # Message is (c) FreeBSD
+       # http://www.freebsd.org/cgi/cvsweb.cgi/ports/net-mgmt/aircrack-ng/files/pkg-message.in?rev=1.5
+       if use kernel_FreeBSD ; then
+               einfo "Contrary to Linux, it is not necessary to use airmon-ng to enable the monitor"
+               einfo "mode of your wireless card.  So do not care about what the manpages say about"
+               einfo "airmon-ng, airodump-ng sets monitor mode automatically."
+               echo
+               einfo "To return from monitor mode, issue the following command:"
+               einfo "    ifconfig \${INTERFACE} -mediaopt monitor"
+               einfo
+               einfo "For aireplay-ng you need FreeBSD >= 7.0."
+       fi
+}
index adc654df125f96d3d1d640476833b7872db55ecf..07e1546037f44257848c154548b4476505c75ec0 100644 (file)
@@ -1,8 +1,8 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI="5"
+EAPI="6"
 
 PYTHON_COMPAT=( python2_7 )
 DISTUTILS_OPTIONAL=1
@@ -18,12 +18,6 @@ if [[ ${PV} == "9999" ]] ; then
        KEYWORDS=""
        S="${WORKDIR}/${PN}"
 else
-       #inherit versionator
-       #MY_P=${P/\_/-}
-       #MY_PV="$(replace_version_separator 2 '-')"
-       #SRC_URI="http://download.aircrack-ng.org/${PN}-${MY_PV}.tar.gz"
-       #KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
-       #S="${WORKDIR}/${MY_P}"
        MY_PV=${PV/_/-}
        SRC_URI="http://download.${PN}.org/${PN}-${MY_PV}.tar.gz"
        KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux"
@@ -56,27 +50,31 @@ RDEPEND="${DEPEND}
 REQUIRED_USE="airdrop-ng? ( ${PYTHON_REQUIRED_USE} )
                airgraph-ng? ( ${PYTHON_REQUIRED_USE} )"
 
+pkg_setup() {
+       MAKE_COMMON=(
+               CC="$(tc-getCC)" \
+               CXX="$(tc-getCXX)" \
+               AR="$(tc-getAR)" \
+               LD="$(tc-getLD)" \
+               RANLIB="$(tc-getRANLIB)" \
+               libnl=$(usex netlink true false) \
+               pcre=$(usex pcre true false) \
+               sqlite=$(usex sqlite true false) \
+               experimental=$(usex experimental true false)
+               prefix="${ED}/usr" \
+       )
+       [[ ${PV} == "9999" ]] && MAKE_COMMON+=(
+               liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
+       )
+}
+
 src_compile() {
        if [[ $($(tc-getCC) --version) == clang* ]] ; then
                #https://bugs.gentoo.org/show_bug.cgi?id=472890
                filter-flags -frecord-gcc-switches
        fi
 
-       if [[ ${PV} == "9999" ]] ; then
-               liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
-       fi
-
-       emake \
-       CC="$(tc-getCC)" \
-       CXX="$(tc-getCXX)" \
-       AR="$(tc-getAR)" \
-       LD="$(tc-getLD)" \
-       RANLIB="$(tc-getRANLIB)" \
-       libnl=$(usex netlink true false) \
-       pcre=$(usex pcre true false) \
-       sqlite=$(usex sqlite true false) \
-       experimental=$(usex experimental true false) \
-       ${liveflags}
+       emake "${MAKE_COMMON[@]}"
 
        if use airgraph-ng; then
                cd "${S}/scripts/airgraph-ng"
@@ -89,31 +87,11 @@ src_compile() {
 }
 
 src_test() {
-       if [[ ${PV} == "9999" ]] ; then
-               liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
-       fi
-
-       emake check \
-               libnl=$(usex netlink true false) \
-               pcre=$(usex pcre true false) \
-               sqlite=$(usex sqlite true false) \
-               experimental=$(usex experimental true false) \
-               ${liveflags}
+       emake "${MAKE_COMMON[@]}" check
 }
 
 src_install() {
-       if [[ ${PV} == "9999" ]] ; then
-               liveflags=REVFLAGS=-D_REVISION="${ESVN_WC_REVISION}"
-       fi
-
-       emake \
-               prefix="${ED}/usr" \
-               libnl=$(usex netlink true false) \
-               pcre=$(usex pcre true false) \
-               sqlite=$(usex sqlite true false) \
-               experimental=$(usex experimental true false) \
-               ${liveflags} \
-               install
+       emake "${MAKE_COMMON[@]}" install
 
        dodoc AUTHORS ChangeLog INSTALLING README
 
diff --git a/net-wireless/aircrack-ng/files/aircrack-ng-1.2_rc4-openssl.patch b/net-wireless/aircrack-ng/files/aircrack-ng-1.2_rc4-openssl.patch
new file mode 100644 (file)
index 0000000..a83f622
--- /dev/null
@@ -0,0 +1,49 @@
+Index: a/src/crypto.c
+===================================================================
+--- a/src/crypto.c     (revision 2881)
++++ b/src/crypto.c     (revision 2882)
+@@ -288,7 +288,15 @@
+ void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80], unsigned char mic[20]) {
+       int i;
+       unsigned char pke[100];
++      #if defined(USE_GCRYPT) || OPENSSL_VERSION_NUMBER < 0x10100000L
++              #define HMAC_USE_NO_PTR
++      #endif
++
++      #ifdef HMAC_USE_NO_PTR
+       HMAC_CTX ctx;
++      #else
++      HMAC_CTX * ctx;
++      #endif
+       memcpy( pke, "Pairwise key expansion", 23 );
+@@ -314,6 +322,7 @@
+               memcpy( pke + 67, ap->wpa.snonce, 32 );
+       }
++      #ifdef HMAC_USE_NO_PTR
+       HMAC_CTX_init(&ctx);
+       HMAC_Init_ex(&ctx, pmk, 32, EVP_sha1(), NULL);
+       for(i = 0; i < 4; i++ )
+@@ -325,6 +334,20 @@
+               HMAC_Final(&ctx, ptk + i*20, NULL);
+       }
+       HMAC_CTX_cleanup(&ctx);
++      #else
++      ctx = HMAC_CTX_new();
++      HMAC_Init_ex(ctx, pmk, 32, EVP_sha1(), NULL);
++      for(i = 0; i < 4; i++ )
++      {
++              pke[99] = i;
++              //HMAC(EVP_sha1(), values[0], 32, pke, 100, ptk + i * 20, NULL);
++              HMAC_Init_ex(ctx, 0, 0, 0, 0);
++              HMAC_Update(ctx, pke, 100);
++              HMAC_Final(ctx, ptk + i*20, NULL);
++      }
++      HMAC_CTX_free(ctx);
++      #endif
++      #undef HMAC_USE_NO_PTR
+       if( ap->wpa.keyver == 1 )
+       {