Update caesar chipher
This commit is contained in:
parent
e58fb770ad
commit
ca47a6a637
@ -1,4 +1,4 @@
|
||||
#include "cesar.h"
|
||||
#include "caesar.h"
|
||||
|
||||
/*
|
||||
s -> path source
|
||||
@ -6,17 +6,18 @@
|
||||
key -> key of encryption
|
||||
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;
|
||||
int i;
|
||||
int error = countCharact;
|
||||
char c = 0;
|
||||
|
||||
if(error == -1) return error;
|
||||
|
||||
/* Allocation dynamique */
|
||||
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);
|
||||
if(error != 0) return error;
|
||||
|
||||
@ -25,29 +26,25 @@ int cryptCesar(const char *s, const int key, const int countCharact, char *buffe
|
||||
int val = 0;
|
||||
/* For characters of A to Z */
|
||||
if(buffer[i] >= 'A' && buffer[i] <= 'Z') {
|
||||
if(buffer[i] + key > 'Z')
|
||||
val = ((buffer[i] - 'A')-26) + key + 'A';
|
||||
else
|
||||
val = (buffer[i] - 'A') + key + 'A';
|
||||
c = buffer[i] - 'A';
|
||||
val = ((c + key) % 26) + 'A';
|
||||
}
|
||||
/* For characters of 'a' to 'z' */
|
||||
else if(buffer[i] >= 'a' && buffer[i] <= 'z') {
|
||||
if(buffer[i] + key > 'z')
|
||||
val = ((buffer[i] - 'a')- 26) + key + 'A';
|
||||
else
|
||||
val = (buffer[i] - 'a') + key + 'A';
|
||||
c = buffer[i] - 'a';
|
||||
val = ((c + key) % 26) + 'A';
|
||||
}
|
||||
/* For others characters */
|
||||
else val = buffer[i];
|
||||
|
||||
bufferDst[i] = val;
|
||||
}
|
||||
|
||||
|
||||
bufferDst[i] = '\0';
|
||||
|
||||
/* Freedom the memory */
|
||||
free(buffer);
|
||||
|
||||
|
||||
return error;
|
||||
}
|
||||
/*
|
||||
@ -56,22 +53,22 @@ int cryptCesar(const char *s, const int key, const int countCharact, char *buffe
|
||||
key -> key of decryption
|
||||
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;
|
||||
char *buffer;
|
||||
int i;
|
||||
|
||||
if(error == -1)
|
||||
if(error == -1)
|
||||
return error;
|
||||
|
||||
/* Allocation dynamique */
|
||||
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);
|
||||
if(error != 0) return error;
|
||||
|
||||
/********* Decryption **********/
|
||||
/********* Decryption **********/
|
||||
for(i = 0; i < countCharact; i++) {
|
||||
int val = 0;
|
||||
/* buffer[i] >= 'A' AND buffer[i] <= 'Z' */
|
||||
@ -87,7 +84,7 @@ int decryptCesar(const char *s, const int key, const int countCharact, char *buf
|
||||
bufferDst[i] = val;
|
||||
}
|
||||
bufferDst[i] = '\0';
|
||||
|
||||
|
||||
/* Freedom the memory */
|
||||
free(buffer);
|
||||
|
12
caesar.h
Executable file
12
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
|
13
cesar.h
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
|
2
exec.sh
2
exec.sh
@ -1,3 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
gcc -W main.c functions.c cesar.c vigenere.c -o main && ./main $1 $2 $3 $4
|
||||
gcc -W main.c functions.c caesar.c vigenere.c -o main && ./main $1 $2 $3 $4
|
||||
|
BIN
main
BIN
main
Binary file not shown.
17
main.c
17
main.c
@ -1,5 +1,5 @@
|
||||
#include "functions.h"
|
||||
#include "cesar.h"
|
||||
#include "caesar.h"
|
||||
#include "vigenere.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
@ -18,7 +18,7 @@ int main(int argc, char *argv[]) {
|
||||
if(strcmp(argv[1], options[i]) == 0){
|
||||
error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(error == 0) {
|
||||
usage();
|
||||
@ -43,7 +43,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
fileSrc = argv[3];
|
||||
|
||||
if(strcmp(hook, "crypt") == 0) sFile = sizeof(char) + strlen(fileSrc) + 5;
|
||||
if(strcmp(hook, "crypt") == 0) sFile = sizeof(char) + strlen(fileSrc) + 5;
|
||||
else sFile = sizeof(char) + strlen(fileSrc) + 7;
|
||||
|
||||
fileDst = malloc(sFile);
|
||||
@ -55,7 +55,7 @@ int main(int argc, char *argv[]) {
|
||||
fileDst[i++] = '.';
|
||||
if(strcmp(hook, "decrypt") == 0){
|
||||
fileDst[i++] = 'd';
|
||||
fileDst[i++] = 'e';
|
||||
fileDst[i++] = 'e';
|
||||
}
|
||||
fileDst[i++] = 'c';
|
||||
fileDst[i++] = 'r';
|
||||
@ -71,6 +71,7 @@ int main(int argc, char *argv[]) {
|
||||
buffer = malloc(sizeof(int) * numberCharacters);
|
||||
memset(buffer, 0, sizeof(int) * numberCharacters);
|
||||
|
||||
// Caesar cipher
|
||||
if(strcmp(argv[1], "-c") == 0){
|
||||
// Get key
|
||||
int key;
|
||||
@ -81,17 +82,17 @@ int main(int argc, char *argv[]) {
|
||||
}while(key < 1 || key > 26);
|
||||
|
||||
if(strcmp(hook, "crypt") == 0)
|
||||
error = cryptCesar(fileSrc, key, numberCharacters, buffer);
|
||||
error = cryptCaesar(fileSrc, key, numberCharacters, buffer);
|
||||
if(strcmp(hook, "decrypt") == 0)
|
||||
error = decryptCesar(fileSrc, key, numberCharacters, buffer);
|
||||
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);
|
||||
|
||||
|
@ -0,0 +1,2 @@
|
||||
JGNNQ YQTNF!
|
||||
LG UWKU WP OGUUCIG GP ENCKT !!
|
@ -1,2 +0,0 @@
|
||||
HELLO WORLD!
|
||||
JE SUIS UN MESSAGE EN CLAIR !!
|
Loading…
Reference in New Issue
Block a user