dev-libs/isa-l_crypto: add 2.25.0

Closes: https://bugs.gentoo.org/923719
Closes: https://bugs.gentoo.org/924865
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2025-06-07 22:46:41 +01:00
parent 830e49fcc2
commit 95cddcfbc3
8 changed files with 309 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST isa-l_crypto-2.24.0.tar.gz 687392 BLAKE2B 10b5e820f9e9d25f0f013d4cfe832760363bf1f1f2759a94f733b25ebd62b52a98262969e24be1ba86d132ee6eaefc9e64c99cceb4f9ba206c848b9aeb45f9d8 SHA512 f72800a8ff9c0b2bfdd88cb6780db91bfd5763af04a6318aa3acaff0b1326e3348cb3a4aff17c99636eb291d1ff6249dcf896392a2450adacd83ddbf4c7299da
DIST isa-l_crypto-2.25.0.tar.gz 837729 BLAKE2B 18328b404a2686718fc8cf9bc596816e4521ec85440e8aad2bb40d32eabc606807617fc08c2790c4bb0a0b84648fa9820a4a6c19ac6a3cbbbc2cd96bddfd1eb9 SHA512 d63f14468258b977cf85bcb2cb5a6de1a678d51631cdbb361aed0f45a5c0ae3770bb40721b6da1cfe889cb88c2c5620a12adf2a8b0c90031f1bfe1b276641f38

View File

@@ -0,0 +1,26 @@
https://github.com/intel/isa-l_crypto/commit/0850c01cc03e45f77d5883372dd6be983ba163ce
From 0850c01cc03e45f77d5883372dd6be983ba163ce Mon Sep 17 00:00:00 2001
From: Mehrdad Tahernia <mehrdad@n-hop.com>
Date: Tue, 28 Jan 2025 11:55:20 +0800
Subject: [PATCH] configure.ac: fix syntax for AVX512 support check
Signed-off-by: Mehrdad Tahernia <mehrdad@n-hop.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 2af2f15f..8e9b9db9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -217,7 +217,7 @@ int main(int argc, char **argv)
fi
if test x"$as_feature_level" = x"6"; then
AC_MSG_CHECKING([for additional as AVX512 support])
- AC_LANG_CONFTEST([AC_LANG_SOURCE([[vpcompressb zmm0, k1, zmm1;]])])
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([[vpcompressb zmm0 {k1}, zmm1;]])])
sed -i -e '/vpcompressb/!d' conftest.c
if $AS -f elf64 conftest.c 2> /dev/null; then
AC_MSG_RESULT([yes])

View File

@@ -0,0 +1,23 @@
Don't override hardened toolchain defaults.
--- a/configure.ac
+++ b/configure.ac
@@ -311,8 +311,6 @@ my_CFLAGS="\
-Wshadow \
-Wstrict-prototypes \
-Wtype-limits \
--fstack-protector \
--D_FORTIFY_SOURCE=2 \
-DNO_COMPAT_ISAL_CRYPTO_API_2_24
"
AC_SUBST([my_CFLAGS])
--- a/make.inc
+++ b/make.inc
@@ -51,7 +51,7 @@ DEBUG = -g
DEBUG_nasm = -g
# Default arch= build options
-CFLAGS_ = -Wall -Wchar-subscripts -Wformat-security -Wnested-externs -Wpointer-arith -Wshadow -Wstrict-prototypes -Wtype-limits -fstack-protector -D_FORTIFY_SOURCE=2 -DNO_COMPAT_ISAL_CRYPTO_API_2_24
+CFLAGS_ = -Wall -Wchar-subscripts -Wformat-security -Wnested-externs -Wpointer-arith -Wshadow -Wstrict-prototypes -Wtype-limits -DNO_COMPAT_ISAL_CRYPTO_API_2_24
ASFLAGS_ = -f elf64
ARFLAGS_ = cr $@
STRIP_gcc = strip -d -R .comment $@

View File

@@ -0,0 +1,18 @@
--- a/configure.ac
+++ b/configure.ac
@@ -119,6 +119,7 @@ AS_IF([test "x$intel_cet_enabled" = "xyes"], [
])
# check if LD -z options are supported
+orig_LDFLAGS="${LDFLAGS}"
LDFLAGS="\
-Wl,-z,noexecstack \
-Wl,-z,relro \
@@ -283,6 +284,7 @@ else
AM_CONDITIONAL(WITH_SHANI, test "x" = "y")
AM_CONDITIONAL(DARWIN, test "x" = "y")
fi
+LDFLAGS="${orig_LDFLAGS}"
# Check for header files
AC_CHECK_HEADERS([limits.h stdint.h stdlib.h string.h])

View File

@@ -0,0 +1,65 @@
https://github.com/intel/isa-l_crypto/commit/6e62643df9ed6c2c62e287d14f192057189dda8d
From 6e62643df9ed6c2c62e287d14f192057189dda8d Mon Sep 17 00:00:00 2001
From: "Ivan A. Melnikov" <iv@altlinux.org>
Date: Wed, 31 Jul 2024 17:44:29 +0400
Subject: [PATCH] sha1_mb: Add missing ISAL_ prefixes to base aliases
Commit 0106da915b7024075fc74900ff63fa931ac15475 somehow
missed updating the base aliases, which broke build
on architectures for which SHA1 routines were not
specifically optimized, e.g. loongarch64.
This commit addresses that.
Fixes: 0106da915b7024075fc74900ff63fa931ac15475
Signed-off-by: Ivan A. Melnikov <iv@altlinux.org>
---
sha1_mb/sha1_ctx_base_aliases.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/sha1_mb/sha1_ctx_base_aliases.c b/sha1_mb/sha1_ctx_base_aliases.c
index 517cfc15..b0c7643c 100644
--- a/sha1_mb/sha1_ctx_base_aliases.c
+++ b/sha1_mb/sha1_ctx_base_aliases.c
@@ -32,28 +32,28 @@
#include "memcpy_inline.h"
extern void
-_sha1_ctx_mgr_init_base(SHA1_HASH_CTX_MGR *mgr);
-extern SHA1_HASH_CTX *
-_sha1_ctx_mgr_submit_base(SHA1_HASH_CTX_MGR *mgr, SHA1_HASH_CTX *ctx, const void *buffer,
+_sha1_ctx_mgr_init_base(ISAL_SHA1_HASH_CTX_MGR *mgr);
+extern ISAL_SHA1_HASH_CTX *
+_sha1_ctx_mgr_submit_base(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, const void *buffer,
uint32_t len, ISAL_HASH_CTX_FLAG flags);
-extern SHA1_HASH_CTX *
-_sha1_ctx_mgr_flush_base(SHA1_HASH_CTX_MGR *mgr);
+extern ISAL_SHA1_HASH_CTX *
+_sha1_ctx_mgr_flush_base(ISAL_SHA1_HASH_CTX_MGR *mgr);
void
-_sha1_ctx_mgr_init(SHA1_HASH_CTX_MGR *mgr)
+_sha1_ctx_mgr_init(ISAL_SHA1_HASH_CTX_MGR *mgr)
{
return _sha1_ctx_mgr_init_base(mgr);
}
-SHA1_HASH_CTX *
-_sha1_ctx_mgr_submit(SHA1_HASH_CTX_MGR *mgr, SHA1_HASH_CTX *ctx, const void *buffer, uint32_t len,
- ISAL_HASH_CTX_FLAG flags)
+ISAL_SHA1_HASH_CTX *
+_sha1_ctx_mgr_submit(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, const void *buffer,
+ uint32_t len, ISAL_HASH_CTX_FLAG flags)
{
return _sha1_ctx_mgr_submit_base(mgr, ctx, buffer, len, flags);
}
-SHA1_HASH_CTX *
-_sha1_ctx_mgr_flush(SHA1_HASH_CTX_MGR *mgr)
+ISAL_SHA1_HASH_CTX *
+_sha1_ctx_mgr_flush(ISAL_SHA1_HASH_CTX_MGR *mgr)
{
return _sha1_ctx_mgr_flush_base(mgr);
}

View File

@@ -0,0 +1,101 @@
https://github.com/intel/isa-l_crypto/commit/2188e8a03357a64f768a2765bcf452401a2b12fc
From 2188e8a03357a64f768a2765bcf452401a2b12fc Mon Sep 17 00:00:00 2001
From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Date: Tue, 5 Nov 2024 09:07:36 +0000
Subject: [PATCH] tests: [ACVP] use internal isa-l crypto library
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
tests/acvp/acvp_app.c | 2 +-
tests/acvp/acvp_app_isal_cbc.c | 3 ++-
tests/acvp/acvp_app_isal_gcm.c | 3 ++-
tests/acvp/acvp_app_isal_sha.c | 5 ++++-
tests/acvp/acvp_app_isal_xts.c | 3 ++-
tests/acvp/makefile | 2 +-
6 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/tests/acvp/acvp_app.c b/tests/acvp/acvp_app.c
index cb811622..c144ef23 100644
--- a/tests/acvp/acvp_app.c
+++ b/tests/acvp/acvp_app.c
@@ -33,7 +33,7 @@
#include <string.h>
#include <getopt.h>
#include <acvp/acvp.h>
-#include <isa-l_crypto.h>
+#include "include/isal_crypto_api.h"
#if defined(__GNUC__) || defined(__clang__)
#define ATTRIBUTE(x) __attribute__((x))
diff --git a/tests/acvp/acvp_app_isal_cbc.c b/tests/acvp/acvp_app_isal_cbc.c
index 39d0c9f0..f5c6ddc3 100644
--- a/tests/acvp/acvp_app_isal_cbc.c
+++ b/tests/acvp/acvp_app_isal_cbc.c
@@ -32,7 +32,8 @@
#include <stdlib.h>
#include <acvp/acvp.h>
-#include <isa-l_crypto.h>
+#include "include/aes_cbc.h"
+#include "include/aes_keyexp.h"
extern uint8_t verbose;
diff --git a/tests/acvp/acvp_app_isal_gcm.c b/tests/acvp/acvp_app_isal_gcm.c
index a1dea085..8f2f4b35 100644
--- a/tests/acvp/acvp_app_isal_gcm.c
+++ b/tests/acvp/acvp_app_isal_gcm.c
@@ -31,7 +31,8 @@
#include <stdlib.h>
#include <string.h>
#include <acvp/acvp.h>
-#include <isa-l_crypto.h>
+
+#include "include/aes_gcm.h"
extern uint8_t verbose;
diff --git a/tests/acvp/acvp_app_isal_sha.c b/tests/acvp/acvp_app_isal_sha.c
index c15ddaa9..d09d880c 100644
--- a/tests/acvp/acvp_app_isal_sha.c
+++ b/tests/acvp/acvp_app_isal_sha.c
@@ -31,7 +31,10 @@
#include <stdlib.h>
#include <string.h>
#include <acvp/acvp.h>
-#include <isa-l_crypto.h>
+
+#include "include/sha1_mb.h"
+#include "include/sha256_mb.h"
+#include "include/sha512_mb.h"
extern uint8_t verbose;
diff --git a/tests/acvp/acvp_app_isal_xts.c b/tests/acvp/acvp_app_isal_xts.c
index 621ab78a..da78390f 100644
--- a/tests/acvp/acvp_app_isal_xts.c
+++ b/tests/acvp/acvp_app_isal_xts.c
@@ -30,7 +30,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <acvp/acvp.h>
-#include <isa-l_crypto.h>
+
+#include "include/aes_xts.h"
extern uint8_t verbose;
diff --git a/tests/acvp/makefile b/tests/acvp/makefile
index f5d650ab..b6dd7575 100644
--- a/tests/acvp/makefile
+++ b/tests/acvp/makefile
@@ -1,6 +1,6 @@
ACVP_PATH = /usr/local/acvp
-INCLUDES = -I $(ACVP_PATH)/include -L $(ACVP_PATH)/lib
+INCLUDES = -I $(ACVP_PATH)/include -L $(ACVP_PATH)/lib -I ../../
CFLAGS = -Wall -O2 $(INCLUDES) -DNO_COMPAT_ISAL_CRYPTO_API_2_24
LDLIBS = -lacvp -lisal_crypto

View File

@@ -0,0 +1,17 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -121,11 +121,11 @@ CCAS = $(as_filter)
EXTRA_DIST += tools/nasm-filter.sh
EXTRA_DIST += tools/nasm-cet-filter.sh
-AM_CFLAGS = ${my_CFLAGS} ${INCLUDE} $(src_include) ${D}
+AM_CFLAGS = ${my_CFLAGS} ${INCLUDE} $(src_include) ${DIST_D}
if CPU_AARCH64
-AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${D}
+AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${DIST_D}
else
-AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${DEFS} ${D}
+AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${DEFS} ${DIST_D}
endif
.asm.s:

View File

@@ -0,0 +1,58 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools flag-o-matic
DESCRIPTION="Intelligent Storage Acceleration Library - cryptographic components"
HOMEPAGE="https://github.com/intel/isa-l_crypto"
SRC_URI="https://github.com/intel/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="cpu_flags_x86_avx512f"
# AVX512 support in yasm is still work in progress
# Note that dev-libs/isa-l-2.31.1 has a workaround for this, but that
# doesn't seem to have reached isa-l_crypto yet.
BDEPEND="amd64? (
cpu_flags_x86_avx512f? ( >=dev-lang/nasm-2.13 )
!cpu_flags_x86_avx512f? ( || (
>=dev-lang/nasm-2.11.01
>=dev-lang/yasm-1.2.0
) )
)"
PATCHES=(
"${FILESDIR}"/${PN}-2.25.0_makefile-no-D.patch
"${FILESDIR}"/${PN}-2.25.0-sha1_mb-build.patch
"${FILESDIR}"/${PN}-2.25.0-tests-use-internal.patch
"${FILESDIR}"/${PN}-2.25.0-configure-avx512.patch
"${FILESDIR}"/${PN}-2.25.0-respect-LDFLAGS.patch
"${FILESDIR}"/${PN}-2.25.0-no-clobber-hardened.patch
)
src_prepare() {
default
# isa-l does not support arbitrary assemblers on amd64 (and presumably x86),
# it must be either nasm or yasm.
use amd64 && unset AS
eautoreconf
}
src_configure() {
# Test failures with LTO (bug #924865)
# Likely related to https://github.com/intel/isa-l_crypto/issues/73
append-flags -fno-strict-aliasing
default
}
src_install() {
default
find "${ED}" -name '*.la' -delete || die
}