diff --git a/src/constant_time_algo.cc b/src/constant_time_algo.cc deleted file mode 100644 index 582cf0e..0000000 --- a/src/constant_time_algo.cc +++ /dev/null @@ -1,21 +0,0 @@ -// This file is under GNU General Public License 3.0 -// see LICENSE.txt - -#include "constant_time_algo.hh" - -namespace pEp { - bool constant_time_equal(const std::string &a, const std::string &b) - { - if (a.size() != b.size()) - return false; - - unsigned d = 0; - for (std::size_t idx = 0; idx < a.size(); ++idx) { - d |= (static_cast(a[idx]) ^ static_cast(b[idx])); - } - - // if d is still 0, the strings are equal. - return d == 0; - } - -} // end of namespace pEp diff --git a/src/constant_time_algo.hh b/src/constant_time_algo.hh deleted file mode 100644 index c9e5733..0000000 --- a/src/constant_time_algo.hh +++ /dev/null @@ -1,19 +0,0 @@ -// This file is under GNU General Public License 3.0 -// see LICENSE.txt - -#ifndef LIBPEPADAPTER_CONSTANT_TIME_ALGO_HH -#define LIBPEPADAPTER_CONSTANT_TIME_ALGO_HH - -#include - -namespace pEp { - // Returns false if a.size() != b.size(). - // Compares always _all_ characters of 'a' and 'b' so runtime does not - // depends on the character position where the strings differ. - // Use this function instead of operator== if timing sidechannel attack - // might be a security problem. - bool constant_time_equal(const std::string &a, const std::string &b); - -} // end of namespace pEp - -#endif // LIBPEPADAPTER_CONSTANT_TIME_ALGO_HH