-
Notifications
You must be signed in to change notification settings - Fork 0
/
polybe.c
83 lines (80 loc) · 2.89 KB
/
polybe.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
///////////////////////////////////////////////////////////////////////////////////////
// //
// Auteur: Picot Rodolphe //
// //
// Le programme s'utilise de la facon suivante: //
// //
// Le premier argument est l'option,'-c' pour chiffrer et //
// '-d' pour déchiffrer //
// //
// Le deuxieme argument est la permutation, attention, //
// La permutaiton doit contenir tous les entiers entre //
// 1 et N //
// //
// Le troisieme argument est le message à chifrer/déchiffrer //
// //
// La ligne de compilation est : //
// //
// 'gcc -o exe *.c -lm' //
// //
// Exemple d'utilisation: //
// //
// ./exe -c 3,1,2,4 attaquesurparisle12 //
// //
// //
// FFGDFADXDGDFVFXFFVAXFDGVVGXFVFFFFXDFAGDX //
// //
// ./exe -d 3,1,2,4 FFGDFADXDGDFVFXFFVAXFDGVVGXFVFFFFXDFAGDX //
// //
// attaquesurparisle129 //
// //
// Note: il se peut que le chiffrement rajoute des '9' au message initial, //
// pour différencier les '9' légitimes des autres, on peut mettre le mot //
// "stop" à la fin du message à chiffrer. //
// //
///////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <string.h>
#include "entree.h"
#include "chiffrement.h"
#include "dechiffrement.h"
int main(int argc, char const *argv[])
{
if (argc != 4)
{
printf("Il n'y a pas le bon nombre d'arguments\n");
return 0;
}
int taille_message=strlen(argv[3]);
char message[taille_message];
memcpy(message, argv[3], sizeof(char)*taille_message);
int taille_permut=length_permut(argv[2]);
int permut[taille_permut];
if(traduction(permut, argv[2], strlen(argv[2])) !=0 ){
printf("La permutation n'est composé que de nombres\n");
return 0;
}
if (verification(permut, taille_permut) != 0)
{
printf("la permutation n'est pas bonne, il n'y a pas tous les entiers de 1 à n\n");
return 0;
}
if (strcmp(argv[1], "-c")==0){
if (chiffrement(permut, taille_permut, argv[3], taille_message) != 0)
{
printf("le message à chiffrer n'est pas bon, il ne faut que des lettres\n");
return 0;
}
}
else if (strcmp(argv[1], "-d")==0)
{
if (taille_message%taille_permut!=0 || dechiffrement(permut, taille_permut, message, taille_message) != 0 )
{
printf("le message à déchiffrer n'est pas bon, il ne faut que des lettres légitimes\n");
return 0;
}
}
else{
printf("relancez le programme en choisissant le chiffrement '-c' ou le dechiffrement '-d'\n");
}
}