diff --git a/security/hashcat/Makefile b/security/hashcat/Makefile index 7fc1e358d8e2..d545635c385d 100644 --- a/security/hashcat/Makefile +++ b/security/hashcat/Makefile @@ -1,48 +1,49 @@ PORTNAME= hashcat PORTVERSION= 6.2.5 DISTVERSIONPREFIX= v PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= security MAINTAINER= se@FreeBSD.org COMMENT= Advanced CPU-based password recovery utility LICENSE= MIT LICENSE_FILE= ${WRKSRC}/docs/license.txt -NOT_FOR_ARCHS= aarch64 powerpc powerpc64 powerpcspe sparc64 +NOT_FOR_ARCHS= powerpc powerpc64 powerpcspe sparc64 NOT_FOR_ARCHS_REASON= fails to compile: compiling for big-endian architecture not supported -NOT_FOR_ARCHS_REASON_aarch64= fails to compile BUILD_DEPENDS= minizip:archivers/minizip USES= compiler:c11 gmake iconv localbase shebangfix USE_GITHUB= yes GH_ACCOUNT= KhronosGroup:opencl Cyan4973:xxhash GH_PROJECT= OpenCL-Headers:opencl xxHash:xxhash GH_SUBDIR= deps/git/OpenCL-Headers:opencl deps/git/xxHash:xxhash GH_TAGNAME= 1d3dc4e:opencl c0e86bc:xxhash SHEBANG_FILES= extra/tab_completion/install MAKE_ARGS+= SHARED=1 \ CC="${CC}" \ LFLAGS_NATIVE="${LDFLAGS} -lpthread -lm" \ CFLAGS_NATIVE="${CFLAGS} -Iinclude -IOpenCL -Ideps/LZMA-SDK/C -Ideps/git/OpenCL-Headers" ALL_TARGET= default PLIST_SUB= PORTVERSION=${PORTVERSION} OPTIONS_DEFINE= BRAIN DOCS OPTIONS_DEFAULT= BRAIN BRAIN_DESC= Build Hashcat Brain BRAIN_MAKE_ARGS_OFF= ENABLE_BRAIN=0 BRAIN_CFLAGS= -DWITH_BRAIN -Ideps/git/xxHash +CFLAGS_aarch64+= -march=armv8-a+crc+crypto + pre-install: ${STRIP_CMD} ${WRKSRC}/libhashcat.so.${PORTVERSION} ${STRIP_CMD} ${WRKSRC}/modules/*.so ${STRIP_CMD} ${WRKSRC}/hashcat .include diff --git a/security/hashcat/files/patch-deps_LZMA-SDK_C_CpuArch.c b/security/hashcat/files/patch-deps_LZMA-SDK_C_CpuArch.c new file mode 100644 index 000000000000..a788aaec3e8b --- /dev/null +++ b/security/hashcat/files/patch-deps_LZMA-SDK_C_CpuArch.c @@ -0,0 +1,34 @@ +--- deps/LZMA-SDK/C/CpuArch.c.orig 2022-03-25 08:13:08 UTC ++++ deps/LZMA-SDK/C/CpuArch.c +@@ -384,6 +384,23 @@ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYP + + #include + ++#if defined(__FreeBSD__) ++static UInt64 get_hwcap() { ++ unsigned long hwcap; ++ if(elf_aux_info(AT_HWCAP, &hwcap, sizeof(unsigned long)) != 0) { ++ return(0); ++ } ++ return hwcap; ++} ++ ++BoolInt CPU_IsSupported_CRC32(void) { return get_hwcap() & HWCAP_CRC32; } ++BoolInt CPU_IsSupported_NEON(void) { return 1; } ++BoolInt CPU_IsSupported_SHA1(void){ return get_hwcap() & HWCAP_SHA1; } ++BoolInt CPU_IsSupported_SHA2(void) { return get_hwcap() & HWCAP_SHA2; } ++BoolInt CPU_IsSupported_AES(void) { return get_hwcap() & HWCAP_AES; } ++ ++#else // __FreeBSD__ ++ + #define USE_HWCAP + + #ifdef USE_HWCAP +@@ -410,6 +427,7 @@ MY_HWCAP_CHECK_FUNC (SHA1) + MY_HWCAP_CHECK_FUNC (SHA2) + MY_HWCAP_CHECK_FUNC (AES) + ++#endif // FreeBSD + #endif // __APPLE__ + #endif // _WIN32 +