Bazaar/ProtectTest : modified for new Protect package

git-svn-id: svn://ultimatepp.org/upp/trunk@11983 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
micio 2018-06-06 10:49:48 +00:00
parent 1cfca47a1d
commit 194940efb1
3 changed files with 58 additions and 71 deletions

View file

@ -0,0 +1,53 @@
#include <Core/Core.h>
#include <Cypher/Snow2.h>
#include <Protect/Protect.h>
using namespace Upp;
One<Cypher> GetCypher(uint8_t const *nonce, int nonceSize)
{
String key = ScanHexString("AABBCCDDEEFF00112233445566778899");
One<Cypher> 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);
}

View file

@ -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",
"";

View file

@ -1,62 +0,0 @@
#include <CtrlLib/CtrlLib.h>
#include <Protect/Protect.h>
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 !!");
}