diff --git a/bazaar/ProtectTest/ProtectTest.cpp b/bazaar/ProtectTest/ProtectTest.cpp new file mode 100755 index 000000000..be7a0de4d --- /dev/null +++ b/bazaar/ProtectTest/ProtectTest.cpp @@ -0,0 +1,53 @@ +#include +#include + +#include + +using namespace Upp; + +One GetCypher(uint8_t const *nonce, int nonceSize) +{ + String key = ScanHexString("AABBCCDDEEFF00112233445566778899"); + One res = new Snow2((uint8_t const *)~key, key.GetCount(), nonce, nonceSize); + return res; +} + + +void encrypted(int x) +{ + PROTECT_START_FUNC(GetCypher); + + Cerr() << "2 * X = " << 2 * x << "\n"; + + PROTECT_END_FUNC; +} + +void obfuscated(String const &s) +{ + OBFUSCATE_START_FUNC; + + Cerr() << "S is : " << s << "\n"; + + OBFUSCATE_END_FUNC; +} + +CONSOLE_APP_MAIN +{ + // check if protection key is ok; if not abort + ON_PROTECT_BAD_KEY(GetCypher) { + Cerr() << "Bad key, aborting\n"; + Exit(1); + } + + // run an encripted function, twice + encrypted(5); + encrypted(10); + + // run an obfuscated function, twice + obfuscated("Hello"); + obfuscated("Massimo"); + + // this data will be encrypted and can be read by PROTECT_DECRYPT_DATA call + const char *encryptedData = PROTECT_DATA_START "This data was encrypted\n" PROTECT_DATA_END; + Cerr() << PROTECT_DECRYPT_DATA(GetCypher, encryptedData); +} diff --git a/bazaar/ProtectTest/ProtectTest.upp b/bazaar/ProtectTest/ProtectTest.upp index 534fd98f8..ca2ce5dcd 100644 --- a/bazaar/ProtectTest/ProtectTest.upp +++ b/bazaar/ProtectTest/ProtectTest.upp @@ -1,23 +1,19 @@ -description "Test software protection module\377"; - uses - CtrlLib, + Core, Protect; file - main.cpp; + ProtectTest.cpp; mainconfig - "" = "GUI USE_SQLITE", - "" = "GUI PROTECT USE_SQLITE", - "" = "GUI", - "" = "GUI PROTECT"; + "" = "", + "" = "PROTECT"; custom(POSIX PROTECT) "post-link", "ProtectEncrypt $(EXEPATH) AABBCCDDEEFF00112233445566778899", ""; custom(WIN32 PROTECT) "post-link", - "ProtectEncrypt $(EXEPATH) AABBCCDDEEFF00112233445566778899", + "ProtectEncrypt.exe $(EXEPATH) AABBCCDDEEFF00112233445566778899", ""; diff --git a/bazaar/ProtectTest/main.cpp b/bazaar/ProtectTest/main.cpp deleted file mode 100644 index d011b1f9f..000000000 --- a/bazaar/ProtectTest/main.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include - -#include - -using namespace Upp; - -String GetKey(void) -{ - return ScanHexString("AABBCCDDEEFF00112233445566778899"); -} - -void Decrypt(byte *start, size_t len, byte const *nonce, size_t nonceLen) -{ - PROTECT_DECRYPT ( start, len, GetKey(), nonce, nonceLen ); -} - -double CryptedTest(double d, double e) -{ - PROTECT_START_FUNC(Decrypt); - - double f; - f = d * e; - - return 2 * f + e; - - PROTECT_END_FUNC; -} - -double ObfuscatedTest(double d, double e) -{ - // WARNING -- DON'T PUT ANY return STATEMENT BETWEEN - // OBFUSCATE_START and OBFUSCATE_END - OBFUSCATE_START_FUNC; - - double f; - f = d * e; - - OBFUSCATE_END_FUNC; - - return 2 * f + e; -} - -GUI_APP_MAIN -{ - bool bad_key = false; - ON_PROTECT_BAD_KEY(Decrypt) - { - bad_key = true; - } - - if(bad_key && PromptYesNo("Bad key !!&Do you want to continue anyways ?")) { - Exit(0); - } - - double d = CryptedTest(3, 4); - - d = ObfuscatedTest(3, 4); - d = ObfuscatedTest(3, 4); - - PromptOK("FINISHED OK !!"); -} -