diff options
Diffstat (limited to 'CryptClass')
| -rw-r--r-- | CryptClass/AESCrypt.cpp | 17 | ||||
| -rw-r--r-- | CryptClass/AESCrypt.hpp | 23 |
2 files changed, 36 insertions, 4 deletions
diff --git a/CryptClass/AESCrypt.cpp b/CryptClass/AESCrypt.cpp index 30e501a..4f7309e 100644 --- a/CryptClass/AESCrypt.cpp +++ b/CryptClass/AESCrypt.cpp @@ -27,13 +27,24 @@ AESCrypt::~AESCrypt(){ -//Encrypt string +//Encrypt string with string key std::string AESCrypt::encrypt(std::string key, std::string data){ //Generate SHA-256 byte digest[32]; hash.getSHA_256(key, digest, (int)sizeof(digest)); + return encryptRoutine(data, digest, sizeof(digest)); + +} + +//Encrypt string with byte* key +std::string AESCrypt::encrypt(byte* key, std::string data){ + return encryptRoutine(data, key, 32); +} + +//The encryptRoutine +std::string AESCrypt::encryptRoutine(std::string data, byte* digest, int size){ //Contain data encrypted std::string cipher; @@ -42,7 +53,7 @@ std::string AESCrypt::encrypt(std::string key, std::string data){ try{ //Create encoder to encrypt data CryptoPP::ECB_Mode<CryptoPP::AES>::Encryption encoder; - encoder.SetKey( digest, sizeof(digest) ); + encoder.SetKey( digest, size ); //Encrypt data with StreamTransformationFilter with NO PADDING CryptoPP::StringSource ss1(data, true, @@ -62,10 +73,12 @@ std::string AESCrypt::encrypt(std::string key, std::string data){ //return encrypted data return cipher; + } + //Decrypt string std::string AESCrypt::decrypt(std::string key, std::string data){ diff --git a/CryptClass/AESCrypt.hpp b/CryptClass/AESCrypt.hpp index 455eed0..5e16672 100644 --- a/CryptClass/AESCrypt.hpp +++ b/CryptClass/AESCrypt.hpp @@ -41,6 +41,21 @@ class AESCrypt : public AbstractSKA { /** + * @brief Run encryptRoutine. + * + * @param key : key used to encrypt data + * @param data : contain data to encrypt. + * + * @return string : correspond to crypted data + * + * Run encryptRoutine with byte* key or string key + * + */ + std::string encrypt(std::string key, std::string data); + std::string encrypt(byte* key, std::string data); + + + /** * @brief Encrypt data with AES algorithm. * * @param key : key used to encrypt data @@ -48,11 +63,13 @@ class AESCrypt : public AbstractSKA { * * @return string : correspond to crypted data * - * Encrypt data, and return them in a string. + * Encrypt data, and return them into a string. * Padding are blank space. * */ - virtual std::string encrypt(std::string key, std::string data); + std::string encryptRoutine(std::string data, byte* digest, int size); + + /** * @brief Decrypt data from AES algorithm. @@ -67,6 +84,8 @@ class AESCrypt : public AbstractSKA { */ virtual std::string decrypt(std::string key, std::string data); + + private: HASHCrypt hash; ///< hash instance to generate SHA-256 hash code. |
