16df3ef80SGreg Tucker# -*- Autoconf -*- 26df3ef80SGreg Tucker# Process this file with autoconf to produce a configure script. 36df3ef80SGreg Tucker 46df3ef80SGreg TuckerAC_PREREQ(2.69) 56df3ef80SGreg TuckerAC_INIT([libisal_crypto], 6*3aa2266bSPablo de Lara [2.25.0], 7*3aa2266bSPablo de Lara [https://github.com/intel/isa-l_crypto/issues], 8*3aa2266bSPablo de Lara [isa-l_crypto]) 96df3ef80SGreg TuckerAC_CONFIG_SRCDIR([]) 106df3ef80SGreg TuckerAC_CONFIG_AUX_DIR([build-aux]) 116df3ef80SGreg TuckerAM_INIT_AUTOMAKE([ 126df3ef80SGreg Tucker foreign 136df3ef80SGreg Tucker 1.11 146df3ef80SGreg Tucker -Wall 156df3ef80SGreg Tucker -Wno-portability 166df3ef80SGreg Tucker silent-rules 176df3ef80SGreg Tucker tar-pax 186df3ef80SGreg Tucker no-dist-gzip 196df3ef80SGreg Tucker dist-xz 206df3ef80SGreg Tucker subdir-objects 216df3ef80SGreg Tucker]) 226df3ef80SGreg TuckerAM_PROG_AS 236df3ef80SGreg Tucker 24216190d3SGreg TuckerAC_CANONICAL_HOST 25216190d3SGreg TuckerCPU="" 26216190d3SGreg TuckerAS_CASE([$host_cpu], 27216190d3SGreg Tucker [x86_64], [CPU="x86_64"], 28216190d3SGreg Tucker [amd64], [CPU="x86_64"], 29216190d3SGreg Tucker [i?86], [CPU="x86_32"], 30ffd20d8cSJerry Yu [aarch64], [CPU="aarch64"], 31ffd20d8cSJerry Yu [arm64], [CPU="aarch64"], 32216190d3SGreg Tucker) 33216190d3SGreg TuckerAM_CONDITIONAL([CPU_X86_64], [test "$CPU" = "x86_64"]) 34216190d3SGreg TuckerAM_CONDITIONAL([CPU_X86_32], [test "$CPU" = "x86_32"]) 35ffd20d8cSJerry YuAM_CONDITIONAL([CPU_AARCH64], [test "$CPU" = "aarch64"]) 36216190d3SGreg TuckerAM_CONDITIONAL([CPU_UNDEFINED], [test "x$CPU" = "x"]) 377b5b2f46SMarcel CornuAM_CONDITIONAL([SAFE_PARAM], [test x"$SAFE_PARAM" = x"yes"]) 38216190d3SGreg Tucker 39ffd20d8cSJerry Yuif test "$CPU" = "x86_64"; then 40ffd20d8cSJerry Yu is_x86=yes 41ffd20d8cSJerry Yuelse 42ffd20d8cSJerry Yu if test "$CPU" = "x86_32"; then 43ffd20d8cSJerry Yu is_x86=yes 44ffd20d8cSJerry Yu else 45ffd20d8cSJerry Yu is_x86=no 46ffd20d8cSJerry Yu fi 47ffd20d8cSJerry Yufi 48ffd20d8cSJerry Yu 496df3ef80SGreg Tucker# Check for programs 506df3ef80SGreg TuckerAC_PROG_CC_STDC 516df3ef80SGreg TuckerAC_USE_SYSTEM_EXTENSIONS 526df3ef80SGreg TuckerAM_SILENT_RULES([yes]) 536df3ef80SGreg TuckerLT_INIT 546df3ef80SGreg TuckerAC_PREFIX_DEFAULT([/usr]) 556df3ef80SGreg TuckerAC_PROG_SED 566df3ef80SGreg TuckerAC_PROG_MKDIR_P 576df3ef80SGreg Tucker 586df3ef80SGreg Tucker# Options 596df3ef80SGreg TuckerAC_ARG_ENABLE([debug], 606df3ef80SGreg Tucker AS_HELP_STRING([--enable-debug], [enable debug messages @<:@default=disabled@:>@]), 616df3ef80SGreg Tucker [], [enable_debug=no]) 626df3ef80SGreg TuckerAS_IF([test "x$enable_debug" = "xyes"], [ 636df3ef80SGreg Tucker AC_DEFINE(ENABLE_DEBUG, [1], [Debug messages.]) 646df3ef80SGreg Tucker]) 6508297dc3SDaniel Hu 66158a2fa5SPablo de LaraAC_ARG_ENABLE([fips-mode], 67158a2fa5SPablo de Lara AS_HELP_STRING([--enable-fips-mode], [enable FIPS mode @<:@default=disabled@:>@]), 68158a2fa5SPablo de Lara [enable_fips_mode=yes], [enable_fips_mode=no]) 69158a2fa5SPablo de LaraAS_IF([test "x$enable_fips_mode" = "xyes"], [ 70158a2fa5SPablo de Lara AC_DEFINE(FIPS_MODE, [1], [FIPS mode.]) 71158a2fa5SPablo de Lara]) 72158a2fa5SPablo de Lara 7359de7709SPablo de LaraAC_ARG_ENABLE([safe-data], 7459de7709SPablo de Lara AS_HELP_STRING([--disable-safe-data], [clear sensitive data @<:@default=enabled@:>@]), 7559de7709SPablo de Lara [safe_data=no], [safe_data=yes]) 7659de7709SPablo de LaraAS_IF([test "x$safe_data" = "xyes"], [ 7759de7709SPablo de Lara AC_DEFINE(SAFE_DATA, [1], [Clear sensitive data.]) 7859de7709SPablo de Lara]) 7959de7709SPablo de Lara 807b5b2f46SMarcel CornuAC_ARG_ENABLE([safe-param], 817b5b2f46SMarcel Cornu AS_HELP_STRING([--disable-safe-param], [enable parameter checking @<:@default=enabled@:>@]), 827b5b2f46SMarcel Cornu [safe_param=no], [safe_param=yes]) 837b5b2f46SMarcel CornuAS_IF([test "x$safe_param" = "xyes"], [ 847b5b2f46SMarcel Cornu AC_DEFINE(SAFE_PARAM, [1], [Enable parameter checking.]) 857b5b2f46SMarcel Cornu]) 867b5b2f46SMarcel Cornu 8708297dc3SDaniel Huif test x"$CPU" = x"aarch64"; then 8808297dc3SDaniel Hu AC_ARG_ENABLE([sve2], 8908297dc3SDaniel Hu AS_HELP_STRING([--disable-sve2], [disable usage of SVE2]), 9008297dc3SDaniel Hu , enable_sve2=yes) 9108297dc3SDaniel Hu if test "$enable_sve2" = "yes"; then 9208297dc3SDaniel Hu AC_MSG_CHECKING([whether compiler supports sve2]) 9308297dc3SDaniel Hu AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], 9408297dc3SDaniel Hu [asm(".arch armv8.2-a+sve2");])], 9508297dc3SDaniel Hu [cc_support_sve2=yes], 9608297dc3SDaniel Hu [cc_support_sve2=no]) 9708297dc3SDaniel Hu if test x"$cc_support_sve2" = xyes ; then 9808297dc3SDaniel Hu AC_MSG_RESULT([yes]) 9908297dc3SDaniel Hu else 10008297dc3SDaniel Hu AC_MSG_RESULT([no]) 10108297dc3SDaniel Hu AC_MSG_ERROR([upgrade your compiler to support SVE2, or run \"./configure --disable-sve2\"]) 10208297dc3SDaniel Hu fi 10308297dc3SDaniel Hu else 10408297dc3SDaniel Hu AC_DEFINE(NO_SVE2, 1, [Define to 1 if the compiler does not supports SVE2.]) 10508297dc3SDaniel Hu fi 10608297dc3SDaniel Hufi 10708297dc3SDaniel Hu 108151e9bcaSPablo de Lara# If this build is for x86, look for nasm 109ffd20d8cSJerry Yuif test x"$is_x86" = x"yes"; then 1107f8ce0f8SJohn Kariuki AC_MSG_CHECKING([whether Intel CET is enabled]) 111e938ad70SPablo de Lara AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ 1127f8ce0f8SJohn Kariuki#ifndef __CET__ 1137f8ce0f8SJohn Kariuki# error CET is not enabled 114e938ad70SPablo de Lara#endif]])],[AC_MSG_RESULT([yes]) 115e938ad70SPablo de Lara intel_cet_enabled=yes],[AC_MSG_RESULT([no]) 1167f8ce0f8SJohn Kariuki intel_cet_enabled=no]) 11799d3b449SH.J. LuAS_IF([test "x$intel_cet_enabled" = "xyes"], [ 11899d3b449SH.J. Lu AC_DEFINE(INTEL_CET_ENABLED, [1], [Intel CET enabled.]) 11999d3b449SH.J. Lu]) 1207f8ce0f8SJohn Kariuki 1219fa50466SPablo de Lara# check if LD -z options are supported 1229fa50466SPablo de LaraLDFLAGS="\ 1239fa50466SPablo de Lara-Wl,-z,noexecstack \ 1249fa50466SPablo de Lara-Wl,-z,relro \ 1259fa50466SPablo de Lara-Wl,-z,now \ 1269fa50466SPablo de Lara" 1279fa50466SPablo de LaraAC_MSG_CHECKING([if $LD supports $LDFLAGS]) 1289fa50466SPablo de LaraAC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ 1299fa50466SPablo de Laraint main(int argc, char **argv) 1309fa50466SPablo de Lara{ 1319fa50466SPablo de Lara return 0; 1329fa50466SPablo de Lara}]])], 1339fa50466SPablo de Lara [AC_MSG_RESULT([yes])], 1349fa50466SPablo de Lara [AC_MSG_RESULT([no]) 1359fa50466SPablo de Lara LDFLAGS=""] 1369fa50466SPablo de Lara) 1377f8ce0f8SJohn Kariuki 138151e9bcaSPablo de Lara # Pick NASM assembler 13955615bfaSGreg Tucker if test x"$AS" = x""; then 1406df3ef80SGreg Tucker # Check for nasm and nasm features 14155615bfaSGreg Tucker nasm_feature_level=0 1426df3ef80SGreg Tucker AC_CHECK_PROG(HAVE_NASM, nasm, yes, no) 14355615bfaSGreg Tucker if test "$HAVE_NASM" = "yes"; then 14455615bfaSGreg Tucker nasm_feature_level=1 1456df3ef80SGreg Tucker else 14655615bfaSGreg Tucker AC_MSG_RESULT([no nasm]) 14755615bfaSGreg Tucker fi 14855615bfaSGreg Tucker 14955615bfaSGreg Tucker if test x"$nasm_feature_level" = x"1"; then 1506df3ef80SGreg Tucker AC_MSG_CHECKING([for modern nasm]) 1516df3ef80SGreg Tucker AC_LANG_CONFTEST([AC_LANG_SOURCE([[pblendvb xmm2, xmm1;]])]) 1526df3ef80SGreg Tucker sed -i -e '/pblendvb/!d' conftest.c 1536df3ef80SGreg Tucker if nasm -f elf64 conftest.c 2> /dev/null; then 1546df3ef80SGreg Tucker AC_MSG_RESULT([yes]) 15555615bfaSGreg Tucker nasm_feature_level=4 1566df3ef80SGreg Tucker else 1576df3ef80SGreg Tucker AC_MSG_RESULT([no]) 1586df3ef80SGreg Tucker fi 15955615bfaSGreg Tucker fi 16055615bfaSGreg Tucker if test x"$nasm_feature_level" = x"4"; then 16155615bfaSGreg Tucker AC_MSG_CHECKING([for optional nasm AVX512 support]) 16255615bfaSGreg Tucker AC_LANG_CONFTEST([AC_LANG_SOURCE([[vinserti32x8 zmm0, ymm1, 1;]])]) 16355615bfaSGreg Tucker sed -i -e '/vinsert/!d' conftest.c 16455615bfaSGreg Tucker if nasm -f elf64 conftest.c 2> /dev/null; then 16555615bfaSGreg Tucker AC_MSG_RESULT([yes]) 16655615bfaSGreg Tucker nasm_feature_level=6 16755615bfaSGreg Tucker else 16855615bfaSGreg Tucker AC_MSG_RESULT([no]) 16955615bfaSGreg Tucker fi 17055615bfaSGreg Tucker fi 17155615bfaSGreg Tucker if test x"$nasm_feature_level" = x"6"; then 17255615bfaSGreg Tucker AC_MSG_CHECKING([for additional nasm AVX512 support]) 17355615bfaSGreg Tucker AC_LANG_CONFTEST([AC_LANG_SOURCE([[vpcompressb zmm0 {k1}, zmm1;]])]) 17455615bfaSGreg Tucker sed -i -e '/vpcompressb/!d' conftest.c 17555615bfaSGreg Tucker if nasm -f elf64 conftest.c 2> /dev/null; then 17655615bfaSGreg Tucker AC_MSG_RESULT([yes]) 17755615bfaSGreg Tucker nasm_feature_level=10 17855615bfaSGreg Tucker else 17955615bfaSGreg Tucker AC_MSG_RESULT([no]) 18055615bfaSGreg Tucker fi 18155615bfaSGreg Tucker fi 18255615bfaSGreg Tucker 18355615bfaSGreg Tucker AS=nasm 18455615bfaSGreg Tucker as_feature_level=$nasm_feature_level 18555615bfaSGreg Tucker 18655615bfaSGreg Tucker else 18755615bfaSGreg Tucker # Check for $AS supported features 18855615bfaSGreg Tucker as_feature_level=0 18955615bfaSGreg Tucker AC_CHECK_PROG(HAVE_AS, $AS, yes, no) 19055615bfaSGreg Tucker if test "$HAVE_AS" = "yes"; then 19155615bfaSGreg Tucker as_feature_level=1 19255615bfaSGreg Tucker else 19355615bfaSGreg Tucker AC_MSG_ERROR([no $AS]) 19455615bfaSGreg Tucker fi 19555615bfaSGreg Tucker 19655615bfaSGreg Tucker if test x"$as_feature_level" = x"1"; then 19755615bfaSGreg Tucker AC_MSG_CHECKING([for modern $AS]) 19855615bfaSGreg Tucker AC_LANG_CONFTEST([AC_LANG_SOURCE([[pblendvb xmm2, xmm1;]])]) 19955615bfaSGreg Tucker sed -i -e '/pblendvb/!d' conftest.c 20055615bfaSGreg Tucker if $AS -f elf64 conftest.c 2> /dev/null; then 20155615bfaSGreg Tucker AC_MSG_RESULT([yes]) 20255615bfaSGreg Tucker as_feature_level=4 20355615bfaSGreg Tucker else 20455615bfaSGreg Tucker AC_MSG_RESULT([no]) 20555615bfaSGreg Tucker fi 20655615bfaSGreg Tucker fi 20755615bfaSGreg Tucker if test x"$as_feature_level" = x"4"; then 20855615bfaSGreg Tucker AC_MSG_CHECKING([for optional as AVX512 support]) 20955615bfaSGreg Tucker AC_LANG_CONFTEST([AC_LANG_SOURCE([[vinserti32x8 zmm0, ymm1, 1;]])]) 21055615bfaSGreg Tucker sed -i -e '/vinsert/!d' conftest.c 21155615bfaSGreg Tucker if $AS -f elf64 conftest.c 2> /dev/null; then 21255615bfaSGreg Tucker AC_MSG_RESULT([yes]) 21355615bfaSGreg Tucker as_feature_level=6 21455615bfaSGreg Tucker else 21555615bfaSGreg Tucker AC_MSG_RESULT([no]) 21655615bfaSGreg Tucker fi 21755615bfaSGreg Tucker fi 21855615bfaSGreg Tucker if test x"$as_feature_level" = x"6"; then 21955615bfaSGreg Tucker AC_MSG_CHECKING([for additional as AVX512 support]) 22055615bfaSGreg Tucker AC_LANG_CONFTEST([AC_LANG_SOURCE([[vpcompressb zmm0, k1, zmm1;]])]) 22155615bfaSGreg Tucker sed -i -e '/vpcompressb/!d' conftest.c 22255615bfaSGreg Tucker if $AS -f elf64 conftest.c 2> /dev/null; then 22355615bfaSGreg Tucker AC_MSG_RESULT([yes]) 22455615bfaSGreg Tucker as_feature_level=10 2256df3ef80SGreg Tucker else 2266df3ef80SGreg Tucker AC_MSG_RESULT([no]) 2276df3ef80SGreg Tucker fi 2286df3ef80SGreg Tucker fi 2296df3ef80SGreg Tucker 23055615bfaSGreg Tucker AC_MSG_CHECKING([for optional nasm SHA-NI support]) 23155615bfaSGreg Tucker AC_LANG_CONFTEST([AC_LANG_SOURCE([[sha256rnds2 xmm2,xmm1,xmm0;]])]) 23255615bfaSGreg Tucker sed -i -e '/sha256rnds2/!d' conftest.c 23355615bfaSGreg Tucker if $AS -f elf64 conftest.c 2> /dev/null; then 23455615bfaSGreg Tucker AC_MSG_RESULT([yes]) 23555615bfaSGreg Tucker as_knows_shani=yes 2366df3ef80SGreg Tucker else 23755615bfaSGreg Tucker AC_MSG_RESULT([no]) 2386df3ef80SGreg Tucker fi 2396df3ef80SGreg Tucker 2406df3ef80SGreg Tucker fi 24155615bfaSGreg Tucker 242d28f1034SPablo de Lara if test $as_feature_level -lt 10 ; then 243d28f1034SPablo de Lara AC_MSG_ERROR([No modern nasm found as required. Nasm should be v2.14.01 or later.]) 24455615bfaSGreg Tucker fi 24555615bfaSGreg Tucker 24655615bfaSGreg Tucker if test x"$as_knows_shani" = x"yes"; then 24730604006SXiaodong Liu AC_DEFINE(HAVE_AS_KNOWS_SHANI, [1], [Assembler can do SHANI.]) 24830604006SXiaodong Liu have_as_knows_shani=yes 24930604006SXiaodong Liu else 25030604006SXiaodong Liu AC_MSG_RESULT([Assembler does not understand SHANI opcodes. Consider upgrading for best performance.]) 25130604006SXiaodong Liu fi 25230604006SXiaodong Liu 253216190d3SGreg Tucker case $host_os in 254151e9bcaSPablo de Lara *linux*) arch=linux asm_args="-f elf64";; 255151e9bcaSPablo de Lara *darwin*) arch=darwin asm_args="-f macho64 --prefix=_ ";; 256151e9bcaSPablo de Lara *netbsd*) arch=netbsd asm_args="-f elf64";; 257151e9bcaSPablo de Lara *mingw*) arch=mingw asm_args="-f win64";; 258151e9bcaSPablo de Lara *) arch=unknown asm_args="-f elf64";; 2596df3ef80SGreg Tucker esac 26055615bfaSGreg Tucker 26155615bfaSGreg Tucker AC_DEFINE_UNQUOTED(AS_FEATURE_LEVEL, [$as_feature_level], [Assembler feature level.]) 26255615bfaSGreg Tucker if test $as_feature_level -ge 6 ; then 26355615bfaSGreg Tucker AC_DEFINE(HAVE_AS_KNOWS_AVX512, [1], [Assembler can do AVX512.]) 26455615bfaSGreg Tucker have_as_knows_avx512=yes 26555615bfaSGreg Tucker else 26655615bfaSGreg Tucker AC_MSG_RESULT([Assembler does not understand AVX512 opcodes. Consider upgrading for best performance.]) 26755615bfaSGreg Tucker fi 26855615bfaSGreg Tucker 26959de7709SPablo de Lara AM_CONDITIONAL(SAFE_DATA, test x"$SAFE_DATA" = x"yes") 270158a2fa5SPablo de Lara AM_CONDITIONAL(FIPS_MODE, test x"$FIPS_MODE" = x"yes") 27155615bfaSGreg Tucker AM_CONDITIONAL(USE_NASM, test x"$AS" = x"nasm") 27255615bfaSGreg Tucker AM_CONDITIONAL(WITH_AVX512, test x"$have_as_knows_avx512" = x"yes") 27355615bfaSGreg Tucker AM_CONDITIONAL(WITH_SHANI, test x"$have_as_knows_shani" = x"yes") 274151e9bcaSPablo de Lara AC_SUBST([asm_args]) 2756df3ef80SGreg Tucker AM_CONDITIONAL(DARWIN, test x"$arch" = x"darwin") 276151e9bcaSPablo de Lara AC_MSG_RESULT([Using $AS args target "$arch" "$asm_args"]) 277ffd20d8cSJerry Yuelse 278ffd20d8cSJerry Yu # Disable below conditionals if not x86 279850ff3ddSPablo de Lara AM_CONDITIONAL(SAFE_DATA, test "x" = "y") 280158a2fa5SPablo de Lara AM_CONDITIONAL(FIPS_MODE, test "x" = "y") 281ffd20d8cSJerry Yu AM_CONDITIONAL(USE_NASM, test "x" = "y") 282ffd20d8cSJerry Yu AM_CONDITIONAL(WITH_AVX512, test "x" = "y") 283ffd20d8cSJerry Yu AM_CONDITIONAL(WITH_SHANI, test "x" = "y") 284ffd20d8cSJerry Yu AM_CONDITIONAL(DARWIN, test "x" = "y") 285ffd20d8cSJerry Yufi 2867f8ce0f8SJohn Kariuki 2876df3ef80SGreg Tucker# Check for header files 2886df3ef80SGreg TuckerAC_CHECK_HEADERS([limits.h stdint.h stdlib.h string.h]) 2896df3ef80SGreg Tucker 2906df3ef80SGreg Tucker# Checks for typedefs, structures, and compiler characteristics. 2916df3ef80SGreg TuckerAC_C_INLINE 2926df3ef80SGreg TuckerAC_TYPE_SIZE_T 2936df3ef80SGreg TuckerAC_TYPE_UINT16_T 2946df3ef80SGreg TuckerAC_TYPE_UINT32_T 2956df3ef80SGreg TuckerAC_TYPE_UINT64_T 2966df3ef80SGreg TuckerAC_TYPE_UINT8_T 2976df3ef80SGreg Tucker 2986df3ef80SGreg Tucker# Checks for library functions. 2996df3ef80SGreg TuckerAC_FUNC_MALLOC # Used only in tests 3006df3ef80SGreg TuckerAC_CHECK_FUNCS([memmove memset]) 3016df3ef80SGreg Tucker 3026df3ef80SGreg Tuckermy_CFLAGS="\ 3036df3ef80SGreg Tucker-Wall \ 3045e4dc74cSPablo de Lara-fPIC \ 3056df3ef80SGreg Tucker-Wchar-subscripts \ 3066df3ef80SGreg Tucker-Wformat-security \ 3076df3ef80SGreg Tucker-Wnested-externs \ 3086df3ef80SGreg Tucker-Wpointer-arith \ 3096df3ef80SGreg Tucker-Wshadow \ 3106df3ef80SGreg Tucker-Wstrict-prototypes \ 3116df3ef80SGreg Tucker-Wtype-limits \ 312e8199cb6SPablo de Lara-fstack-protector \ 3130106da91SPablo de Lara-D_FORTIFY_SOURCE=2 \ 3140106da91SPablo de Lara-DNO_COMPAT_ISAL_CRYPTO_API_2_24 3156df3ef80SGreg Tucker" 3166df3ef80SGreg TuckerAC_SUBST([my_CFLAGS]) 3176df3ef80SGreg Tucker 3186df3ef80SGreg TuckerAC_CONFIG_FILES([\ 3196df3ef80SGreg Tucker Makefile\ 3206df3ef80SGreg Tucker libisal_crypto.pc 3216df3ef80SGreg Tucker]) 3226df3ef80SGreg Tucker 3236df3ef80SGreg TuckerAC_OUTPUT 3246df3ef80SGreg TuckerAC_MSG_RESULT([ 3256df3ef80SGreg Tucker $PACKAGE $VERSION 3266df3ef80SGreg Tucker ===== 3276df3ef80SGreg Tucker 3286df3ef80SGreg Tucker prefix: ${prefix} 3296df3ef80SGreg Tucker sysconfdir: ${sysconfdir} 3306df3ef80SGreg Tucker libdir: ${libdir} 3316df3ef80SGreg Tucker includedir: ${includedir} 3326df3ef80SGreg Tucker 3336df3ef80SGreg Tucker compiler: ${CC} 3346df3ef80SGreg Tucker cflags: ${CFLAGS} 3356df3ef80SGreg Tucker ldflags: ${LDFLAGS} 3366df3ef80SGreg Tucker 3376df3ef80SGreg Tucker debug: ${enable_debug} 33859de7709SPablo de Lara safe_data: ${safe_data} 3397b5b2f46SMarcel Cornu safe_param: ${safe_param} 340158a2fa5SPablo de Lara FIPS mode: ${enable_fips_mode} 3416df3ef80SGreg Tucker]) 342