#include #include #include #include #include "libbmp.h" #include "libstegano.h" #include "libcrypto.h" //CONSTANTES unsigned int SIZEHEADER; byte *TABHEADER; byte *readFile (char *path, unsigned int *size) { //lecture du fichier FILE *fichier = NULL; fichier = fopen (path, "rb");//"rb"=ouvert en mode binaire //Vérification de la présence du fichier if(fichier==NULL) { printf("[ERREUR] Aucun fichier n'est lu\n\n"); } else { printf("[OK] Lecture du fichier\n\n"); } //Taille du fichier fseek(fichier,0,SEEK_END); //[déplacement] du ptr à la fin à partir case 0 *size = ftell(fichier); //retourne [position] ptr dans fichier rewind(fichier);//remet ptr au début du fichier if(*size!=0) { printf("[OK] Détermination de la taille du fichier\n"); printf(" Taille = %d octets\n\n", *size); } else { printf("[ERREUR] Détermination de la taille du fichier\n"); } //Déclaration tableau dynamique taboctet, *size élément à allouer de taille byte byte *tab; tab = (byte*) calloc (*size, sizeof(byte)); //Récupération données du fichier fread (tab, 1, *size, fichier);//(tab, taille_element_lu, //fermeture du fichier fclose(fichier); return tab; } int writeFile (char *path, byte *array, unsigned int size) { //lecture du fichier FILE *fichier = NULL; fichier = fopen (path, "ab+");//"wb"=fichier ouvert en mode binaire //Vérification de la présence du fichier if(fichier==NULL) { printf("[ERREUR] Aucun fichier ne peut être écrit\n\n"); } else { printf("[OK] Ecriture du fichier\n\n"); } //Ecriture sur le fichier, 1=>bitparbit, sizeof(byte)=>nbr case mem taille octet=bytes fwrite(array, 1, size, fichier);//(ptr, taille_element, nbr_element, fichier) fclose(fichier); return 0; } int readValue (byte *array, int length, unsigned int *value) { int i, j=0; for(i=0; i