summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IOFileClass/FileManIOFile.cpp44
-rw-r--r--IOFileClass/FileManIOFile.hpp4
-rw-r--r--main.cpp11
3 files changed, 48 insertions, 11 deletions
diff --git a/IOFileClass/FileManIOFile.cpp b/IOFileClass/FileManIOFile.cpp
index 78758f4..424d704 100644
--- a/IOFileClass/FileManIOFile.cpp
+++ b/IOFileClass/FileManIOFile.cpp
@@ -16,7 +16,7 @@ FileManIOFile::FileManIOFile(std::string filename){
this->filename=filename;
this->readable=false;
this->data="";
- this->key[0]=NULL;
+ this->key;
}
FileManIOFile::~FileManIOFile(){
}
@@ -68,18 +68,18 @@ void FileManIOFile::read(std::string key){
}
-void FileManIOFile::write(std::string key, std::string data){
+
+
+
+void FileManIOFile::write(std::string key,std::string data){
AESCrypt aes;
HASHCrypt hash;
std::string dataEncrypted;
- if(this->key!=NULL){
- dataEncrypted=aes.encrypt(key, data);
- }
- else{
- dataEncrypted=aes.encrypt(this->key, data);
- }
+ dataEncrypted=aes.encrypt(key, data);
+
+
byte digest[16];
hash.getMD5_128(data, digest, sizeof(digest));
@@ -100,6 +100,34 @@ void FileManIOFile::write(std::string key, std::string data){
}
+void FileManIOFile::write(std::string data){
+
+ AESCrypt aes;
+ HASHCrypt hash;
+ std::string dataEncrypted;
+
+ dataEncrypted=aes.encrypt(this->key, data);
+
+
+ byte digest[16];
+ hash.getMD5_128(data, digest, sizeof(digest));
+
+
+ std::ofstream file;
+ file.open(this->filename, std::ios::out | std::ios::binary);
+
+ file.write((char *) digest,sizeof(digest));
+
+
+ file.write(dataEncrypted.c_str(), dataEncrypted.size());
+
+
+
+ file.close();
+
+ this->data=data;
+
+}
std::string FileManIOFile::getData(){
return this->data;
diff --git a/IOFileClass/FileManIOFile.hpp b/IOFileClass/FileManIOFile.hpp
index fbed051..310ded9 100644
--- a/IOFileClass/FileManIOFile.hpp
+++ b/IOFileClass/FileManIOFile.hpp
@@ -58,7 +58,9 @@ class FileManIOFile {
* Save data to "filename" attribute.
*
*/
- void write(std::string data,std::string key=NULL);
+ void write(std::string key, std::string data);
+ void write(std::string data);
+
/**
* @brief True if file fully decrypted.
diff --git a/main.cpp b/main.cpp
index 6b1bf23..af9f31b 100644
--- a/main.cpp
+++ b/main.cpp
@@ -38,9 +38,16 @@ int main(int argc, char *argv[]){
AESCrypt aes;
- FileManIOFile fichier = FileManIOFile("Doxygen/bob2.bin");
+ FileManIOFile fichier = FileManIOFile("Doxygen/bob.bin");
- fichier.write(key,chaine);
+ fichier.write(key, chaine);
+
+ fichier.read(key);
+
+ if(fichier.isReadable())
+ std::cout << fichier.getData();
+
+ fichier.write(chaine+" YES");
fichier.read(key);