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

Reply via email to