Compare commits

...

10 Commits

Author SHA1 Message Date
d715a0ad04 Update project 2023-10-02 18:35:36 +02:00
a7ec6b3978 Move sources files 2023-09-25 19:39:35 +02:00
7cce139996 Replace by english message 2023-09-25 19:28:36 +02:00
gbucchino
e0c4b67364 Update gitignore 2023-09-21 15:46:47 +02:00
5b6b663831 Add gitignore 2023-09-20 20:18:04 +02:00
50203b6203 Update text file 2022-11-16 20:13:21 +01:00
ca47a6a637 Update caesar chipher 2022-06-20 21:41:33 +02:00
e58fb770ad upd project 2022-03-11 11:17:55 +01:00
Geoffrey
478f35fe73 upd 2021-10-22 18:14:02 +02:00
80fc8763b0 upd vigenere 2021-10-21 20:08:14 +02:00
16 changed files with 135 additions and 66 deletions

5
.gitignore vendored Normal file

@ -0,0 +1,5 @@
**.txt.crypt
**.txt.decrypt
**.txt.**
**.txt
main

13
cesar.h

@ -1,13 +0,0 @@
#ifndef H_INFLATE
#define H_INFLATE
#define SIZE_MAX_FILE 8192
#include "functions.h"
/* Functions */
void inflate();
int cryptCesar(const char *s, const int key, const int countCharact, char *bufferDst);
int decryptCesar(const char *s, const int key, const int countCharact, char *bufferDst);
#endif

@ -1,3 +1,3 @@
#!/bin/sh #!/bin/sh
gcc -W main.c functions.c cesar.c vigenere.c -o main && ./main $1 $2 $3 $4 gcc -W src/main.c src/functions.c src/caesar.c src/vigenere.c -o output/main && ./output/main $1 $2 $3 $4

BIN
main

Binary file not shown.

@ -1,4 +1,4 @@
#include "cesar.h" #include "caesar.h"
/* /*
s -> path source s -> path source
@ -6,17 +6,18 @@
key -> key of encryption key -> key of encryption
This function encrypt data This function encrypt data
*/ */
int cryptCesar(const char *s, const int key, const int countCharact, char *bufferDst) { int cryptCaesar(const char *s, const int key, const int countCharact, char *bufferDst) {
char *buffer; char *buffer;
int i; int i;
int error = countCharact; int error = countCharact;
char c = 0;
if(error == -1) return error; if(error == -1) return error;
/* Allocation dynamique */ /* Allocation dynamique */
buffer = malloc(countCharact + 1); /* + 1 for '\0' */ buffer = malloc(countCharact + 1); /* + 1 for '\0' */
/* Copy the data of file in the buffer[] */ /* Copy the data of file into the buffer[] */
error = copyFile(s, buffer); error = copyFile(s, buffer);
if(error != 0) return error; if(error != 0) return error;
@ -25,17 +26,13 @@ int cryptCesar(const char *s, const int key, const int countCharact, char *buffe
int val = 0; int val = 0;
/* For characters of A to Z */ /* For characters of A to Z */
if(buffer[i] >= 'A' && buffer[i] <= 'Z') { if(buffer[i] >= 'A' && buffer[i] <= 'Z') {
if(buffer[i] + key > 'Z') c = buffer[i] - 'A';
val = ((buffer[i] - 'A')-26) + key + 'A'; val = ((c + key) % 26) + 'A';
else
val = (buffer[i] - 'A') + key + 'A';
} }
/* For characters of 'a' to 'z' */ /* For characters of 'a' to 'z' */
else if(buffer[i] >= 'a' && buffer[i] <= 'z') { else if(buffer[i] >= 'a' && buffer[i] <= 'z') {
if(buffer[i] + key > 'z') c = buffer[i] - 'a';
val = ((buffer[i] - 'a')- 26) + key + 'A'; val = ((c + key) % 26) + 'A';
else
val = (buffer[i] - 'a') + key + 'A';
} }
/* For others characters */ /* For others characters */
else val = buffer[i]; else val = buffer[i];
@ -56,7 +53,7 @@ int cryptCesar(const char *s, const int key, const int countCharact, char *buffe
key -> key of decryption key -> key of decryption
This function decryption by Cesar This function decryption by Cesar
*/ */
int decryptCesar(const char *s, const int key, const int countCharact, char *bufferDst) { int decryptCaesar(const char *s, const int key, const int countCharact, char *bufferDst) {
int error = countCharact; int error = countCharact;
char *buffer; char *buffer;
int i; int i;
@ -67,7 +64,7 @@ int decryptCesar(const char *s, const int key, const int countCharact, char *buf
/* Allocation dynamique */ /* Allocation dynamique */
buffer = malloc(countCharact + 1); /* +1 for '\0' */ buffer = malloc(countCharact + 1); /* +1 for '\0' */
/* Copy the data from file to buffer */ /* Copy the data from file into buffer */
error = copyFile(s, buffer); error = copyFile(s, buffer);
if(error != 0) return error; if(error != 0) return error;

12
src/caesar.h Executable file

@ -0,0 +1,12 @@
#ifndef H_INFLATE
#define H_INFLATE
#define SIZE_MAX_FILE 8192
#include "functions.h"
/* Functions */
int cryptCaesar(const char *s, const int key, const int countCharact, char *bufferDst);
int decryptCaesar(const char *s, const int key, const int countCharact, char *bufferDst);
#endif

@ -3,9 +3,9 @@
void usage() { void usage() {
printf("Usage: [options] [crypt|decrypt] [file]\n"); printf("Usage: [options] [crypt|decrypt] [file]\n");
printf("Options:\n"); printf("Options:\n");
printf("\t-c: chiffrement de Cesar\n"); printf("\t-c: Caesar cipher\n");
printf("\t-v: chiffrement de Vigenere\n"); printf("\t-v: Vigenere cipher\n");
printf("\t-t: chiffrement par transposition\n"); printf("\t-t: Transposition cipher\n");
} }
int fileExist(const char *path) { int fileExist(const char *path) {
FILE *f=NULL; FILE *f=NULL;

@ -1,5 +1,5 @@
#include "functions.h" #include "functions.h"
#include "cesar.h" #include "caesar.h"
#include "vigenere.h" #include "vigenere.h"
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
@ -71,28 +71,30 @@ int main(int argc, char *argv[]) {
buffer = malloc(sizeof(int) * numberCharacters); buffer = malloc(sizeof(int) * numberCharacters);
memset(buffer, 0, sizeof(int) * numberCharacters); memset(buffer, 0, sizeof(int) * numberCharacters);
// Caesar cipher
if(strcmp(argv[1], "-c") == 0){ if(strcmp(argv[1], "-c") == 0){
// Get key // Get key
int key; int key;
do{ do{
printf("Votre cle de chiffrement (entre 1 et 26): "); printf("Your key (between 1 and 26): ");
scanf("%d",&key); scanf("%d",&key);
}while(key < 1 || key > 26); }while(key < 1 || key > 26);
if(strcmp(hook, "crypt") == 0) if(strcmp(hook, "crypt") == 0)
error = cryptCesar(argv[3], key, numberCharacters, buffer); error = cryptCaesar(fileSrc, key, numberCharacters, buffer);
if(strcmp(hook, "decrypt") == 0) if(strcmp(hook, "decrypt") == 0)
error = decryptCesar(argv[3], key, numberCharacters, buffer); error = decryptCaesar(fileSrc, key, numberCharacters, buffer);
} }
else if(strcmp(argv[1], "-v") == 0){ else if(strcmp(argv[1], "-v") == 0){
// Get key // Get key
char *key = malloc(8); char *key = malloc(8);
printf("Your key: ");
scanf("%s", key);
if(strcmp(hook, "crypt") == 0) if(strcmp(hook, "crypt") == 0)
error = cryptVigenere(key, argv[3], buffer); error = cryptVigenere(key, fileSrc, numberCharacters, buffer);
free(key); free(key);
} }

77
src/vigenere.c Normal file

@ -0,0 +1,77 @@
#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");
}
}

10
src/vigenere.h Normal file

@ -0,0 +1,10 @@
#ifndef H_VIGENERE
#define H_VIGENERE
#include "functions.h"
#define SIZE_MATRICE_VIGENERE 26
int cryptVigenere(const char *key, const char *fileSrc, const int numberCharacters, char *bufferDst);
void matriceVigenere(char matrice[][SIZE_MATRICE_VIGENERE]);
#endif

@ -1,2 +0,0 @@
Hello world!
Je suis un message en clair !!

@ -1,2 +0,0 @@
HELLO WORLD!
JE SUIS UN MESSAGE EN CLAIR !!

@ -1,9 +0,0 @@
#include "vigenere.h"
int cryptVigenere(const char *key, const char *data, char *bufferDst) {
int error = 0;
printf("Vigenere\n");
return error;
}

@ -1,8 +0,0 @@
#ifndef H_VIGENERE
#define H_VIGENERE
#include "functions.h"
int cryptVigenere(const char *key, const char *data, char *bufferDst);
#endif