From 5783bf5e104813c3e62c134fb6a0d2c619a31635 Mon Sep 17 00:00:00 2001 From: manzerbredes Date: Wed, 11 Mar 2015 17:04:01 +0400 Subject: Add support to save without key after read file with the key. --- IOFileClass/FileManIOFile.cpp | 44 +++++++++++++++++++++++++++++++++++-------- IOFileClass/FileManIOFile.hpp | 4 +++- 2 files changed, 39 insertions(+), 9 deletions(-) (limited to 'IOFileClass') 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. -- cgit v1.2.3