Added dontoptimize pragma to zerokeymemory in feistel class

This commit is contained in:
Leonetienne 2021-12-13 15:56:24 +01:00
parent ad2060133b
commit 3750e96a5f
3 changed files with 65 additions and 41 deletions

View File

@ -191,6 +191,13 @@ void GhettoCipher::Feistel::GenerateRoundKeys(const Block& seedKey)
return; return;
} }
// These pragmas only work for MSVC and g++, as far as i know. Beware!!!
#if defined _WIN32 || defined _WIN64
#pragma optimize("", off )
#elif defined __GNUG__
#pragma GCC push_options
#pragma GCC optimize ("O0")
#endif
void GhettoCipher::Feistel::ZeroKeyMemory() void GhettoCipher::Feistel::ZeroKeyMemory()
{ {
for (Block& key : roundKeys) for (Block& key : roundKeys)
@ -198,3 +205,8 @@ void GhettoCipher::Feistel::ZeroKeyMemory()
return; return;
} }
#if defined _WIN32 || defined _WIN64
#pragma optimize("", on )
#elif defined __GNUG__
#pragma GCC pop_options
#endif

View File

@ -355,6 +355,13 @@ void GhettoCipher::Feistel::GenerateRoundKeys(const Block& seedKey)
return; return;
} }
// These pragmas only work for MSVC and g++, as far as i know. Beware!!!
#if defined _WIN32 || defined _WIN64
#pragma optimize("", off )
#elif defined __GNUG__
#pragma GCC push_options
#pragma GCC optimize ("O0")
#endif
void GhettoCipher::Feistel::ZeroKeyMemory() void GhettoCipher::Feistel::ZeroKeyMemory()
{ {
for (Block& key : roundKeys) for (Block& key : roundKeys)
@ -362,6 +369,11 @@ void GhettoCipher::Feistel::ZeroKeyMemory()
return; return;
} }
#if defined _WIN32 || defined _WIN64
#pragma optimize("", on )
#elif defined __GNUG__
#pragma GCC pop_options
#endif
/*** ./../GhettoCrypt/GhettoCryptWrapper.cpp ***/ /*** ./../GhettoCrypt/GhettoCryptWrapper.cpp ***/

View File

@ -28,42 +28,6 @@
#pragma once #pragma once
/*** ./../GhettoCrypt/GhettoCryptWrapper.h ***/
#pragma once
#include <string>
namespace GhettoCipher
{
/** This class is a wrapper to make working with the GhettoCipher super easy with a python-like syntax
*/
class GhettoCryptWrapper
{
public:
//! Will encrypt a string and return it hexadecimally encoded.
static std::string EncryptString(const std::string& cleartext, const std::string& password);
//! Will decrypt a hexadecimally encoded string.
static std::string DecryptString(const std::string& ciphertext, const std::string& password);
//! Will encrypt a file.
//! Returns false if anything goes wrong (like, file-access).
//! @filename_in The file to be read.
//! @filename_out The file the encrypted version should be saved in.
static bool EncryptFile(const std::string& filename_in, const std::string& filename_out, const std::string& password, bool printProgressReport = false);
//! Will decrypt a file.
//! Returns false if anything goes wrong (like, file-access).
//! @filename_in The file to be read.
//! @filename_out The file the decrypted version should be saved in.
static bool DecryptFile(const std::string& filename_in, const std::string& filename_out, const std::string& password, bool printProgressReport = false);
private:
// No instanciation! >:(
GhettoCryptWrapper();
};
}
/*** ./../GhettoCrypt/Flexblock.h ***/ /*** ./../GhettoCrypt/Flexblock.h ***/
#pragma once #pragma once
@ -75,6 +39,11 @@ namespace GhettoCipher
typedef std::string Flexblock; typedef std::string Flexblock;
} }
/*** ./../GhettoCrypt/Version.h ***/
#pragma once
#define GHETTOCRYPT_VERSION 0.12
/*** ./../GhettoCrypt/Config.h ***/ /*** ./../GhettoCrypt/Config.h ***/
#pragma once #pragma once
@ -683,11 +652,6 @@ namespace GhettoCipher
} }
} }
/*** ./../GhettoCrypt/Version.h ***/
#pragma once
#define GHETTOCRYPT_VERSION 0.12
/*** ./../GhettoCrypt/Keyset.h ***/ /*** ./../GhettoCrypt/Keyset.h ***/
#pragma once #pragma once
@ -769,6 +733,42 @@ namespace GhettoCipher
}; };
} }
/*** ./../GhettoCrypt/GhettoCryptWrapper.h ***/
#pragma once
#include <string>
namespace GhettoCipher
{
/** This class is a wrapper to make working with the GhettoCipher super easy with a python-like syntax
*/
class GhettoCryptWrapper
{
public:
//! Will encrypt a string and return it hexadecimally encoded.
static std::string EncryptString(const std::string& cleartext, const std::string& password);
//! Will decrypt a hexadecimally encoded string.
static std::string DecryptString(const std::string& ciphertext, const std::string& password);
//! Will encrypt a file.
//! Returns false if anything goes wrong (like, file-access).
//! @filename_in The file to be read.
//! @filename_out The file the encrypted version should be saved in.
static bool EncryptFile(const std::string& filename_in, const std::string& filename_out, const std::string& password, bool printProgressReport = false);
//! Will decrypt a file.
//! Returns false if anything goes wrong (like, file-access).
//! @filename_in The file to be read.
//! @filename_out The file the decrypted version should be saved in.
static bool DecryptFile(const std::string& filename_in, const std::string& filename_out, const std::string& password, bool printProgressReport = false);
private:
// No instanciation! >:(
GhettoCryptWrapper();
};
}
/*** ./../GhettoCrypt/Cipher.h ***/ /*** ./../GhettoCrypt/Cipher.h ***/
#pragma once #pragma once