#include "vigenere.h" int cryptVigenere(const char *key, const char *fileSrc, const int numberCharacters, char *bufferDst) { int error = 0; char matrice[SIZE_MATRICE_VIGENERE][SIZE_MATRICE_VIGENERE]; char *data = malloc(sizeof(char) * numberCharacters); char *dataVigenere = NULL; char c = 0; int pos = 0; size_t i, j = 0; size_t keyLength = strlen(key); // Init the Vigenere matrice matriceVigenere(matrice); if (data == NULL) return -1; memset(data, 0, numberCharacters); error = copyFile(fileSrc, data); dataVigenere = malloc(strlen(data)); if (dataVigenere == NULL) return -1; memset(dataVigenere, 0, numberCharacters); // Fill the dataVigenere with the key for (i = 0; i < strlen(data); i++){ if (data[i] == '\n' || data[i] == ' ') dataVigenere[i] = data[i]; else dataVigenere[i] = key[j++]; if (j == keyLength) j = 0; } dataVigenere[pos - 1] = '\0'; printf("%s\n", data); printf("%s\n", dataVigenere); /*do { c = data[pos++]; printf("%c", c); if (c == '\n') {} }while (c != '\0');*/ /* Encrypt the data */ /*for (i = 0; i < strlen(data); i++) { printf("%c", matrice[data[i]][dataVigenere[i]]); }*/ free(dataVigenere); free(data); return error; } void matriceVigenere(char matrice[][SIZE_MATRICE_VIGENERE]) { int i, j = 0; char pos, pos2 = 'A'; //for (i = 0; i < SIZE_MATRICE_VIGENERE; i++) // matrice[0][i] = 'A' + i; for (i = 0; i < SIZE_MATRICE_VIGENERE; i++) { for (j = 0; j < SIZE_MATRICE_VIGENERE; j++) { if (pos > 'Z') matrice[i][j] = pos2++; else matrice[i][j] = pos++; } pos = 'B' + i; pos2 = 'A'; } for (i = 0; i < SIZE_MATRICE_VIGENERE; i++) { for (j = 0; j < SIZE_MATRICE_VIGENERE; j++) printf("%c ", matrice[i][j]); printf("f\n"); } }