mirror of https://github.com/wolfSSL/wolfssl.git
parent
3e5e470005
commit
c39f1fe721
56
configure.ac
56
configure.ac
|
@ -1211,6 +1211,11 @@ then
|
||||||
AC_MSG_ERROR([--enable-all-asm is incompatible with --disable-armasm])
|
AC_MSG_ERROR([--enable-all-asm is incompatible with --disable-armasm])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$enable_ppc32_asm" = "no"
|
||||||
|
then
|
||||||
|
AC_MSG_ERROR([--enable-all-asm is incompatible with --disable-ppc32-asm])
|
||||||
|
fi
|
||||||
|
|
||||||
case "$host_cpu" in
|
case "$host_cpu" in
|
||||||
*x86_64*|*amd64*)
|
*x86_64*|*amd64*)
|
||||||
if test "$enable_intelasm" = ""
|
if test "$enable_intelasm" = ""
|
||||||
|
@ -1240,6 +1245,14 @@ then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
*powerpc64*)
|
||||||
|
;;
|
||||||
|
*powerpc*)
|
||||||
|
if test "$enable_ppc32_asm" = ""
|
||||||
|
then
|
||||||
|
enable_ppc32_asm=yes
|
||||||
|
fi
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -3488,6 +3501,42 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# PPC32 Assembly
|
||||||
|
AC_ARG_ENABLE([ppc32-asm],
|
||||||
|
[AS_HELP_STRING([--enable-ppc32-asm],[Enable wolfSSL PowerPC 32-bit ASM support (default: disabled).])],
|
||||||
|
[ ENABLED_PPC32_ASM=$enableval ],
|
||||||
|
[ ENABLED_PPC32_ASM=no ]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
if test "$ENABLED_PPC32_ASM" != "no" && test "$ENABLED_ASM" = "yes"
|
||||||
|
then
|
||||||
|
ENABLED_PPC32_ASM_OPTS=$ENABLED_PPC32_ASM
|
||||||
|
for v in `echo $ENABLED_PPC32_ASM_OPTS | tr "," " "`
|
||||||
|
do
|
||||||
|
case $v in
|
||||||
|
yes)
|
||||||
|
;;
|
||||||
|
inline)
|
||||||
|
ENABLED_PPC32_ASM_INLINE=yes
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_ERROR([Invalid RISC-V option [yes,inline]: $ENABLED_PPC32_ASM.])
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PPC32_ASM"
|
||||||
|
AC_MSG_NOTICE([32-bit PowerPC assembly for SHA-256])
|
||||||
|
ENABLED_PPC32_ASM=yes
|
||||||
|
fi
|
||||||
|
if test "$ENABLED_PPC32_ASM_INLINE" = "yes"; then
|
||||||
|
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_PPC32_ASM_INLINE"
|
||||||
|
else
|
||||||
|
AM_CCASFLAGS="$AM_CCASFLAGS -DWOLFSSL_PPC32_ASM"
|
||||||
|
fi
|
||||||
|
|
||||||
# Xilinx hardened crypto
|
# Xilinx hardened crypto
|
||||||
AC_ARG_ENABLE([xilinx],
|
AC_ARG_ENABLE([xilinx],
|
||||||
[AS_HELP_STRING([--enable-xilinx],[Enable wolfSSL support for Xilinx hardened crypto(default: disabled)])],
|
[AS_HELP_STRING([--enable-xilinx],[Enable wolfSSL support for Xilinx hardened crypto(default: disabled)])],
|
||||||
|
@ -10564,6 +10613,8 @@ AM_CONDITIONAL([BUILD_ARM_NONTHUMB],[test "$ENABLED_ARM_THUMB" != "yes" || test
|
||||||
AM_CONDITIONAL([BUILD_ARM_32],[test "$ENABLED_ARM_32" = "yes" || test "$ENABLED_USERSETTINGS" = "yes"])
|
AM_CONDITIONAL([BUILD_ARM_32],[test "$ENABLED_ARM_32" = "yes" || test "$ENABLED_USERSETTINGS" = "yes"])
|
||||||
AM_CONDITIONAL([BUILD_ARM_64],[test "$ENABLED_ARM_64" = "yes" || test "$ENABLED_USERSETTINGS" = "yes"])
|
AM_CONDITIONAL([BUILD_ARM_64],[test "$ENABLED_ARM_64" = "yes" || test "$ENABLED_USERSETTINGS" = "yes"])
|
||||||
AM_CONDITIONAL([BUILD_RISCV_ASM],[test "x$ENABLED_RISCV_ASM" = "xyes"])
|
AM_CONDITIONAL([BUILD_RISCV_ASM],[test "x$ENABLED_RISCV_ASM" = "xyes"])
|
||||||
|
AM_CONDITIONAL([BUILD_PPC32_ASM],[test "x$ENABLED_PPC32_ASM" = "xyes"])
|
||||||
|
AM_CONDITIONAL([BUILD_PPC32_ASM_INLINE],[test "x$ENABLED_PPC32_ASM_INLINE" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_XILINX],[test "x$ENABLED_XILINX" = "xyes"])
|
AM_CONDITIONAL([BUILD_XILINX],[test "x$ENABLED_XILINX" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_AESNI],[test "x$ENABLED_AESNI" = "xyes"])
|
AM_CONDITIONAL([BUILD_AESNI],[test "x$ENABLED_AESNI" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_INTELASM],[test "x$ENABLED_INTELASM" = "xyes"])
|
AM_CONDITIONAL([BUILD_INTELASM],[test "x$ENABLED_INTELASM" = "xyes"])
|
||||||
|
@ -11217,6 +11268,11 @@ echo " * ARM ASM: $ENABLED_ARMASM"
|
||||||
echo " * ARM ASM SHA512/SHA3 Crypto $ENABLED_ARMASM_SHA3"
|
echo " * ARM ASM SHA512/SHA3 Crypto $ENABLED_ARMASM_SHA3"
|
||||||
echo " * ARM ASM SM3/SM4 Crypto $ENABLED_ARMASM_CRYPTO_SM4"
|
echo " * ARM ASM SM3/SM4 Crypto $ENABLED_ARMASM_CRYPTO_SM4"
|
||||||
echo " * RISC-V ASM $ENABLED_RISCV_ASM"
|
echo " * RISC-V ASM $ENABLED_RISCV_ASM"
|
||||||
|
if test "$ENABLED_PPC32_ASM_INLINE" = "yes"
|
||||||
|
then
|
||||||
|
ENABLED_PPC32_ASM="inline C"
|
||||||
|
fi
|
||||||
|
echo " * PPC32 ASM $ENABLED_PPC32_ASM"
|
||||||
echo " * Write duplicate: $ENABLED_WRITEDUP"
|
echo " * Write duplicate: $ENABLED_WRITEDUP"
|
||||||
echo " * Xilinx Hardware Acc.: $ENABLED_XILINX"
|
echo " * Xilinx Hardware Acc.: $ENABLED_XILINX"
|
||||||
echo " * C89: $ENABLED_C89"
|
echo " * C89: $ENABLED_C89"
|
||||||
|
|
|
@ -251,10 +251,19 @@ endif !BUILD_X86_ASM
|
||||||
endif !BUILD_ARMASM
|
endif !BUILD_ARMASM
|
||||||
endif !BUILD_ARMASM_NEON
|
endif !BUILD_ARMASM_NEON
|
||||||
|
|
||||||
|
|
||||||
if BUILD_RISCV_ASM
|
if BUILD_RISCV_ASM
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha256.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha256.c
|
||||||
endif BUILD_RISCV_ASM
|
endif BUILD_RISCV_ASM
|
||||||
|
|
||||||
|
if BUILD_PPC32_ASM
|
||||||
|
if BUILD_PPC32_ASM_INLINE
|
||||||
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_c.c
|
||||||
|
else
|
||||||
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm.S
|
||||||
|
endif !BUILD_PPC32_ASM_INLINE
|
||||||
|
endif BUILD_PPC32_ASM
|
||||||
|
|
||||||
if BUILD_SHA512
|
if BUILD_SHA512
|
||||||
if BUILD_RISCV_ASM
|
if BUILD_RISCV_ASM
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha512.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha512.c
|
||||||
|
@ -455,6 +464,14 @@ if BUILD_RISCV_ASM
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha256.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha256.c
|
||||||
endif BUILD_RISCV_ASM
|
endif BUILD_RISCV_ASM
|
||||||
|
|
||||||
|
if BUILD_PPC32_ASM
|
||||||
|
if BUILD_PPC32_ASM_INLINE
|
||||||
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_c.c
|
||||||
|
else
|
||||||
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm.S
|
||||||
|
endif !BUILD_PPC32_ASM_INLINE
|
||||||
|
endif BUILD_PPC32_ASM
|
||||||
|
|
||||||
if BUILD_SHA512
|
if BUILD_SHA512
|
||||||
if BUILD_RISCV_ASM
|
if BUILD_RISCV_ASM
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha512.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha512.c
|
||||||
|
@ -718,6 +735,14 @@ if BUILD_RISCV_ASM
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha256.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/riscv/riscv-64-sha256.c
|
||||||
endif BUILD_RISCV_ASM
|
endif BUILD_RISCV_ASM
|
||||||
|
|
||||||
|
if BUILD_PPC32_ASM
|
||||||
|
if BUILD_PPC32_ASM_INLINE
|
||||||
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm_c.c
|
||||||
|
else
|
||||||
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/ppc32/ppc32-sha256-asm.S
|
||||||
|
endif !BUILD_PPC32_ASM_INLINE
|
||||||
|
endif BUILD_PPC32_ASM
|
||||||
|
|
||||||
endif !BUILD_FIPS_CURRENT
|
endif !BUILD_FIPS_CURRENT
|
||||||
|
|
||||||
if BUILD_AFALG
|
if BUILD_AFALG
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -206,6 +206,8 @@ on the specific device platform.
|
||||||
#endif
|
#endif
|
||||||
#elif defined(FREESCALE_MMCAU_SHA)
|
#elif defined(FREESCALE_MMCAU_SHA)
|
||||||
#define SHA256_UPDATE_REV_BYTES(ctx) 0 /* reverse not needed on update */
|
#define SHA256_UPDATE_REV_BYTES(ctx) 0 /* reverse not needed on update */
|
||||||
|
#elif defined(WOLFSSL_PPC32_ASM)
|
||||||
|
#define SHA256_UPDATE_REV_BYTES(ctx) 0
|
||||||
#else
|
#else
|
||||||
#define SHA256_UPDATE_REV_BYTES(ctx) SHA256_REV_BYTES(ctx)
|
#define SHA256_UPDATE_REV_BYTES(ctx) SHA256_REV_BYTES(ctx)
|
||||||
#endif
|
#endif
|
||||||
|
@ -1067,6 +1069,35 @@ static int InitSha256(wc_Sha256* sha256)
|
||||||
#elif defined(WOLFSSL_RENESAS_RX64_HASH)
|
#elif defined(WOLFSSL_RENESAS_RX64_HASH)
|
||||||
|
|
||||||
/* implemented in wolfcrypt/src/port/Renesas/renesas_rx64_hw_sha.c */
|
/* implemented in wolfcrypt/src/port/Renesas/renesas_rx64_hw_sha.c */
|
||||||
|
#elif defined(WOLFSSL_PPC32_ASM)
|
||||||
|
|
||||||
|
extern void Transform_Sha256_Len(wc_Sha256* sha256, const byte* data,
|
||||||
|
word32 len);
|
||||||
|
|
||||||
|
int wc_InitSha256_ex(wc_Sha256* sha256, void* heap, int devId)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
if (sha256 == NULL)
|
||||||
|
return BAD_FUNC_ARG;
|
||||||
|
ret = InitSha256(sha256);
|
||||||
|
if (ret != 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
sha256->heap = heap;
|
||||||
|
(void)devId;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int Transform_Sha256(wc_Sha256* sha256, const byte* data)
|
||||||
|
{
|
||||||
|
Transform_Sha256_Len(sha256, data, WC_SHA256_BLOCK_SIZE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define XTRANSFORM Transform_Sha256
|
||||||
|
#define XTRANSFORM_LEN Transform_Sha256_Len
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define NEED_SOFT_SHA256
|
#define NEED_SOFT_SHA256
|
||||||
|
|
Loading…
Reference in New Issue