diff options
Diffstat (limited to 'app-crypt/hashcat')
-rw-r--r-- | app-crypt/hashcat/Manifest | 2 | ||||
-rw-r--r-- | app-crypt/hashcat/files/hashcat-hip.patch | 170 | ||||
-rw-r--r-- | app-crypt/hashcat/hashcat-6.2.6-r1.ebuild (renamed from app-crypt/hashcat/hashcat-6.2.1-r1.ebuild) | 55 | ||||
-rw-r--r-- | app-crypt/hashcat/hashcat-9999.ebuild | 48 | ||||
-rw-r--r-- | app-crypt/hashcat/metadata.xml | 2 |
5 files changed, 234 insertions, 43 deletions
diff --git a/app-crypt/hashcat/Manifest b/app-crypt/hashcat/Manifest index 47f1c021b864..526ecd2eb137 100644 --- a/app-crypt/hashcat/Manifest +++ b/app-crypt/hashcat/Manifest @@ -1 +1 @@ -DIST hashcat-6.2.1.tar.gz 5815254 BLAKE2B b6ce0edf7a7fe725570e557b6b414c8aad02e24933b2610be2607c895778d635543a90806aa40c3521f83f93de3b7556f04274d4f9893dacb53af82974df0be2 SHA512 435d8c66e1de14a4a95364eb06f41d10d221c4cf3286bed5ce333d3d07fe7ec2097fa57a3f925ef108a0c17091a65dc18b9c782f69ab8c0575061c14c9354563 +DIST hashcat-6.2.6.tar.gz 14234640 BLAKE2B fbbebc0a35b920442d4e1fb5822a8b9867db62bcc2404fba514fe1f06f0aa859a116cbe204eed71d340ad826dcfffffadca6963e5eec875ae2fee59068968b61 SHA512 b5e4f40fb5ed0a47977243e1f95bf1deae0b04bd5ca26338395305c42573fe5b17557835f6f5d8b7402812e8eadda2b260d6b927ce99429fd1b87eb26f002f8a diff --git a/app-crypt/hashcat/files/hashcat-hip.patch b/app-crypt/hashcat/files/hashcat-hip.patch new file mode 100644 index 000000000000..775dfb455d8a --- /dev/null +++ b/app-crypt/hashcat/files/hashcat-hip.patch @@ -0,0 +1,170 @@ +commit eaf3de164bdc327c059d3ae1bd3d2a79f6cd47bd +Author: Jens Steube <jens.steube@gmail.com> +Date: Tue Nov 1 19:36:03 2022 +0100 + + Remove option "-flegacy-pass-manager" if HIP backend is used. Support was removed from LLVM 15. There's no alternative option available. + Fixes #3469 + +diff --git a/src/backend.c b/src/backend.c +index 46a0bcdf1..193bbb447 100644 +--- a/src/backend.c ++++ b/src/backend.c +@@ -8396,7 +8389,7 @@ static bool load_kernel (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_p + + hiprtc_options[1] = "-nocudainc"; + hiprtc_options[2] = "-nocudalib"; +- hiprtc_options[3] = "-flegacy-pass-manager"; ++ hiprtc_options[3] = ""; + hiprtc_options[4] = ""; + + // untested but it should work +diff --git a/src/modules/module_00500.c b/src/modules/module_00500.c +index deb73024b..e86de7a19 100644 +--- a/src/modules/module_00500.c ++++ b/src/modules/module_00500.c +@@ -57,19 +57,6 @@ u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED c + return tmp_size; + } + +-char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const hc_device_param_t *device_param) +-{ +- char *jit_build_options = NULL; +- +- // AMD HIP +- if (device_param->opencl_device_vendor_id == VENDOR_ID_AMD_USE_HIP) +- { +- hc_asprintf (&jit_build_options, "-flegacy-pass-manager"); +- } +- +- return jit_build_options; +-} +- + static void md5crypt_decode (u8 digest[16], const u8 buf[22]) + { + int l; +@@ -304,7 +291,7 @@ void module_init (module_ctx_t *module_ctx) + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; +- module_ctx->module_jit_build_options = module_jit_build_options; ++ module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; +diff --git a/src/modules/module_00501.c b/src/modules/module_00501.c +index 22b28e385..b22c8f80d 100644 +--- a/src/modules/module_00501.c ++++ b/src/modules/module_00501.c +@@ -59,19 +59,6 @@ u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED c + return tmp_size; + } + +-char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const hc_device_param_t *device_param) +-{ +- char *jit_build_options = NULL; +- +- // AMD HIP +- if (device_param->opencl_device_vendor_id == VENDOR_ID_AMD_USE_HIP) +- { +- hc_asprintf (&jit_build_options, "-flegacy-pass-manager"); +- } +- +- return jit_build_options; +-} +- + static void AES128_decrypt_cbc (const u32 key[4], const u32 iv[4], const u32 in[16], u32 out[16]) + { + AES_KEY skey; +@@ -383,7 +370,7 @@ void module_init (module_ctx_t *module_ctx) + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; +- module_ctx->module_jit_build_options = module_jit_build_options; ++ module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; +diff --git a/src/modules/module_01500.c b/src/modules/module_01500.c +index fcd6e9f04..acc09c075 100644 +--- a/src/modules/module_01500.c ++++ b/src/modules/module_01500.c +@@ -168,11 +168,11 @@ char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAY + { + if ((user_options->attack_mode == ATTACK_MODE_BF) && (hashes->salts_cnt == 1) && (user_options->slow_candidates == false)) + { +- hc_asprintf (&jit_build_options, "-D DESCRYPT_SALT=%u -D _unroll -flegacy-pass-manager", hashes->salts_buf[0].salt_buf[0] & 0xfff); ++ hc_asprintf (&jit_build_options, "-D DESCRYPT_SALT=%u -D _unroll", hashes->salts_buf[0].salt_buf[0] & 0xfff); + } + else + { +- hc_asprintf (&jit_build_options, "-D _unroll -flegacy-pass-manager"); ++ hc_asprintf (&jit_build_options, "-D _unroll"); + } + } + else +diff --git a/src/modules/module_01600.c b/src/modules/module_01600.c +index 63f6038a6..5c62252b1 100644 +--- a/src/modules/module_01600.c ++++ b/src/modules/module_01600.c +@@ -57,19 +57,6 @@ u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED c + return tmp_size; + } + +-char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const hc_device_param_t *device_param) +-{ +- char *jit_build_options = NULL; +- +- // AMD HIP +- if (device_param->opencl_device_vendor_id == VENDOR_ID_AMD_USE_HIP) +- { +- hc_asprintf (&jit_build_options, "-flegacy-pass-manager"); +- } +- +- return jit_build_options; +-} +- + static void md5crypt_decode (u8 digest[16], const u8 buf[22]) + { + int l; +@@ -304,7 +291,7 @@ void module_init (module_ctx_t *module_ctx) + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; +- module_ctx->module_jit_build_options = module_jit_build_options; ++ module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; +diff --git a/src/modules/module_06300.c b/src/modules/module_06300.c +index 34dbb7a74..02fc4d051 100644 +--- a/src/modules/module_06300.c ++++ b/src/modules/module_06300.c +@@ -57,19 +57,6 @@ u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED c + return tmp_size; + } + +-char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const hc_device_param_t *device_param) +-{ +- char *jit_build_options = NULL; +- +- // AMD HIP +- if (device_param->opencl_device_vendor_id == VENDOR_ID_AMD_USE_HIP) +- { +- hc_asprintf (&jit_build_options, "-flegacy-pass-manager"); +- } +- +- return jit_build_options; +-} +- + static void md5crypt_decode (u8 digest[16], const u8 buf[22]) + { + int l; +@@ -295,7 +282,7 @@ void module_init (module_ctx_t *module_ctx) + module_ctx->module_hook23 = MODULE_DEFAULT; + module_ctx->module_hook_salt_size = MODULE_DEFAULT; + module_ctx->module_hook_size = MODULE_DEFAULT; +- module_ctx->module_jit_build_options = module_jit_build_options; ++ module_ctx->module_jit_build_options = MODULE_DEFAULT; + module_ctx->module_jit_cache_disable = MODULE_DEFAULT; + module_ctx->module_kernel_accel_max = MODULE_DEFAULT; + module_ctx->module_kernel_accel_min = MODULE_DEFAULT; diff --git a/app-crypt/hashcat/hashcat-6.2.1-r1.ebuild b/app-crypt/hashcat/hashcat-6.2.6-r1.ebuild index 1adb6223b74a..162c494087d4 100644 --- a/app-crypt/hashcat/hashcat-6.2.1-r1.ebuild +++ b/app-crypt/hashcat/hashcat-6.2.6-r1.ebuild @@ -1,15 +1,13 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit pax-utils toolchain-funcs DESCRIPTION="World's fastest and most advanced password recovery utility" HOMEPAGE="https://github.com/hashcat/hashcat" -LICENSE="MIT" -SLOT="0" -if [ "${PV}" = "9999" ]; then +if [[ ${PV} == "9999" ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/hashcat/hashcat.git" else @@ -17,33 +15,48 @@ else SRC_URI="https://github.com/hashcat/hashcat/archive/v${PV}.tar.gz -> ${P}.tar.gz" fi +LICENSE="MIT" +SLOT="0" IUSE="brain video_cards_nvidia" -DEPEND=" - app-arch/lzma +RESTRICT=test + +DEPEND="app-arch/lzma app-arch/unrar sys-libs/zlib[minizip] brain? ( dev-libs/xxhash ) - video_cards_nvidia? ( >x11-drivers/nvidia-drivers-440.64 - || ( dev-util/nvidia-cuda-toolkit - virtual/opencl ) - ) - !video_cards_nvidia? ( virtual/opencl )" + video_cards_nvidia? ( + >x11-drivers/nvidia-drivers-440.64 + || ( + dev-util/nvidia-cuda-toolkit + virtual/opencl + ) + ) + !video_cards_nvidia? ( + virtual/opencl + dev-util/opencl-headers + )" RDEPEND="${DEPEND}" +PATCHES=( "${FILESDIR}/hashcat-hip.patch" ) + src_prepare() { - # remove bundled stuff + # Remove bundled stuff rm -r deps/OpenCL-Headers || die "Failed to remove bundled OpenCL Headers" rm -r deps/xxHash || die "Failed to remove bundled xxHash" + # TODO: Gentoo's app-arch/lzma doesn't install the needed files #rm -r deps/LZMA-SDK || die "Failed to remove bundled LZMA-SDK" #rm -r deps || die "Failed to remove bundled deps" - # do not strip - sed -i "/LFLAGS += -s/d" src/Makefile - # do not add random CFLAGS + # Do not strip + sed -i "/LFLAGS += -s/d" src/Makefile || die + + # Do not add random CFLAGS sed -i "s/-O2//" src/Makefile || die + #sed -i "#LZMA_SDK_INCLUDE#d" src/Makefile || die - # respect CC, CXX, AR + + # Respect CC, CXX, AR sed -i \ -e 's/:= gcc/:= $(CC)/' \ -e 's/:= g++/:= $(CXX)/' \ @@ -80,14 +93,14 @@ src_test() { addwrite /dev/nvidia0 addwrite /dev/nvidiactl addwrite /dev/nvidia-uvm - if [ ! -w /dev/nvidia0 ]; then + + if [[ ! -w /dev/nvidia0 ]]; then einfo "To run these tests, portage likely must be in the video group." einfo "Please run \"gpasswd -a portage video\" if the tests will fail" fi - #elif use vidia_cards_fglrx; then - # addwrite /dev/ati fi - #this always exits with 255 despite success + + # This always exits with 255 despite success #./hashcat -b -m 2500 || die "Test failed" LD_PRELOAD=./libhashcat.so.${PV} ./hashcat -a 3 -m 1500 nQCk49SiErOgk || die "Test failed" } diff --git a/app-crypt/hashcat/hashcat-9999.ebuild b/app-crypt/hashcat/hashcat-9999.ebuild index 1adb6223b74a..d2c503812e53 100644 --- a/app-crypt/hashcat/hashcat-9999.ebuild +++ b/app-crypt/hashcat/hashcat-9999.ebuild @@ -1,15 +1,13 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit pax-utils toolchain-funcs DESCRIPTION="World's fastest and most advanced password recovery utility" HOMEPAGE="https://github.com/hashcat/hashcat" -LICENSE="MIT" -SLOT="0" -if [ "${PV}" = "9999" ]; then +if [[ ${PV} == "9999" ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/hashcat/hashcat.git" else @@ -17,33 +15,43 @@ else SRC_URI="https://github.com/hashcat/hashcat/archive/v${PV}.tar.gz -> ${P}.tar.gz" fi +LICENSE="MIT" +SLOT="0" IUSE="brain video_cards_nvidia" -DEPEND=" - app-arch/lzma +RESTRICT=test + +DEPEND="app-arch/lzma app-arch/unrar sys-libs/zlib[minizip] brain? ( dev-libs/xxhash ) - video_cards_nvidia? ( >x11-drivers/nvidia-drivers-440.64 - || ( dev-util/nvidia-cuda-toolkit - virtual/opencl ) - ) + video_cards_nvidia? ( + >x11-drivers/nvidia-drivers-440.64 + || ( + dev-util/nvidia-cuda-toolkit + virtual/opencl + ) + ) !video_cards_nvidia? ( virtual/opencl )" RDEPEND="${DEPEND}" src_prepare() { - # remove bundled stuff + # Remove bundled stuff rm -r deps/OpenCL-Headers || die "Failed to remove bundled OpenCL Headers" rm -r deps/xxHash || die "Failed to remove bundled xxHash" + # TODO: Gentoo's app-arch/lzma doesn't install the needed files #rm -r deps/LZMA-SDK || die "Failed to remove bundled LZMA-SDK" #rm -r deps || die "Failed to remove bundled deps" - # do not strip - sed -i "/LFLAGS += -s/d" src/Makefile - # do not add random CFLAGS + # Do not strip + sed -i "/LFLAGS += -s/d" src/Makefile || die + + # Do not add random CFLAGS sed -i "s/-O2//" src/Makefile || die + #sed -i "#LZMA_SDK_INCLUDE#d" src/Makefile || die - # respect CC, CXX, AR + + # Respect CC, CXX, AR sed -i \ -e 's/:= gcc/:= $(CC)/' \ -e 's/:= g++/:= $(CXX)/' \ @@ -80,14 +88,14 @@ src_test() { addwrite /dev/nvidia0 addwrite /dev/nvidiactl addwrite /dev/nvidia-uvm - if [ ! -w /dev/nvidia0 ]; then + + if [[ ! -w /dev/nvidia0 ]]; then einfo "To run these tests, portage likely must be in the video group." einfo "Please run \"gpasswd -a portage video\" if the tests will fail" fi - #elif use vidia_cards_fglrx; then - # addwrite /dev/ati fi - #this always exits with 255 despite success + + # This always exits with 255 despite success #./hashcat -b -m 2500 || die "Test failed" LD_PRELOAD=./libhashcat.so.${PV} ./hashcat -a 3 -m 1500 nQCk49SiErOgk || die "Test failed" } diff --git a/app-crypt/hashcat/metadata.xml b/app-crypt/hashcat/metadata.xml index ec1b0af6d4b7..29d0cbb4f79a 100644 --- a/app-crypt/hashcat/metadata.xml +++ b/app-crypt/hashcat/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>zerochaos@gentoo.org</email> |