2022-03-20 18:12:25 +01:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
2022-04-27 19:18:30 +02:00
|
|
|
#include <string.h>
|
2022-03-20 18:12:25 +01:00
|
|
|
|
2022-05-12 17:12:33 +02:00
|
|
|
#include <why2.h>
|
2022-03-20 18:12:25 +01:00
|
|
|
|
2022-05-12 18:50:58 +02:00
|
|
|
int main(void)
|
2022-03-20 18:12:25 +01:00
|
|
|
{
|
2022-05-25 17:44:53 +02:00
|
|
|
//VARIABLES
|
2022-05-29 17:00:43 +02:00
|
|
|
char *textBuffer = malloc(128);
|
|
|
|
char *keyBuffer;
|
2022-05-24 18:09:35 +02:00
|
|
|
int exitCode = 0;
|
2022-05-30 19:13:43 +02:00
|
|
|
unsigned long timeBuffer;
|
2022-05-08 20:02:47 +02:00
|
|
|
|
2022-05-25 17:44:53 +02:00
|
|
|
//FLAGS
|
2022-05-06 17:43:00 +02:00
|
|
|
inputFlags flags =
|
2022-04-29 18:00:38 +02:00
|
|
|
{
|
2022-05-23 18:02:59 +02:00
|
|
|
0, //SKIP CHECK
|
2022-05-06 17:43:00 +02:00
|
|
|
0, //NO OUTPUT
|
2022-06-12 16:43:13 +02:00
|
|
|
1 //NO UPDATE
|
2022-05-06 17:43:00 +02:00
|
|
|
};
|
2022-04-29 18:00:38 +02:00
|
|
|
|
2022-05-25 18:01:13 +02:00
|
|
|
//SET KEY_LENGTH TO 100
|
|
|
|
setKeyLength(100);
|
2022-06-13 18:13:27 +02:00
|
|
|
keyBuffer = malloc(getKeyLength() + 1);
|
2022-05-25 17:47:46 +02:00
|
|
|
|
2022-05-30 19:13:43 +02:00
|
|
|
//ENCRYPT
|
2022-05-08 20:02:47 +02:00
|
|
|
outputFlags encrypted = encryptText(TEST_TEXT, NULL, flags);
|
|
|
|
|
2022-05-29 17:00:43 +02:00
|
|
|
strcpy(textBuffer, encrypted.outputText); //GET ENCRYPTED TEXT
|
|
|
|
strcpy(keyBuffer, encrypted.usedKey); //GET KEY
|
2022-05-30 19:13:43 +02:00
|
|
|
timeBuffer = encrypted.elapsedTime; //GET TIME 1
|
2022-05-08 20:02:47 +02:00
|
|
|
|
2022-05-29 17:00:43 +02:00
|
|
|
//DEALLOCATE BUFFER
|
|
|
|
deallocateOutput(encrypted);
|
|
|
|
|
2022-05-30 19:13:43 +02:00
|
|
|
//DECRYPT
|
2022-05-29 17:00:43 +02:00
|
|
|
encrypted = decryptText(textBuffer, keyBuffer, flags);
|
2022-03-20 18:12:25 +01:00
|
|
|
|
2022-05-30 19:13:43 +02:00
|
|
|
timeBuffer += encrypted.elapsedTime; //GET TIME 1
|
|
|
|
|
2022-05-25 17:44:53 +02:00
|
|
|
//COMPARE DIFFERENCE
|
2022-05-06 17:43:00 +02:00
|
|
|
if (strcmp(encrypted.outputText, TEST_TEXT) == 0)
|
2022-04-27 19:18:30 +02:00
|
|
|
{
|
2022-05-31 18:49:28 +02:00
|
|
|
printf
|
|
|
|
(
|
|
|
|
"Test successful!\n\n"
|
|
|
|
|
2022-05-31 18:52:05 +02:00
|
|
|
"TEXT: \t\t%s\n"
|
|
|
|
"OUTPUT: \t%s\n"
|
|
|
|
"KEY: \t\t%s\n"
|
|
|
|
"TIME: \t\t%lums\n"
|
|
|
|
"UNUSED KEY: \t%lu\n"
|
2022-06-12 17:08:37 +02:00
|
|
|
"EXIT CODE: \t%d\n"
|
2022-05-31 18:49:28 +02:00
|
|
|
|
2022-06-12 17:08:37 +02:00
|
|
|
, TEST_TEXT, textBuffer, encrypted.usedKey, timeBuffer / 1000, encrypted.unusedKeySize, encrypted.exitCode
|
2022-05-31 18:49:28 +02:00
|
|
|
);
|
2022-04-27 19:18:30 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2022-05-25 17:39:57 +02:00
|
|
|
fprintf(stderr, "Test failed!\n\n%s // %s\n", encrypted.outputText, TEST_TEXT);
|
2022-05-24 18:09:35 +02:00
|
|
|
exitCode = 1;
|
2022-04-27 19:18:30 +02:00
|
|
|
}
|
2022-03-20 18:12:25 +01:00
|
|
|
|
2022-05-08 19:56:16 +02:00
|
|
|
//DEALLOCATION
|
2022-05-29 17:00:43 +02:00
|
|
|
free(textBuffer);
|
|
|
|
free(keyBuffer);
|
2022-05-12 18:50:58 +02:00
|
|
|
deallocateOutput(encrypted);
|
2022-05-08 19:56:16 +02:00
|
|
|
|
2022-05-24 18:09:35 +02:00
|
|
|
return exitCode;
|
2022-04-26 19:05:57 +02:00
|
|
|
}
|