diff --git a/Vernam/afaire.c b/Vernam/afaire.c new file mode 100644 index 0000000..92916d2 --- /dev/null +++ b/Vernam/afaire.c @@ -0,0 +1,45 @@ +#include +#include + +#define CODAGE + +int main(int argc, char *argv[]) { + FILE *f_m, *f_k, *f_mc; /* strcutures permettant, une fois FOPEN + exécuté de recupérer des informations pour manipuler les fichiers + en C */ + + int c; + int k1; + int calcul; + int option; + + /* recupération sur la ligne de commande des noms de fichiers et option (-c pour codage + -d pour décodage : message cle message_calculé + + + + code -c f1 f2 f3 + code -d f1 f2 f3 + + */ + + datafile = ouvre_fichier(argv[1], argv[2], argv[3]); + ouvre_fichier (argv[1], argv[2], argv[3], &f1, &f2, &f3); + + while ((c = fgetc(datafile.f_m)) != EOF) + + { + k1 = fgetc(datafile.f_k); + if (option == CODAGE) + calcul = (c+k1) % 256; + else + calcul = c-k1 >= 0?c-k1:256-(c-k1); + fputc(calcul, datafile.f_mc); + } + + + fermefichier(datafile); + + return EXIT_SUCCESS; + +} \ No newline at end of file diff --git a/Vernam/afaire.txt b/Vernam/afaire.txt new file mode 100644 index 0000000..7ef4800 --- /dev/null +++ b/Vernam/afaire.txt @@ -0,0 +1,6 @@ +1. Un programme qui génère une clé (au moins aussi longue que le message) +2. compléter le programme afaire.c pour qu'en fonction des paramètres de la ligne de commande il code ou décode. + + +A rendre pour le 15 décembre, sous le format suivant: +- un depot git \ No newline at end of file