#include "functions.h" #include "caesar.h" #include "vigenere.h" int main(int argc, char *argv[]) { int error = 0; int numberCharacters = 0; char *options[3] = {"-c","-v","-t"}; char *hook, *fileSrc, *fileDst, *buffer; size_t sFile, i; if(argc != 4) { usage(); } // Check options for(i = 0; i < 3; i++){ if(strcmp(argv[1], options[i]) == 0){ error++; } } if(error == 0) { usage(); return -1; } // Check crypt|decrypt if(strcmp(argv[2], "crypt") != 0 && strcmp(argv[2], "decrypt") != 0){ usage(); return -1; } hook = argv[2]; // Check file exist error = fileExist(argv[3]); if(error == -1){ printf("File doesn't exist\n"); // usage(); return -1; } fileSrc = argv[3]; if(strcmp(hook, "crypt") == 0) sFile = sizeof(char) + strlen(fileSrc) + 5; else sFile = sizeof(char) + strlen(fileSrc) + 7; fileDst = malloc(sFile); for(i = 0; i < strlen(fileSrc); i++){ fileDst[i] = fileSrc[i]; } fileDst[i++] = '.'; if(strcmp(hook, "decrypt") == 0){ fileDst[i++] = 'd'; fileDst[i++] = 'e'; } fileDst[i++] = 'c'; fileDst[i++] = 'r'; fileDst[i++] = 'y'; fileDst[i++] = 'p'; fileDst[i++] = 't'; fileDst[i++] = '\0'; // Get size of the file numberCharacters = fileNumberCaract(fileSrc); // Malloc the dest buffer buffer = malloc(sizeof(int) * numberCharacters); memset(buffer, 0, sizeof(int) * numberCharacters); // Caesar cipher if(strcmp(argv[1], "-c") == 0){ // Get key int key; do{ printf("Your key (between 1 and 26): "); scanf("%d",&key); }while(key < 1 || key > 26); if(strcmp(hook, "crypt") == 0) error = cryptCaesar(fileSrc, key, numberCharacters, buffer); if(strcmp(hook, "decrypt") == 0) error = decryptCaesar(fileSrc, key, numberCharacters, buffer); } else if(strcmp(argv[1], "-v") == 0){ // Get key char *key = malloc(8); printf("Your key: "); scanf("%s", key); if(strcmp(hook, "crypt") == 0) error = cryptVigenere(key, fileSrc, numberCharacters, buffer); free(key); } else if(strcmp(argv[1], "-t") == 0){ // Get key } // Add data to file addDataToFile(buffer, fileDst); /* Display error */ /* * if(error == 0) err(error, fileDst); * else if(error == -1) err(error, fileSrc); * else if(error == -2) err(error, fileDst); */ free(fileDst); free(buffer); return 0; }