Make the inline const-time functions static.
authorEmilia Kasper <emilia@openssl.org>
Thu, 28 Aug 2014 17:45:55 +0000 (19:45 +0200)
committerEmilia Kasper <emilia@openssl.org>
Tue, 2 Sep 2014 13:24:54 +0000 (15:24 +0200)
"inline" without static is not correct as the compiler may choose to ignore it
and will then either emit an external definition, or expect one.

Reviewed-by: Geoff Thorpe <geoff@openssl.org>
(cherry picked from commit 86f50b36e63275a916b147f9d8764e3c0c060fdb)

crypto/constant_time_locl.h

index 782da6c8b252e57dc3d042bc7f40e63bce772b8f..0d3acd58b3a4da97a8ac83b5224209d6ac4aa6ea 100644 (file)
@@ -81,38 +81,38 @@ static inline unsigned int constant_time_msb(unsigned int a);
 /*
  * Returns 0xff..f if a < b and 0 otherwise.
  */
-inline unsigned int constant_time_lt(unsigned int a, unsigned int b);
+static inline unsigned int constant_time_lt(unsigned int a, unsigned int b);
 /* Convenience method for getting an 8-bit mask. */
-inline unsigned char constant_time_lt_8(unsigned int a, unsigned int b);
+static inline unsigned char constant_time_lt_8(unsigned int a, unsigned int b);
 
 /*
  * Returns 0xff..f if a >= b and 0 otherwise.
  */
-inline unsigned int constant_time_ge(unsigned int a, unsigned int b);
+static inline unsigned int constant_time_ge(unsigned int a, unsigned int b);
 /* Convenience method for getting an 8-bit mask. */
-inline unsigned char constant_time_ge_8(unsigned int a, unsigned int b);
+static inline unsigned char constant_time_ge_8(unsigned int a, unsigned int b);
 
 /*
  * Returns 0xff..f if a == 0 and 0 otherwise.
  */
-inline unsigned int constant_time_is_zero(unsigned int a);
+static inline unsigned int constant_time_is_zero(unsigned int a);
 /* Convenience method for getting an 8-bit mask. */
-inline unsigned char constant_time_is_zero_8(unsigned int a);
+static inline unsigned char constant_time_is_zero_8(unsigned int a);
 
 
 /*
  * Returns 0xff..f if a == b and 0 otherwise.
  */
-inline unsigned int constant_time_eq(unsigned int a, unsigned int b);
+static inline unsigned int constant_time_eq(unsigned int a, unsigned int b);
 /* Convenience method for getting an 8-bit mask. */
-inline unsigned char constant_time_eq_8(unsigned int a, unsigned int b);
+static inline unsigned char constant_time_eq_8(unsigned int a, unsigned int b);
 
 static inline unsigned int constant_time_msb(unsigned int a)
        {
        return (unsigned int)((int)(a) >> (sizeof(int) * 8 - 1));
        }
 
-inline unsigned int constant_time_lt(unsigned int a, unsigned int b)
+static inline unsigned int constant_time_lt(unsigned int a, unsigned int b)
        {
        unsigned int lt;
        /* Case 1: msb(a) == msb(b). a < b iff the MSB of a - b is set.*/
@@ -122,12 +122,12 @@ inline unsigned int constant_time_lt(unsigned int a, unsigned int b)
        return constant_time_msb(lt);
        }
 
-inline unsigned char constant_time_lt_8(unsigned int a, unsigned int b)
+static inline unsigned char constant_time_lt_8(unsigned int a, unsigned int b)
        {
        return (unsigned char)(constant_time_lt(a, b));
        }
 
-inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
+static inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
        {
        unsigned int ge;
        /* Case 1: msb(a) == msb(b). a >= b iff the MSB of a - b is not set.*/
@@ -137,27 +137,27 @@ inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
        return constant_time_msb(ge);
        }
 
-inline unsigned char constant_time_ge_8(unsigned int a, unsigned int b)
+static inline unsigned char constant_time_ge_8(unsigned int a, unsigned int b)
        {
        return (unsigned char)(constant_time_ge(a, b));
        }
 
-inline unsigned int constant_time_is_zero(unsigned int a)
+static inline unsigned int constant_time_is_zero(unsigned int a)
        {
        return constant_time_msb(~a & (a - 1));
        }
 
-inline unsigned char constant_time_is_zero_8(unsigned int a)
+static inline unsigned char constant_time_is_zero_8(unsigned int a)
        {
        return (unsigned char)(constant_time_is_zero(a));
        }
 
-inline unsigned int constant_time_eq(unsigned int a, unsigned int b)
+static inline unsigned int constant_time_eq(unsigned int a, unsigned int b)
        {
        return constant_time_is_zero(a ^ b);
        }
 
-inline unsigned char constant_time_eq_8(unsigned int a, unsigned int b)
+static inline unsigned char constant_time_eq_8(unsigned int a, unsigned int b)
        {
        return (unsigned char)(constant_time_eq(a, b));
        }