From 85d7122de09b265bf2c11d4bd25956ff34e0c0d9 Mon Sep 17 00:00:00 2001 From: heck Date: Mon, 28 Feb 2022 23:24:13 +0100 Subject: [PATCH] Moved: module 'constant_time_algo' to libpEpCxx11 --- src/constant_time_algo.cc | 21 --------------------- src/constant_time_algo.hh | 19 ------------------- 2 files changed, 40 deletions(-) delete mode 100644 src/constant_time_algo.cc delete mode 100644 src/constant_time_algo.hh 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