diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 7745bcb..8775420 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1 @@ -/hashcat-5.1.0.tar.gz -/hashcat-6.0.0.tar.gz -/hashcat-6.1.1.tar.gz -/hashcat-6.2.1-clean.tar.xz -/hashcat-6.2.2-clean.tar.xz +/hashcat-*.tar.xz diff --git a/README.md b/README.md deleted file mode 100644 index 54d774c..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# hashcat - -The hashcat package \ No newline at end of file diff --git a/changelog b/changelog new file mode 100644 index 0000000..c706018 --- /dev/null +++ b/changelog @@ -0,0 +1,2 @@ +* Fri Jan 17 2025 Fedora Release Engineering - 6.2.6-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..4b79bd1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,16 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} diff --git a/hashcat-build-fixes.patch b/hashcat-build-fixes.patch index fbca243..737994a 100644 --- a/hashcat-build-fixes.patch +++ b/hashcat-build-fixes.patch @@ -1,17 +1,17 @@ -From f41879a099fceaef0a1a648dc78a2437006b2866 Mon Sep 17 00:00:00 2001 -From: Vitaly Zaitsev -Date: Wed, 17 Jun 2020 10:57:15 +0200 -Subject: [PATCH] Fedora build patches. +From d4ebb8d60a87a638c20fa1de1b4560142a69feb5 Mon Sep 17 00:00:00 2001 +From: Carlos Rodriguez-Fernandez +Date: Wed, 29 Oct 2025 12:15:25 -0700 +Subject: [PATCH] fixes --- - src/Makefile | 11 ++++------- - 1 file changed, 4 insertions(+), 7 deletions(-) + src/Makefile | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/Makefile b/src/Makefile -index 2c691bc47..d55b7b5ba 100644 +index 72986407c..49cbaf924 100644 --- a/src/Makefile +++ b/src/Makefile -@@ -43,7 +43,7 @@ endif +@@ -52,7 +52,7 @@ endif ## Makefile flags ## @@ -20,7 +20,16 @@ index 2c691bc47..d55b7b5ba 100644 ifneq ($(findstring clean,$(MAKECMDGOALS)),) MAKEFLAGS += -j 1 -@@ -223,10 +223,7 @@ endif +@@ -167,8 +167,6 @@ DEPS_UNRAR_PATH := $(LIBRARY_DEV_ROOT_FOLDER) + endif + endif + +-DEPS_SSE2NEON := deps/sse2neon +- + ## + ## Filenames for library and frontend + ## +@@ -275,10 +273,7 @@ endif endif ifeq ($(DEBUG),0) @@ -32,24 +41,47 @@ index 2c691bc47..d55b7b5ba 100644 else ifeq ($(DEBUG),1) ifneq ($(UNAME),Darwin) -@@ -467,7 +464,7 @@ endif +@@ -427,7 +422,6 @@ endif # Darwin + + ifeq ($(IS_ARM),1) + CFLAGS_NATIVE += -DSSE2NEON_SUPPRESS_WARNINGS +-CFLAGS_NATIVE += -I$(DEPS_SSE2NEON) + endif + + ifeq ($(UNAME),CYGWIN) +@@ -589,7 +583,7 @@ endif .PHONY: install ifeq ($(SHARED),1) --install: install_docs install_shared install_library install_library_dev install_kernels install_modules install_hashcat -+install: install_shared install_library install_library_dev install_kernels install_modules install_hashcat +-install: install_docs install_shared install_tools install_library install_library_dev install_tunings install_kernels install_modules install_bridges install_hashcat ++install: install_shared install_library install_library_dev install_tunings install_kernels install_modules install_bridges install_hashcat else - install: install_docs install_shared install_kernels install_modules install_hashcat + install: install_docs install_shared install_tools install_tunings install_kernels install_modules install_bridges install_hashcat endif -@@ -533,7 +530,7 @@ install_kernels: install_shared +@@ -660,13 +654,13 @@ install_kernels: install_shared install_modules: install_shared modules $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/modules $(FIND) modules/ -mindepth 1 -type d -execdir $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/modules/{} \; - $(FIND) modules/ -mindepth 1 -type f -execdir $(INSTALL) -m 644 {} $(DESTDIR)$(SHARED_FOLDER)/modules/{} \; + $(FIND) modules/ -mindepth 1 -type f -execdir $(INSTALL) -m 755 {} $(DESTDIR)$(SHARED_FOLDER)/modules/{} \; + .PHONY: install_bridges + install_bridges: install_shared bridges + $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/bridges + $(FIND) bridges/ -mindepth 1 -type d -execdir $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/bridges/{} \; +- $(FIND) bridges/ -mindepth 1 -type f -execdir $(INSTALL) -m 644 {} $(DESTDIR)$(SHARED_FOLDER)/bridges/{} \; ++ $(FIND) bridges/ -mindepth 1 -type f -execdir $(INSTALL) -m 755 {} $(DESTDIR)$(SHARED_FOLDER)/bridges/{} \; + .PHONY: install_library install_library: $(HASHCAT_LIBRARY) +@@ -892,7 +886,6 @@ endif + + ifeq ($(IS_ARM),1) + CFLAGS_CROSS_LINUX += -DSSE2NEON_SUPPRESS_WARNINGS +-CFLAGS_CROSS_LINUX += -I$(DEPS_SSE2NEON) + endif + + ## -- -2.31.1 +2.51.0 diff --git a/hashcat-e-rule-fixes.patch b/hashcat-e-rule-fixes.patch deleted file mode 100644 index bd7d997..0000000 --- a/hashcat-e-rule-fixes.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/OpenCL/inc_rp.cl b/OpenCL/inc_rp.cl -index 9a50e18020..8cecc661da 100644 ---- a/OpenCL/inc_rp.cl -+++ b/OpenCL/inc_rp.cl -@@ -688,7 +688,9 @@ DECLSPEC int mangle_dupeblock_last (MAYBE_UNUSED const u8 p0, MAYBE_UNUSED const - - DECLSPEC int mangle_title_sep (MAYBE_UNUSED const u8 p0, MAYBE_UNUSED const u8 p1, u32 *buf, const int len) - { -- if ((len + 4) >= RP_PASSWORD_SIZE) return (len); // cheap way to not need to check for overflow of i + 1 -+ if (len >= RP_PASSWORD_SIZE) return (len); -+ -+ u32 rem = 0xff; - - for (int i = 0, idx = 0; i < len; i += 4, idx += 1) - { -@@ -696,21 +698,17 @@ DECLSPEC int mangle_title_sep (MAYBE_UNUSED const u8 p0, MAYBE_UNUSED const u8 p - - buf[idx] = t | generate_cmask (t); - -- u32 out0 = 0; -- u32 out1 = 0; -- -- if (((t >> 0) & 0xff) == p0) out0 |= 0x0000ff00; -- if (((t >> 8) & 0xff) == p0) out0 |= 0x00ff0000; -- if (((t >> 16) & 0xff) == p0) out0 |= 0xff000000; -- if (((t >> 24) & 0xff) == p0) out1 |= 0x000000ff; -+ u32 out = rem; - -- buf[idx + 0] &= ~(generate_cmask (buf[idx + 0]) & out0); -- buf[idx + 1] &= ~(generate_cmask (buf[idx + 1]) & out1); -- } -+ rem = 0; - -- const u32 t = buf[0]; -+ if (((t >> 0) & 0xff) == p0) out |= 0x0000ff00; -+ if (((t >> 8) & 0xff) == p0) out |= 0x00ff0000; -+ if (((t >> 16) & 0xff) == p0) out |= 0xff000000; -+ if (((t >> 24) & 0xff) == p0) rem |= 0x000000ff; - -- buf[0] = t & ~(0x00000020 & generate_cmask (t)); -+ buf[idx] &= ~(generate_cmask (buf[idx]) & out); -+ } - - return (len); - } diff --git a/hashcat.spec b/hashcat.spec index da61b47..3569ac3 100644 --- a/hashcat.spec +++ b/hashcat.spec @@ -7,7 +7,7 @@ %bcond_with zlib %endif -%global makeflags PREFIX=%{_prefix} LIBRARY_FOLDER=%{_libdir} SHARED_ROOT_FOLDER=%{_libdir} DOCUMENT_FOLDER=%{_docdir}/hashcat-doc SHARED=1 USE_SYSTEM_OPENCL=1 USE_SYSTEM_XXHASH=1 ENABLE_UNRAR=0 +%global makeflags PREFIX=%{_prefix} LIBRARY_FOLDER=%{_libdir} SHARED_ROOT_FOLDER=%{_libdir} DOCUMENT_FOLDER=%{_docdir}/hashcat-doc SHARED=1 USE_SYSTEM_OPENCL=1 USE_SYSTEM_XXHASH=1 ENABLE_UNRAR=0 MAINTAINER_MODE=1 %if %{with zlib} %global makeflags %(echo %{makeflags} USE_SYSTEM_ZLIB=1) @@ -16,10 +16,10 @@ %endif Name: hashcat -Version: 6.2.2 -Release: 1%{?dist} +Version: 7.1.2 +Release: %autorelease -License: MIT and Public Domain +License: MIT AND LicenseRef-Fedora-Public-Domain AND BSD-2-Clause AND Apache-2.0 URL: https://github.com/%{name}/%{name} Summary: Advanced password recovery utility @@ -30,30 +30,33 @@ Source0: %{name}-%{version}-clean.tar.xz Source1: make_tarball.sh Patch0: %{name}-build-fixes.patch -# https://github.com/hashcat/hashcat/commit/8ebf4b98584213891f6e48570c91c31d22b80a81 -Patch100: %{name}-e-rule-fixes.patch - BuildRequires: opencl-headers BuildRequires: xxhash-devel +%ifarch aarch64 +BuildRequires: sse2neon-devel +%endif + BuildRequires: gcc BuildRequires: make %if %{with zlib} -BuildRequires: zlib-devel +BuildRequires: zlib-ng-compat-devel BuildRequires: minizip-compat-devel %else Provides: bundled(zlib) = 1.2.11 Provides: bundled(minizip) = 1.2.11 %endif +Provides: bundled(lzma-sdk) = 24.09 +Provides: bundled(scrypt-jane) +Provides: bundled(yescrypt) +Provides: bundled(libargon2) = 20190702 -%if 0%{?fedora} -Recommends: mesa-libOpenCL%{?_isa} -Recommends: pocl%{?_isa} -Recommends: %{name}-doc = %{?epoch:%{epoch}:}%{version}-%{release} -%endif +Recommends: %{name}-doc # Upstream does not support Big Endian architectures. -ExcludeArch: ppc64 s390x +# Upstream source code does not longer build for ppc64le: https://bugzilla.redhat.com/show_bug.cgi?id=2407234 +# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: %{ix86} ppc64 s390x ppc64le %description Hashcat is the world's fastest and most advanced password recovery @@ -80,7 +83,7 @@ BuildArch: noarch %prep %autosetup -p1 -rm -rf deps/{OpenCL-Headers,xxHash} +rm -rf deps/{OpenCL-Headers,xxHash,sse2neon} %if %{with zlib} rm -rf deps/zlib %endif @@ -97,6 +100,7 @@ rm -f modules/.lock ln -s lib%{name}.so.%{version} %{buildroot}%{_libdir}/lib%{name}.so mkdir -p %{buildroot}%{_datadir}/bash-completion/completions install -m 0744 -p extra/tab_completion/hashcat.sh %{buildroot}%{_datadir}/bash-completion/completions/%{name} +find %{buildroot}%{_libdir}/%{name}/ -name '.gitkeep' -type f -delete %files %license docs/license.txt @@ -115,11 +119,4 @@ install -m 0744 -p extra/tab_completion/hashcat.sh %{buildroot}%{_datadir}/bash- %doc example.dict example*.sh %changelog -* Sun Jun 13 2021 Vitaly Zaitsev - 6.2.2-1 -- Updated to version 6.2.2. - -* Sat May 15 2021 Vitaly Zaitsev - 6.2.1-1 -- Updated to version 6.2.1. - -* Tue Jan 26 2021 Fedora Release Engineering - 6.1.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild +%autochangelog diff --git a/make_tarball.sh b/make_tarball.sh index b6a8065..c2bafac 100755 --- a/make_tarball.sh +++ b/make_tarball.sh @@ -2,7 +2,13 @@ set -e NAME="hashcat" -VERSION="6.2.2" +VERSION="$1" + +if [ -z "$VERSION" ] +then + echo "Usage: ./make_tarball.sh {version}" + exit 1 +fi TARBALL_DIR="$NAME-$VERSION" TARBALL_ORIG="$NAME-$VERSION.tar.gz" diff --git a/plans/main.fmf b/plans/main.fmf new file mode 100644 index 0000000..c1627f9 --- /dev/null +++ b/plans/main.fmf @@ -0,0 +1,5 @@ +summary: Basic smoke test +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index 72d9f04..776ee7a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hashcat-6.2.2-clean.tar.xz) = 281d969b59b602a5adfbf6f6733c455a28f92733fbd5f50607a0ca65cf0621adc798f73a85707d25874f1934e6e8e3e0304cc01c77dfb491c6a0689c8889ef60 +SHA512 (hashcat-7.1.2-clean.tar.xz) = 39d525d8f835227a2d9a081ce5b96eabebeff15f10707115f94339f9edd55228885dcd151ace9132e937147318d44447dbb53f8c05b3048f5cb24d620a4f00af diff --git a/tests/core/main.fmf b/tests/core/main.fmf new file mode 100644 index 0000000..78884f4 --- /dev/null +++ b/tests/core/main.fmf @@ -0,0 +1 @@ +summary: hashcat cli smoke test diff --git a/tests/core/test.sh b/tests/core/test.sh new file mode 100755 index 0000000..ffd8682 --- /dev/null +++ b/tests/core/test.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartTest + rlRun "hashcat --version" 0 "version info" + rlPhaseEnd + + rlPhaseStartTest + rlRun -s "hashcat --help" 0 "help" + rlAssertGrep "Usage" "$rlRun_LOG" + rlPhaseEnd + + rlPhaseStartTest + rlRun -s "hashcat --hash-info" 0 "hash info" + rlAssertGrep "Hash Info" "$rlRun_LOG" + rlPhaseEnd +rlJournalEnd diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..f61588b --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,4 @@ +summary: hashcat smoke test +test: ./test.sh +framework: beakerlib +require: ["hashcat"] \ No newline at end of file