/******************************************************************************* * How to run script: * Run exe with following arguments in this order: * 1. encrypt or decrypt (keyword) * 2. file name (without extension) * 3. path to folder where file is located in * 4. file extension (e.g. ".TXT" - incl. dot!) * Example Batch: * ~dp0\SW01-XTEA-Cipher.exe encrypt test ~dp0 .TXT * ~dp0\SW01-XTEA-Cipher.exe decrypt test_ENCR ~dp0 .CIP *******************************************************************************/ /******************************************************************************* * Include Files *******************************************************************************/ #include /* Funktionsbibliothek: Integer */ #include /* Funktionsbibliothek: Hilfsfunktionen */ #include /* Funktionsbibliothek: Standard Ein- Ausgabe */ #include /* Funktionen zur Stringbearbeitung */ #include "main.h" #include "decrypt.h" #include "encrypt.h" // disable deprecated warning #pragma warning(disable : 4996) /******************************************************************************* ******************************* HAUPTPROGRAMM ********************************** *******************************************************************************/ main(argc, argv) /* Argumente an main-Funktion */ int argc; char* argv[]; { int Error = NO_ERROR; /* Errorcode der Filezugriffe */ char LoadFileName[NAMENSGROESSE + 1]; /* Variable fuer Originalfile */ char SaveFileName[NAMENSGROESSE + 1]; /* Variable fuer Sicherungsfile */ char key[4] = { 0 }; uint32_t key_uint32[4] = { 0 }; int mode = MODE_UNKNOWN; // 0 = unknown, 1 = encrypt, 2 = decrypt if (strcmp(MODE, "encrypt") == 0) { mode = MODE_ENCRYPT; } else if (strcmp(MODE, "decrypt") == 0) { mode = MODE_DECRYPT; } // mode not recognized else { printf("Modus nicht erkannt. Bitte encrypt oder decrypt bei Aufruf der Software angeben.\n"); return -1; } system("cls"); puts("XTEA Cipher"); puts("-----------------------\n"); puts("Please type your key here: (ENTER key will start the process!)"); fflush(stdin); // Flush fgets(key, 4, stdin); // Text einlesen (max. 4 Zeichen) // convert array to uint32 int i = 0; while (i < 4) { key_uint32[i] = (uint32_t)key[i++]; } /* Original file zusammensetzen */ strcpy(LoadFileName, PFAD); strcat(LoadFileName, DATEINAME); strcat(LoadFileName, DATEIENDUNG); /* Output file zusammensetzen */ strcpy(SaveFileName, PFAD); strcat(SaveFileName, DATEINAME); if (mode == MODE_ENCRYPT) { strcat(SaveFileName, ENCRYPTED_ADD); strcat(SaveFileName, ENCRYPTED_ENDING); printf("Encryption processing..."); Error = encrypt(LoadFileName, SaveFileName, key_uint32); } else if (mode == MODE_DECRYPT) { strcat(SaveFileName, DECRYPTED_ADD); strcat(SaveFileName, DECRYPTED_ENDING); printf("Decryption processing..."); Error = decrypt(LoadFileName, SaveFileName, key_uint32); } system("cls"); /* Errors auswerten */ if (Error == NO_ERROR) { printf("\n-> Ausgabefile konnte erstellt werden.\n"); } else { printf("ACHTUNG: Der Sicherungsvorgang konnte nicht umgesetzt werden!\n"); printf("-> Errorcode: %d\n", Error); switch (Error) { case ERROR_OPEN_LOAD_FILE: { /* Problem mit Originalfile */ printf("-> Originalfile konnte nicht geoeffnet werden!\n"); printf(" Lesezugriff fuer Originalfile nicht moeglich!\n"); break; } case ERROR_OPEN_SAVE_FILE: { /* Problem mit Sicherungsfile */ printf("-> Das Ausgabefile konnte nicht erstellt werden!\n"); printf(" Schreibzugriff fuer Ausgabefile wurde verweigert!\n"); break; } case ERROR_OPEN_VERSCHL_FILE: { /* Problem mit PW-File */ printf("-> Das Passwort-File konnte nicht erstellt werden!\n"); printf(" Schreibzugriff fuer Passwort-File wurde verweigert!\n"); break; } } } system("pause"); return (0); }