Hi ports@, here is a little bit more complicated patch to update thc-hydra from 8.1 to 8.3.
- switch to github (GH_) - rename License - fix LibreSSL build - improve / cleaup configure, make and make install - adjust old patches Tested on amd64 with simple local fixture targets. (Only https and ftp) OK? Comments!? Kind regards, Rafael Sadowski Index: Makefile =================================================================== RCS file: /cvs/ports/security/hydra/Makefile,v retrieving revision 1.56 diff -u -p -u -p -r1.56 Makefile --- Makefile 17 Jan 2016 17:29:10 -0000 1.56 +++ Makefile 9 Oct 2016 08:17:22 -0000 @@ -3,50 +3,43 @@ COMMENT-main= parallelized network logon cracker COMMENT-gui= GTK frontend for hydra -VERSION= 8.1 -REVISION-main= 0 -DISTNAME= hydra-${VERSION} +VERSION= 8.3 PKGNAME-main= hydra-${VERSION} PKGNAME-gui= hydra-gui-${VERSION} -CATEGORIES= security +CATEGORIES= security -HOMEPAGE= http://thc.org/thc-hydra/ +GH_ACCOUNT = vanhauser-thc +GH_PROJECT = thc-hydra +GH_TAGNAME = 8.3 -#GNU AFFERO GENERAL PUBLIC LICENSE Version 3 -PERMIT_PACKAGE_CDROM= Yes +HOMEPAGE= https://thc.org/thc-hydra/ -WANTLIB= c m +# AGPLv3 (GNU Affero Public License) +PERMIT_PACKAGE_CDROM= Yes -MASTER_SITES = http://www.thc.org/releases/ -MASTER_SITES += ${MASTER_SITE_PACKETSTORM:=groups/thc/} +WANTLIB= c z PSEUDO_FLAVORS= no_x11 FLAVOR?= MULTI_PACKAGES= -main -CONFIGURE_STYLE=gnu dest +CONFIGURE_STYLE=gnu USE_GMAKE= Yes NO_TEST= Yes MAKE_FLAGS= CC=${CC} -CFLAGS += -I${LOCALBASE}/include + +CONFIGURE_ARGS = --with-ssl=prefix="/usr/include" \ + --with-ssl-lib=prefix="/usr/lib" \ + --prefix=${LOCALBASE} .if ${FLAVOR:Mno_x11} ALL_TARGET= hydra pw-inspector - -do-install: - cd ${WRKBUILD}; $(INSTALL_PROGRAM) hydra pw-inspector $(PREFIX)/bin .else - +MODULES= devel/gettext MULTI_PACKAGES+=-gui - ALL_TARGET= all - -MODULES= devel/gettext - -post-configure: - cd ${WRKSRC}/hydra-gtk && ./configure .endif LIB_DEPENDS-main= databases/mariadb,-main \ @@ -55,24 +48,24 @@ LIB_DEPENDS-main= databases/mariadb,-mai devel/pcre \ security/libssh RUN_DEPENDS-main= -WANTLIB-main= ${WANTLIB} curses crypto idn mysqlclient pcre pq pthread ssh ssl + +WANTLIB-main= ${WANTLIB} m crypto curses idn mysqlclient pcre pq ssh ssl + LIB_DEPENDS-gui=x11/gtk+2 \ ${MODGETTEXT_LIB_DEPENDS} + RUN_DEPENDS-gui=hydra-${VERSION}:security/hydra,-main \ ${MODGETTEXT_RUN_DEPENDS} -WANTLIB-gui= ${WANTLIB} GL X11 Xcomposite Xcursor Xdamage Xfixes \ - Xext Xi Xinerama Xrandr Xrender atk-1.0 freetype fontconfig \ - gdk-x11-2.0 gdk_pixbuf-2.0 gtk-x11-2.0 \ - gio-2.0 gmodule-2.0 gobject-2.0 glib-2.0 gthread-2.0 png \ - pango-1.0 pangocairo-1.0 pixman-1 cairo z expat \ - pangoft2-1.0 pthread pthread-stubs xcb xcb-render \ - xcb-shm -post-extract: - chmod -R u+w ${WRKDIST} +WANTLIB-gui= X11 Xcomposite Xcursor Xdamage Xext Xfixes Xi Xinerama \ + Xrandr Xrender atk-1.0 cairo fontconfig freetype gdk-x11-2.0 \ + gdk_pixbuf-2.0 gio-2.0 glib-2.0 gobject-2.0 gtk-x11-2.0 \ + pango-1.0 pangocairo-1.0 pangoft2-1.0 intl ${WANTLIB} post-install: ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/hydra - ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/hydra + ${INSTALL_DATA} ${WRKSRC}/{README,LICENSE} ${PREFIX}/share/doc/hydra + ${INSTALL_DATA_DIR} ${PREFIX}/hydra + mv ${PREFIX}/etc ${PREFIX}/hydra/ .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/security/hydra/distinfo,v retrieving revision 1.14 diff -u -p -u -p -r1.14 distinfo --- distinfo 21 Nov 2015 14:16:33 -0000 1.14 +++ distinfo 9 Oct 2016 08:17:22 -0000 @@ -1,2 +1,2 @@ -SHA256 (hydra-8.1.tar.gz) = 5Lwv0R+XqNmFo4oxeFyG04zGA4Pkeo9KXENjUeUTXxk= -SIZE (hydra-8.1.tar.gz) = 559031 +SHA256 (thc-hydra-8.3.tar.gz) = Zf7ss5CWutMJleOlJRgxVWV2EFqQdpd7lfCCqx/5CC0= +SIZE (thc-hydra-8.3.tar.gz) = 1138650 Index: patches/patch-Makefile_am =================================================================== RCS file: patches/patch-Makefile_am diff -N patches/patch-Makefile_am --- patches/patch-Makefile_am 21 Nov 2015 14:16:33 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,43 +0,0 @@ -$OpenBSD: patch-Makefile_am,v 1.3 2015/11/21 14:16:33 rpointel Exp $ ---- Makefile.am.orig Sun Dec 7 15:50:20 2014 -+++ Makefile.am Wed Nov 18 17:38:00 2015 -@@ -1,7 +1,7 @@ - # - # Makefile for Hydra - (c) 2001-2014 by van Hauser / THC <v...@thc.org> - # --OPTS=-I. -O3 -+OPTS=-I. $(CFLAGS) - # -Wall -g -pedantic - LIBS=-lm - DIR=/bin -@@ -44,7 +44,7 @@ hydra: hydra.c $(OBJ) - @echo - - xhydra: -- -cd hydra-gtk && sh ./make_xhydra.sh -+ -cd hydra-gtk/src && $(MAKE) - - pw-inspector: pw-inspector.c - -$(CC) $(OPTS) $(SEC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o pw-inspector $(PWI_LOGO) pw-inspector.c -@@ -56,16 +56,11 @@ strip: all - strip $(BINS) - -echo OK > /dev/null && test -x xhydra && strip xhydra || echo OK > /dev/null - --install: strip -- -mkdir -p $(PREFIX)$(DIR) -- cp -f hydra-wizard.sh $(BINS) $(PREFIX)$(DIR) && cd $(PREFIX)$(DIR) && chmod 755 hydra-wizard.sh $(BINS) -- -echo OK > /dev/null && test -x xhydra && cp xhydra $(PREFIX)$(DIR) && cd $(PREFIX)$(DIR) && chmod 755 xhydra || echo OK > /dev/null -- -sed -e "s|^INSTALLDIR=.*|INSTALLDIR="$(PREFIX)"|" dpl4hydra.sh > $(PREFIX)/bin/dpl4hydra.sh -- -chmod 755 $(PREFIX)/bin/dpl4hydra.sh -- -mkdir -p $(PREFIX)/etc/ -- -cp -f *.csv $(PREFIX)/etc/ -- -mkdir -p $(PREFIX)/man/man1 -- -cp -f hydra.1 xhydra.1 pw-inspector.1 $(PREFIX)/man/man1 -+install: -+ $(BSD_INSTALL_PROGRAM) $(BINS) $(PREFIX)$(DIR) 2> /dev/null -+ $(BSD_INSTALL_MAN_DIR) $(PREFIX)/man/man1 2> /dev/null -+ $(BSD_INSTALL_MAN) hydra.1 pw-inspector.1 xhydra.1 $(PREFIX)/man/man1 2> /dev/null -+ cd hydra-gtk/src && $(BSD_INSTALL_PROGRAM) xhydra $(PREFIX)$(DIR) 2> /dev/null - - clean: - rm -rf xhydra pw-inspector hydra *.o core *.core *.stackdump *~ Makefile.in Makefile dev_rfc hydra.restore arm/*.ipk arm/ipkg/usr/bin/* hydra-gtk/src/*.o hydra-gtk/src/xhydra hydra-gtk/stamp-h hydra-gtk/config.status hydra-gtk/errors hydra-gtk/config.log hydra-gtk/src/.deps hydra-gtk/src/Makefile hydra-gtk/Makefile Index: patches/patch-configure =================================================================== RCS file: /cvs/ports/security/hydra/patches/patch-configure,v retrieving revision 1.7 diff -u -p -u -p -r1.7 patch-configure --- patches/patch-configure 21 Nov 2015 14:16:33 -0000 1.7 +++ patches/patch-configure 9 Oct 2016 08:17:22 -0000 @@ -1,53 +1,85 @@ -$OpenBSD: patch-configure,v 1.7 2015/11/21 14:16:33 rpointel Exp $ -Remove tests for include files and libraries there are no -configure options to disable support the build may fail or be altered -if added ---- configure.orig Sun Dec 7 15:50:24 2014 -+++ configure Wed Nov 18 16:55:18 2015 -@@ -306,71 +306,6 @@ echo "Checking for Postgres (libpq.so, libpq-fe.h) ... +$OpenBSD$ +--- configure.orig Thu Aug 11 09:48:55 2016 ++++ configure Sat Oct 8 19:35:00 2016 +@@ -423,106 +423,6 @@ fi + fi #fi - echo "Checking for SVN (libsvn_client-1 libapr-1.so libaprutil-1.so) ..." +-echo "Checking for SVN (libsvn_client-1 libapr-1.so libaprutil-1.so) ..." -for i in $LIBDIRS ; do - if [ "X" = "X$SVN_PATH" ]; then -- if [ -f "$i/libsvn_client-1.so" ]&&[ -f "$i/libapr-1.so" ]&&[ -f "$i/libaprutil-1.so" ]; then +- if [ -f "$i/libsvn_client-1.so" ]; then - SVN_PATH="$i" +- fi +- fi +- if [ "X" = "X$APR_PATH" ]; then +- if [ -f "$i/libapr-1.so" -a -f "$i/libaprutil-1.so" ]; then - APR_PATH="$i" - fi - fi - if [ "X" = "X$SVN_PATH" ]; then -- if [ -f "$i/libsvn_client-1.dll.a" ]&&[ -f "$i/libapr-1.dll.a" ]&&[ -f "$i/libaprutil-1.dll.a" ]; then +- if [ -f "$i/libsvn_client-1.dll.a" ]; then - SVN_PATH="$i" +- fi +- fi +- if [ "X" = "X$APR_PATH" ]; then +- if [ -f "$i/libapr-1.dll.a" -a -f "$i/libaprutil-1.dll.a" ]; then +- APR_PATH="$i" +- fi +- fi +- if [ "X" = "X$SVN_PATH" ]; then +- if [ -f "$i/libsvn_client-1.dylib" ]; then +- SVN_PATH="$i" +- fi +- fi +- if [ "X" = "X$APR_PATH" ]; then +- if [ -f "$i/libapr-1.dylib" -a -f "$i/libaprutil-1.dylib" ]; then - APR_PATH="$i" - fi - fi - if [ "X" = "X$SVN_PATH" ]; then -- if [ -f "$i/libsvn_client-1.dylib" ]&&[ -f "$i/libapr-1.dylib" ]&&[ -f "$i/libaprutil-1.dylib" ]; then +- if [ -f "$i/libsvn_client-1.a" ]; then - SVN_PATH="$i" +- fi +- fi +- if [ "X" = "X$APR_PATH" ]; then +- if [ -f "$i/libapr-1.a" -a -f "$i/libaprutil-1.a" ]; then - APR_PATH="$i" - fi - fi - if [ "X" = "X$SVN_PATH" ]; then -- if [ -f "$i/libsvn_client-1.a" ]&&[ -f "$i/libapr-1.a" ]&&[ -f "$i/libaprutil-1.a" ]; then +- if [ -f "$i/libsvn_client-1.0.dylib" ]; then - SVN_PATH="$i" +- fi +- fi +- if [ "X" = "X$APR_PATH" ]; then +- if [ -f "$i/libapr-1.0.dylib" -a -f "$i/libaprutil-1.0.dylib" ]; then - APR_PATH="$i" - fi - fi - if [ "X" = "X$SVN_PATH" ]; then - TMP_LIB1=`/bin/ls $i/libsvn_client*.so* 2> /dev/null | grep libsvn_client.` +- if [ -n "$TMP_LIB1" ]; then +- SVN_PATH="$i" +- fi +- fi +- if [ "X" = "X$APR_PATH" ]; then - TMP_LIB2=`/bin/ls $i/libapr-1*.so* 2> /dev/null | grep libsvn_client.` - TMP_LIB3=`/bin/ls $i/libaprutil-1*.so* 2> /dev/null | grep libsvn_client.` -- if [ -n "$TMP_LIB1" -a -n "$TMP_LIB2" -a -n "$TMP_LIB3" ]; then -- SVN_PATH="$i" +- if [ -n "$TMP_LIB2" -a -n "$TMP_LIB3" ]; then - APR_PATH="$i" - fi - fi - if [ "X" = "X$SVN_PATH" ]; then - TMP_LIB1=`/bin/ls $i/libsvn_client*.dll* 2> /dev/null | grep libsvn_client.` +- if [ -n "$TMP_LIB1" ]; then +- SVN_PATH="$i" +- fi +- fi +- if [ "X" = "X$APR_PATH" ]; then - TMP_LIB2=`/bin/ls $i/libapr-1*.dll* 2> /dev/null | grep libsvn_client.` - TMP_LIB3=`/bin/ls $i/libaprutil-1*.dll* 2> /dev/null | grep libsvn_client.` -- if [ -n "$TMP_LIB1" -a -n "$TMP_LIB2" -a -n "$TMP_LIB3" ]; then -- SVN_PATH="$i" +- if [ -n "$TMP_LIB2" -a -n "$TMP_LIB3" ]; then - APR_PATH="$i" - fi - fi @@ -73,13 +105,14 @@ if added - fi - fi -done - - if [ "X" = "X$SVN_PATH" -o "X" = "X$SVN_IPATH" -o "X" = "X$APR_IPATH" ]; then - SVN_PATH="" -@@ -392,32 +327,6 @@ if [ "X" = "X$SVN_PATH" -o "X" = "X$APR_PATH" ]; then + if [ "X" != "X$DEBUG" ]; then + echo DEBUG: SVN_PATH=$SVN_PATH/libsvn_client-1 + echo DEBUG: APR_PATH=$APR_PATH/libapr +@@ -549,26 +449,6 @@ if [ "X" = "X$SVN_PATH" -o "X" = "X$APR_PATH" ]; then + echo " ... NOT found, module svn disabled" fi - echo "Checking for firebird (libfbclient.so) ..." +-echo "Checking for firebird (libfbclient.so) ..." -for i in $LIBDIRS ; do - if [ "X" = "X$FIREBIRD_PATH" ]; then - if [ -f "$i/libfbclient.so" -o -f "$i/libfbclient.dylib" -o -f "$i/libfbclient.a" ]; then @@ -99,20 +132,14 @@ if added - fi - fi -done --for i in $INCDIRS ; do -- if [ "X" != "X$FIREBIRD_PATH" ]; then -- if [ -f "$i/ibase.h" ]; then -- FIREBIRD_IPATH="$i" -- fi -- fi --done - if [ -n "$FIREBIRD_PATH" -a -n "$FIREBIRD_IPATH" ]; then - echo " ... found" - fi -@@ -473,32 +382,6 @@ else + for i in $INCDIRS ; do + if [ "X" != "X$FIREBIRD_PATH" ]; then + if [ -f "$i/ibase.h" ]; then +@@ -638,26 +518,6 @@ if [ -f "/usr/include/math.h" ]; then + else echo " ... math.h not found, module Mysql disabled" fi - echo "Checking for AFP (libafpclient.so) ..." +-echo "Checking for AFP (libafpclient.so) ..." -for i in $LIBDIRS ; do - if [ "X" = "X$AFP_PATH" ]; then - if [ -f "$i/libafpclient.so" -o -f "$i/libafpclient.so" -o -f "$i/libafpclient.a" ]; then @@ -132,20 +159,14 @@ if added - fi - fi -done --for i in $INCDIRS ; do -- if [ "X" != "X$AFP_PATH" ]; then -- if [ -f "$i/afpfs-ng/afp.h" ]; then -- AFP_IPATH="$i/afpfs-ng" -- fi -- fi --done - if [ -n "$AFP_PATH" -a -n "$AFP_IPATH" ]; then - echo " ... found" - fi -@@ -509,32 +392,6 @@ if [ "X" = "X$AFP_PATH" -o "X" = "X$AFP_IPATH" ]; then + for i in $INCDIRS ; do + if [ "X" != "X$AFP_PATH" ]; then + if [ -f "$i/afpfs-ng/afp.h" ]; then +@@ -678,26 +538,6 @@ if [ "X" = "X$AFP_PATH" -o "X" = "X$AFP_IPATH" ]; then + AFP_IPATH="" fi - echo "Checking for NCP (libncp.so / nwcalls.h) ..." +-echo "Checking for NCP (libncp.so / nwcalls.h) ..." -for i in $LIBDIRS ; do - if [ "X" = "X$NCP_PATH" ]; then - if [ -f "$i/libncp.so" -o -f "$i/libncp.dylib" -o -f "$i/libncp.a" ]; then @@ -165,20 +186,14 @@ if added - fi - fi -done --for i in $INCDIRS ; do -- if [ "X" != "X$NCP_PATH" ]; then -- if [ -f "$i/ncp/nwcalls.h" ]; then -- NCP_IPATH="$i" -- fi -- fi --done - if [ -n "$NCP_PATH" -a -n "$NCP_IPATH" ]; then - echo " ... found" - fi -@@ -545,26 +402,6 @@ if [ "X" = "X$NCP_PATH" -o "X" = "X$NCP_IPATH" ]; then + for i in $INCDIRS ; do + if [ "X" != "X$NCP_PATH" ]; then + if [ -f "$i/ncp/nwcalls.h" ]; then +@@ -718,27 +558,6 @@ if [ "X" = "X$NCP_PATH" -o "X" = "X$NCP_IPATH" ]; then + NCP_IPATH="" fi - echo "Checking for SAP/R3 (librfc/saprfc.h) ..." +-echo "Checking for SAP/R3 (librfc/saprfc.h) ..." -for i in $LIBDIRS ; do - if [ "X" = "X$SAPR3_PATH" ]; then - if [ -f "$i/librfc.a" -o -f "$i/librfc.dylib" -o "$i/librfc32.dll" ]; then @@ -199,26 +214,26 @@ if added - fi - fi -done - if [ "X" = "X$SAPR3_PATH" ]; then - SAPR3_IPATH="" - fi -@@ -673,79 +510,15 @@ if [ "X" != "X$WORACLE_LIB_PATH" ]; then - LIBDIRS="$LIBDIRS $WORACLE_LIB_PATH" + if [ "X" != "X$DEBUG" ]; then + echo DEBUG: SAPR3_PATH=$SAPR3_PATH/librfc + echo DEBUG: SAPR3_IPATH=$SAPR3_IPATH/saprfc.h +@@ -822,47 +641,6 @@ if [ "X" != "X$DEBUG" ]; then + echo DEBUG: ORACLE_INC=$INCDIRS fi -for i in $LIBDIRS ; do - if [ "X" = "X$ORACLE_PATH" ]; then -- if [ -f "$i/libocci.so" ]&&[ -f "$i/libclntsh.so" ]; then +- if [ -f "$i/libocci.so" -a -f "$i/libclntsh.so" ]; then - ORACLE_PATH="$i" - fi - fi - if [ "X" = "X$ORACLE_PATH" ]; then -- if [ -f "$i/libocci.dylib" ]&&[ -f "$i/libclntsh.dylib" ]; then +- if [ -f "$i/libocci.dylib" -a -f "$i/libclntsh.dylib" ]; then - ORACLE_PATH="$i" - fi - fi - if [ "X" = "X$ORACLE_PATH" ]; then -- if [ -f "$i/libocci.a" ]&&[ -f "$i/libclntsh.a" ]; then +- if [ -f "$i/libocci.a" -a -f "$i/libclntsh.a" ]; then - ORACLE_PATH="$i" - fi - fi @@ -247,30 +262,11 @@ if added - fi - fi -done -+ - #check for Kernel Asynchronous I/O (AIO) lib support - if [ "X" != "X$ORACLE_PATH" ]; then - LIBAIO="" -- for i in $LIBDIRS ; do -- if [ "X" = "X$LIBAIO" ]; then -- if [ -f "$i/libaio.so" -o -f "$i/libaio.dylib" -o -f "$i/libaio.a" ]; then -- LIBAIO="$i" -- fi -- fi -- if [ "X" = "X$LIBAIO" ]; then -- TMP_LIB=`/bin/ls $i/libaio.so.* 2> /dev/null | grep aio.` -- if [ -n "$TMP_LIB" ]; then -- LIBAIO="$i" -- fi -- TMP_LIB=`/bin/ls $i/libaio.dll* 2> /dev/null | grep aio.` -- if [ -n "$TMP_LIB" ]; then -- LIBAIO="$i" -- fi -- fi -- done - if [ "X" = "X$LIBAIO" ]; then - ORACLE_PATH="" - fi + if [ "X" != "X$DEBUG" ]; then + echo DEBUG: ORACLE_PATH=$ORACLE_PATH/libocci + fi +@@ -894,13 +672,6 @@ if [ "X" != "X$DEBUG" ]; then + echo DEBUG: ORACLE_PATH=$ORACLE_PATH/libaio fi -for i in $INCDIRS ; do @@ -280,6 +276,15 @@ if added - fi - fi -done - if [ -n "$ORACLE_PATH" -a -n "$ORACLE_IPATH" ]; then - echo " ... found" + if [ "X" != "X$DEBUG" ]; then + echo DEBUG: ORACLE_IPATH=$ORACLE_IPATH/oci.h fi +@@ -997,7 +768,7 @@ test -x $TMPC && GCCSEC="yes" + grep -q fPI $TMPC.c.err || GCCSECOPT="-pie -fPIE $GCCSECOPT" + rm -f "$TMPC" + gcc $GCCSECOPT -Wl,-z,now -Wl,-z,relro -o $TMPC $TMPC.c > /dev/null 2> $TMPC.c.err +-test -x $TMPC && { LDSEC="yes" ; GCCSECOPT="$GCCSECOPT -Wl,-z,now -Wl,-z,relro" ; } ++test -x $TMPC && { LDSEC="yes" ; GCCSECOPT="$GCCSECOPT" ; } + rm -f $TMPC $TMPC.c $TMPC.c.err + echo " Compiling... $GCCSEC" + echo " Linking... $LDSEC" Index: patches/patch-hydra-gtk_make_xhydra_sh =================================================================== RCS file: patches/patch-hydra-gtk_make_xhydra_sh diff -N patches/patch-hydra-gtk_make_xhydra_sh --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-hydra-gtk_make_xhydra_sh 9 Oct 2016 08:17:22 -0000 @@ -0,0 +1,26 @@ +$OpenBSD$ +--- hydra-gtk/make_xhydra.sh.orig Thu Aug 11 09:48:55 2016 ++++ hydra-gtk/make_xhydra.sh Sat Oct 8 19:43:11 2016 +@@ -2,13 +2,13 @@ + PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome/lib/pkgconfig + export PKG_CONFIG_PATH + echo "Trying to compile xhydra now (hydra gtk gui) - dont worry if this fails, this is really optional ..." +-./configure > /dev/null 2> errors ++./configure + test -e Makefile || { + echo "Error: configure wasnt happy. Analyse this:" + cat errors + exit 1 + } +-make > /dev/null 2> errors ++gmake + test -e src/xhydra || { + echo "Error: could not compile. Analyse this:" + cat errors +@@ -16,5 +16,5 @@ test -e src/xhydra || { + echo 'Do not worry, as I said, xhydra is really optional. ./hydra is ready to go!' + exit 0 + } +-cp -v src/xhydra .. ++cp src/xhydra .. + echo "The GTK GUI is ready, type \"./xhydra\" to start" Index: patches/patch-hydra-gtk_src_callbacks_c =================================================================== RCS file: patches/patch-hydra-gtk_src_callbacks_c diff -N patches/patch-hydra-gtk_src_callbacks_c --- patches/patch-hydra-gtk_src_callbacks_c 5 Nov 2011 15:24:39 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-hydra-gtk_src_callbacks_c,v 1.4 2011/11/05 15:24:39 nigel Exp $ ---- hydra-gtk/src/callbacks.c.orig Sun Oct 2 09:06:15 2011 -+++ hydra-gtk/src/callbacks.c Wed Nov 2 00:36:25 2011 -@@ -35,7 +35,7 @@ char tasks[10]; - char timeout[10]; - char smbparm[12]; - char snmpparm[4]; --char sapr3id[4]; -+char sapr3id[10]; - char passLoginNull[4]; - - Index: patches/patch-hydra-mod_c =================================================================== RCS file: patches/patch-hydra-mod_c diff -N patches/patch-hydra-mod_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-hydra-mod_c 9 Oct 2016 08:17:22 -0000 @@ -0,0 +1,35 @@ +$OpenBSD$ +--- hydra-mod.c.orig Thu Aug 11 09:48:55 2016 ++++ hydra-mod.c Sat Oct 8 19:16:47 2016 +@@ -438,10 +438,10 @@ int internal__hydra_connect(char *host, int port, int + return ret; + } + +-#ifdef LIBOPENSSL ++#ifdef LIBOPENSSL && !defined(LIBRESSL_VERSION_NUMBER) + RSA *ssl_temp_rsa_cb(SSL * ssl, int export, int keylength) { + int ok = 0; +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + BIGNUM *n; + n = BN_new(); + RSA_get0_key(rsa, &n, NULL, NULL); +@@ -451,7 +451,7 @@ RSA *ssl_temp_rsa_cb(SSL * ssl, int export, int keylen + ok = 1; + #endif + if(ok == 0 && RSA_size(rsa)!=(keylength/8)){ // n is not zero +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + BN_free(n); + #endif + RSA_free(rsa); +@@ -467,7 +467,8 @@ RSA *ssl_temp_rsa_cb(SSL * ssl, int export, int keylen + rsa = RSA_generate_key(keylength, RSA_F4, NULL, NULL); + #endif + } +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) ++ + BN_free(n); + #endif + return rsa; Index: patches/patch-hydra-oracle-listener_c =================================================================== RCS file: patches/patch-hydra-oracle-listener_c diff -N patches/patch-hydra-oracle-listener_c --- patches/patch-hydra-oracle-listener_c 21 Nov 2015 14:16:33 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,34 +0,0 @@ -$OpenBSD: patch-hydra-oracle-listener_c,v 1.2 2015/11/21 14:16:33 rpointel Exp $ ---- hydra-oracle-listener.c.orig Sun Dec 7 15:50:20 2014 -+++ hydra-oracle-listener.c Thu Nov 19 14:50:52 2015 -@@ -106,7 +106,7 @@ int convert_byteorder(unsigned char **result, int size - int ora_descrypt(unsigned char **rs, unsigned char *result, int siz) { - int i = 0; - char lastkey[8]; -- des_key_schedule ks1; -+ DES_key_schedule ks1; - unsigned char key1[8] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF }; - unsigned char ivec1[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - unsigned char *desresult; -@@ -116,17 +116,17 @@ int ora_descrypt(unsigned char **rs, unsigned char *re - hydra_report(stderr, "[ERROR] Can't allocate memory\n"); - return 1; - } -- des_key_sched((C_Block *) key1, ks1); -- des_ncbc_encrypt(result, desresult, siz, ks1, &ivec1, DES_ENCRYPT); -+ DES_key_sched((DES_cblock *) key1, &ks1); -+ DES_ncbc_encrypt(result, desresult, siz, &ks1, &ivec1, DES_ENCRYPT); - - for (i = 0; i < 8; i++) { - lastkey[i] = desresult[siz - 8 + i]; - } - -- des_key_sched((C_Block *) lastkey, ks1); -+ DES_key_sched((DES_cblock *) lastkey, &ks1); - memset(desresult, 0, siz); - memset(ivec1, 0, sizeof(ivec1)); -- des_ncbc_encrypt(result, desresult, siz, ks1, &ivec1, DES_ENCRYPT); -+ DES_ncbc_encrypt(result, desresult, siz, &ks1, &ivec1, DES_ENCRYPT); - - if ((*rs = malloc(siz)) == NULL) { - hydra_report(stderr, "[ERROR] Can't allocate memory\n"); Index: patches/patch-hydra-rdp_c =================================================================== RCS file: patches/patch-hydra-rdp_c diff -N patches/patch-hydra-rdp_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-hydra-rdp_c 9 Oct 2016 08:17:22 -0000 @@ -0,0 +1,37 @@ +$OpenBSD$ +--- hydra-rdp.c.orig Thu Aug 11 09:48:55 2016 ++++ hydra-rdp.c Sat Oct 8 19:16:18 2016 +@@ -910,13 +910,13 @@ SSL_RKEY *ssl_cert_to_rkey(X509 * cert, uint32 * key_l + + Kudos to Richard Levitte for the following (. intuitive .) + lines of code that resets the OID and let's us extract the key. */ +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + nid = X509_get_signature_nid(cert); + #else + nid = OBJ_obj2nid(cert->cert_info->key->algor->algorithm); + #endif + if ((nid == NID_md5WithRSAEncryption) || (nid == NID_shaWithRSAEncryption)) { +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + // fprintf(stderr, "[ERROR] the current experimental openssl-1.1 support in hydra does not support RDP :( \n"); + // hydra_child_exit(2); + X509_ALGOR *algor = X509_get0_tbs_sigalg(cert); +@@ -954,7 +954,7 @@ void ssl_rkey_free(SSL_RKEY * rkey) { + int ssl_rkey_get_exp_mod(SSL_RKEY * rkey, uint8 * exponent, uint32 max_exp_len, uint8 * modulus, uint32 max_mod_len) { + int len; + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + BIGNUM *n, *e, *d; + + n = BN_new(); +@@ -987,7 +987,7 @@ BOOL ssl_sig_ok(uint8 * exponent, uint32 exp_len, uint + + + void ssl_hmac_md5(const void *key, int key_len, const unsigned char *msg, int msg_len, unsigned char *md) { +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + HMAC_CTX *ctx; + ctx = HMAC_CTX_new(); + HMAC(EVP_md5(), key, key_len, msg, msg_len, md, NULL); Index: patches/patch-hydra-smb_c =================================================================== RCS file: patches/patch-hydra-smb_c diff -N patches/patch-hydra-smb_c --- patches/patch-hydra-smb_c 21 Nov 2015 14:16:33 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,26 +0,0 @@ -$OpenBSD: patch-hydra-smb_c,v 1.2 2015/11/21 14:16:33 rpointel Exp $ ---- hydra-smb.c.orig Sun Dec 7 15:50:24 2014 -+++ hydra-smb.c Wed Nov 18 17:38:00 2015 -@@ -176,17 +176,17 @@ static void MakeKey(unsigned char *key, unsigned char - des_key[6] = Get7Bits(key, 42); - des_key[7] = Get7Bits(key, 49); - -- des_set_odd_parity((des_cblock *) des_key); -+ DES_set_odd_parity((DES_cblock *) des_key); - } - - /* Do the DesEncryption */ - void DesEncrypt(unsigned char *clear, unsigned char *key, unsigned char *cipher) { -- des_cblock des_key; -- des_key_schedule key_schedule; -+ DES_cblock des_key; -+ DES_key_schedule key_schedule; - - MakeKey(key, des_key); -- des_set_key(&des_key, key_schedule); -- des_ecb_encrypt((des_cblock *) clear, (des_cblock *) cipher, key_schedule, 1); -+ DES_set_key(&des_key, &key_schedule); -+ DES_ecb_encrypt((DES_cblock *) clear, (DES_cblock *) cipher, &key_schedule, 1); - } - - /* Index: patches/patch-hydra-snmp_c =================================================================== RCS file: patches/patch-hydra-snmp_c diff -N patches/patch-hydra-snmp_c --- patches/patch-hydra-snmp_c 21 Nov 2015 14:16:33 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,29 +0,0 @@ -$OpenBSD: patch-hydra-snmp_c,v 1.1 2015/11/21 14:16:33 rpointel Exp $ ---- hydra-snmp.c.orig Sun Dec 7 15:50:24 2014 -+++ hydra-snmp.c Wed Nov 18 17:38:00 2015 -@@ -335,13 +335,13 @@ int start_snmp(int s, char *ip, int port, unsigned cha - // xor initVect with salt - for (i = 0; i < 8; i++) - initVect[i] ^= privacy_params[i]; -- des_key_sched((C_Block *) key, symcbc); -- des_ncbc_encrypt(snmpv3_get2 + 2, buf, sizeof(snmpv3_get2) - 2, symcbc, (C_Block *) (initVect), DES_ENCRYPT); -+ DES_key_sched((DES_cblock *) key, &symcbc); -+ DES_ncbc_encrypt(snmpv3_get2 + 2, buf, sizeof(snmpv3_get2) - 2, &symcbc, (DES_cblock *) (initVect), DES_ENCRYPT); - - #endif - - /* for (i = 0; i <= sizeof(snmpv3_get2) - 8; i += 8) { -- des_ncbc_encrypt(snmpv3_get2 + i, buf + i, 8, (C_Block*)(initVect), DES_ENCRYPT); -+ DES_ncbc_encrypt(snmpv3_get2 + i, buf + i, 8, (DES_cblock*)(initVect), DES_ENCRYPT); - } - // last part of buffer - if (buffer_len % 8) { -@@ -351,7 +351,7 @@ int start_snmp(int s, char *ip, int port, unsigned cha - memset(tmp_buf, 0, 8); - for (unsigned int l = start; l < buffer_len; l++) - *tmp_buf_ptr++ = buffer[l]; -- des_ncbc_encrypt(tmp_buf, buf + start, 1, symcbc, (C_Block*)(initVect), DES_ENCRYPT); -+ DES_ncbc_encrypt(tmp_buf, buf + start, 1, &symcbc, (DES_cblock*)(initVect), DES_ENCRYPT); - *out_buffer_len = buffer_len + 8 - (buffer_len % 8); - } else - *out_buffer_len = buffer_len; Index: pkg/PLIST-main =================================================================== RCS file: /cvs/ports/security/hydra/pkg/PLIST-main,v retrieving revision 1.3 diff -u -p -u -p -r1.3 PLIST-main --- pkg/PLIST-main 5 Nov 2011 15:24:39 -0000 1.3 +++ pkg/PLIST-main 9 Oct 2016 08:17:22 -0000 @@ -1,8 +1,15 @@ @comment $OpenBSD: PLIST-main,v 1.3 2011/11/05 15:24:39 nigel Exp $ @pkgpath security/hydra +bin/dpl4hydra.sh @bin bin/hydra +bin/hydra-wizard.sh @bin bin/pw-inspector +hydra/ +hydra/etc/ +hydra/etc/dpl4hydra_full.csv +hydra/etc/dpl4hydra_local.csv @man man/man1/hydra.1 @man man/man1/pw-inspector.1 share/doc/hydra/ +share/doc/hydra/LICENSE share/doc/hydra/README