14#ifndef BOTAN_TIMING_ATTACK_CM_H__
15#define BOTAN_TIMING_ATTACK_CM_H__
17#include <botan/secmem.h>
37 for(
size_t i = 1; i !=
sizeof(T)*8; i *= 2)
45inline T
select(T mask, T from0, T from1)
47 return (from0 & mask) | (from1 & ~mask);
50template<
typename PredT,
typename ValT>
93 for(
size_t i = 0; i != elems; ++i)
107 for(
size_t i = 0; i != elems; ++i)
122 const T a_larger = b - a;
129 const T a_larger = b - a;
void cond_zero_mem(T cond, T *array, size_t elems)
void conditional_copy_mem(T value, T *to, const T *from0, const T *from1, size_t elems)
T select(T mask, T from0, T from1)
ValT val_or_zero(PredT pred_val, ValT val)