diff --git a/Obfuscate/ObfuscateString.h b/Obfuscate/ObfuscateString.h index a37525f..9b420bc 100644 --- a/Obfuscate/ObfuscateString.h +++ b/Obfuscate/ObfuscateString.h @@ -8,26 +8,32 @@ private: std::array data; public: - constexpr ObfuscatedString(const std::array& obfuscatedData) - : data(obfuscatedData) { - } + constexpr ObfuscatedString(const std::array& obfuscatedData) + : data(obfuscatedData) {} + + /** + * @brief Decrypt a string with a static key + */ std::string decrypt() const { std::string result; - result.reserve(N); - for (char c : data) { - result.push_back(c ^ KEY); - } + result.resize(N - 1); // remove '\0' + + for (size_t i = 0; i < N - 1; ++i) + result[i] = data[i] ^ KEY; + return result; } }; -// Helper constexpr pour faire le chiffrement à la compilation +// Helper constexpr to encrypt at building +//template template -constexpr auto make_obfuscated(const char(&input)[N]) { - std::array result{}; - for (size_t i = 0; i < N; ++i) { - result[i] = input[i] ^ KEY; - } - return ObfuscatedString(result); +constexpr auto make_obfuscated(const char(&str)[N]) +{ + std::array enc{}; + for (size_t i = 0; i < N; ++i) + enc[i] = str[i] ^ KEY; + + return ObfuscatedString(enc); }