diff options
author | lloyd <[email protected]> | 2014-11-15 23:50:21 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2014-11-15 23:50:21 +0000 |
commit | 2ca5de26e945bf2c7817e28bee01bb5ab2b8556b (patch) | |
tree | 0ab6d70a13343302ed4413dbe4296170813f1744 /src/lib/utils/ta_utils.h | |
parent | 060df7809a64d1b589554169443c48bc428ca726 (diff) |
Add some util functions for timing attack countermeasures from Falko
Diffstat (limited to 'src/lib/utils/ta_utils.h')
-rw-r--r-- | src/lib/utils/ta_utils.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/lib/utils/ta_utils.h b/src/lib/utils/ta_utils.h new file mode 100644 index 000000000..36ee551cc --- /dev/null +++ b/src/lib/utils/ta_utils.h @@ -0,0 +1,48 @@ +/* +* Timing Attack Countermeasure Functions +* (C) 2010 Falko Strenzke, Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#ifndef BOTAN_TIMING_ATTACK_CM_H__ +#define BOTAN_TIMING_ATTACK_CM_H__ + +#include <botan/types.h> + +namespace Botan { + +namespace TA_CM { + +/** +* Function used in timing attack countermeasures +* See Wagner, Molnar, et al "The Program Counter Security Model" +* +* @param in an integer +* @return 0 if in == 0 else 0xFFFFFFFF +*/ +u32bit gen_mask_u32bit(u32bit in); + +/** +* Branch-free maximum +* Note: assumes twos-complement signed representation +* @param a an integer +* @param b an integer +* @return max(a,b) +*/ +u32bit max_32(u32bit a, u32bit b); + +/** +* Branch-free minimum +* Note: assumes twos-complement signed representation +* @param a an integer +* @param b an integer +* @return min(a,b) +*/ +u32bit min_32(u32bit a, u32bit b); + +} + +} + +#endif |