2015-02-27 17:11:30 +01:00
|
|
|
#include <cstddef>
|
2015-03-03 16:08:56 +01:00
|
|
|
#include <cstdint>
|
2015-02-27 17:11:30 +01:00
|
|
|
|
|
|
|
namespace axolotl {
|
|
|
|
|
|
|
|
/** Clear the memory held in the buffer */
|
|
|
|
void unset(
|
2015-03-03 16:08:56 +01:00
|
|
|
void volatile * buffer, std::size_t buffer_length
|
2015-02-27 17:11:30 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
/** Clear the memory backing an object */
|
|
|
|
template<typename T>
|
|
|
|
void unset(T & value) {
|
2015-03-03 16:08:56 +01:00
|
|
|
unset(reinterpret_cast<void volatile *>(&value), sizeof(T));
|
2015-02-27 17:11:30 +01:00
|
|
|
}
|
|
|
|
|
2015-03-03 16:08:56 +01:00
|
|
|
/** Check if two buffers are equal in constant time. */
|
|
|
|
bool is_equal(
|
|
|
|
std::uint8_t const * buffer_a,
|
|
|
|
std::uint8_t const * buffer_b,
|
|
|
|
std::size_t length
|
|
|
|
);
|
2015-02-27 17:11:30 +01:00
|
|
|
|
|
|
|
} // namespace axolotl
|