WHY2/src/lib/test/main.c

97 lines
2.2 KiB
C
Raw Normal View History

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
int main(void)
2022-03-20 18:12:25 +01:00
{
2022-05-25 17:44:53 +02:00
//VARIABLES
char *textBuffer = malloc(128);
char *keyBuffer;
char *statusBuffer;
char *outputBuffer = malloc(1); //THIS IS TEMP ALLOCATION
2022-05-24 18:09:35 +02:00
int exitCode = 0;
unsigned long timeBuffer;
FILE *outputStreamBuffer = stdout;
2022-05-25 17:44:53 +02:00
//FLAGS
2022-05-06 17:43:00 +02:00
inputFlags flags =
{
0, //SKIP CHECK
2022-05-06 17:43:00 +02:00
0, //NO OUTPUT
0 //UPDATE
2022-05-06 17:43:00 +02:00
};
2022-07-10 18:17:42 +02:00
//SET FLAGS
setFlags(flags);
//SET KEY_LENGTH TO 100
setKeyLength(100);
keyBuffer = malloc(getKeyLength() + 1);
2022-05-25 17:47:46 +02:00
//SET ENCRYPTION_SEPARATOR TO '|'
setEncryptionSeparator('|');
//SET outputBuffer to NULL
outputBuffer[0] = '\0';
//ENCRYPT
2022-07-10 18:17:42 +02:00
outputFlags encrypted = encryptText(TEST_TEXT, NULL);
strcpy(textBuffer, encrypted.outputText); //GET ENCRYPTED TEXT
strcpy(keyBuffer, encrypted.usedKey); //GET KEY
timeBuffer = encrypted.elapsedTime; //GET TIME 1
//DEALLOCATE BUFFER
deallocateOutput(encrypted);
//DECRYPT
2022-07-10 18:17:42 +02:00
encrypted = decryptText(textBuffer, keyBuffer);
2022-03-20 18:12:25 +01:00
timeBuffer += encrypted.elapsedTime; //GET TIME 1
2022-05-25 17:44:53 +02:00
//COMPARE DIFFERENCE
if (strcmp(encrypted.outputText, TEST_TEXT) == 0 && encrypted.exitCode == 0) //SUCCESS
2022-04-27 19:18:30 +02:00
{
statusBuffer = malloc(11);
strcpy(statusBuffer, "successful");
2022-04-27 19:18:30 +02:00
}
else //FAILURE
2022-04-27 19:18:30 +02:00
{
statusBuffer = malloc(8);
strcpy(statusBuffer, "failed");
outputBuffer = realloc(outputBuffer, strlen(encrypted.outputText) + 6);
sprintf(outputBuffer, "\t\t\"%s\"\n", encrypted.outputText);
outputStreamBuffer = stderr;
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
//PRINT OUTPUT
fprintf
(
outputStreamBuffer,
"Test %s!\n\n"
"TEXT: \t\t\"%s\"\n%s"
"OUTPUT: \t\"%s\"\n"
"KEY: \t\t\"%s\"\n"
"TIME: \t\t\"%lums\"\n"
"UNUSED KEY: \t\"%lu\"\n"
"EXIT CODE: \t\"%d\"\n"
, statusBuffer, TEST_TEXT, outputBuffer, textBuffer, encrypted.usedKey, timeBuffer / 1000, encrypted.unusedKeySize, encrypted.exitCode
);
2022-05-08 19:56:16 +02:00
//DEALLOCATION
free(textBuffer);
free(keyBuffer);
free(statusBuffer);
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
}