forked from wolfSSL/wolfssl
Merge pull request #2755 from SparkiDev/rsa_enc_3072
Fix masking of 16 bits
This commit is contained in:
@ -356,9 +356,19 @@ WC_STATIC WC_INLINE byte ctMaskEq(int a, int b)
|
|||||||
return (~ctMaskGT(a, b)) & (~ctMaskLT(a, b));
|
return (~ctMaskGT(a, b)) & (~ctMaskLT(a, b));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WC_STATIC WC_INLINE word16 ctMask16GT(int a, int b)
|
||||||
|
{
|
||||||
|
return (((word32)a - b - 1) >> 31) - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
WC_STATIC WC_INLINE word16 ctMask16LT(int a, int b)
|
||||||
|
{
|
||||||
|
return (((word32)a - b - 1) >> 31) - 1;
|
||||||
|
}
|
||||||
|
|
||||||
WC_STATIC WC_INLINE word16 ctMask16Eq(int a, int b)
|
WC_STATIC WC_INLINE word16 ctMask16Eq(int a, int b)
|
||||||
{
|
{
|
||||||
return (~ctMaskGT(a, b)) & (~ctMaskLT(a, b));
|
return (~ctMask16GT(a, b)) & (~ctMask16LT(a, b));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Constant time - mask set when a != b. */
|
/* Constant time - mask set when a != b. */
|
||||||
|
@ -98,6 +98,8 @@ WOLFSSL_LOCAL int ctMaskIntGTE(int a, int b);
|
|||||||
WOLFSSL_LOCAL byte ctMaskLT(int a, int b);
|
WOLFSSL_LOCAL byte ctMaskLT(int a, int b);
|
||||||
WOLFSSL_LOCAL byte ctMaskLTE(int a, int b);
|
WOLFSSL_LOCAL byte ctMaskLTE(int a, int b);
|
||||||
WOLFSSL_LOCAL byte ctMaskEq(int a, int b);
|
WOLFSSL_LOCAL byte ctMaskEq(int a, int b);
|
||||||
|
WOLFSSL_LOCAL word16 ctMask16GT(int a, int b);
|
||||||
|
WOLFSSL_LOCAL word16 ctMask16LT(int a, int b);
|
||||||
WOLFSSL_LOCAL word16 ctMask16Eq(int a, int b);
|
WOLFSSL_LOCAL word16 ctMask16Eq(int a, int b);
|
||||||
WOLFSSL_LOCAL byte ctMaskNotEq(int a, int b);
|
WOLFSSL_LOCAL byte ctMaskNotEq(int a, int b);
|
||||||
WOLFSSL_LOCAL byte ctMaskSel(byte m, byte a, byte b);
|
WOLFSSL_LOCAL byte ctMaskSel(byte m, byte a, byte b);
|
||||||
|
Reference in New Issue
Block a user