mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 20:24:39 +02:00
Merge pull request #8830 from JacobBarthelmeh/rx_threadx
add option to not use CT code with min/max
This commit is contained in:
@@ -744,6 +744,7 @@ WOLFSSL_NO_COPY_CERT
|
|||||||
WOLFSSL_NO_COPY_KEY
|
WOLFSSL_NO_COPY_KEY
|
||||||
WOLFSSL_NO_CRL_DATE_CHECK
|
WOLFSSL_NO_CRL_DATE_CHECK
|
||||||
WOLFSSL_NO_CRL_NEXT_DATE
|
WOLFSSL_NO_CRL_NEXT_DATE
|
||||||
|
WOLFSSL_NO_CT_MAX_MIN
|
||||||
WOLFSSL_NO_DECODE_EXTRA
|
WOLFSSL_NO_DECODE_EXTRA
|
||||||
WOLFSSL_NO_DER_TO_PEM
|
WOLFSSL_NO_DER_TO_PEM
|
||||||
WOLFSSL_NO_DH186
|
WOLFSSL_NO_DH186
|
||||||
|
@@ -633,7 +633,13 @@ WC_MISC_STATIC WC_INLINE int ConstantCompare(const byte* a, const byte* b,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WOLFSSL_NO_CT_OPS
|
|
||||||
|
#if defined(WOLFSSL_NO_CT_OPS) && (!defined(NO_RSA) || !defined(WOLFCRYPT_ONLY))
|
||||||
|
/* constant time operations with mask are required for RSA and TLS operations */
|
||||||
|
#warning constant time operations required unless using NO_RSA & WOLFCRYPT_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(WOLFSSL_NO_CT_OPS) || !defined(NO_RSA) || !defined(WOLFCRYPT_ONLY)
|
||||||
/* Constant time - mask set when a > b. */
|
/* Constant time - mask set when a > b. */
|
||||||
WC_MISC_STATIC WC_INLINE byte ctMaskGT(int a, int b)
|
WC_MISC_STATIC WC_INLINE byte ctMaskGT(int a, int b)
|
||||||
{
|
{
|
||||||
@@ -761,7 +767,8 @@ WC_MISC_STATIC WC_INLINE void ctMaskCopy(byte mask, byte* dst, byte* src,
|
|||||||
/* returns the smaller of a and b */
|
/* returns the smaller of a and b */
|
||||||
WC_MISC_STATIC WC_INLINE word32 min(word32 a, word32 b)
|
WC_MISC_STATIC WC_INLINE word32 min(word32 a, word32 b)
|
||||||
{
|
{
|
||||||
#if !defined(WOLFSSL_NO_CT_OPS) && defined(WORD64_AVAILABLE)
|
#if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \
|
||||||
|
defined(WORD64_AVAILABLE)
|
||||||
word32 gte_mask = (word32)ctMaskWord32GTE(a, b);
|
word32 gte_mask = (word32)ctMaskWord32GTE(a, b);
|
||||||
return (a & ~gte_mask) | (b & gte_mask);
|
return (a & ~gte_mask) | (b & gte_mask);
|
||||||
#else /* WOLFSSL_NO_CT_OPS */
|
#else /* WOLFSSL_NO_CT_OPS */
|
||||||
@@ -777,7 +784,8 @@ WC_MISC_STATIC WC_INLINE void ctMaskCopy(byte mask, byte* dst, byte* src,
|
|||||||
#endif
|
#endif
|
||||||
WC_MISC_STATIC WC_INLINE word32 max(word32 a, word32 b)
|
WC_MISC_STATIC WC_INLINE word32 max(word32 a, word32 b)
|
||||||
{
|
{
|
||||||
#if !defined(WOLFSSL_NO_CT_OPS) && defined(WORD64_AVAILABLE)
|
#if !defined(WOLFSSL_NO_CT_OPS) && !defined(WOLFSSL_NO_CT_MAX_MIN) && \
|
||||||
|
defined(WORD64_AVAILABLE)
|
||||||
word32 gte_mask = (word32)ctMaskWord32GTE(a, b);
|
word32 gte_mask = (word32)ctMaskWord32GTE(a, b);
|
||||||
return (a & gte_mask) | (b & ~gte_mask);
|
return (a & gte_mask) | (b & ~gte_mask);
|
||||||
#else /* WOLFSSL_NO_CT_OPS */
|
#else /* WOLFSSL_NO_CT_OPS */
|
||||||
|
Reference in New Issue
Block a user