From e261782473194273bf29eb033419501d7baf61be Mon Sep 17 00:00:00 2001 From: manzerbredes Date: Wed, 11 Mar 2015 16:47:05 +0400 Subject: Change AESCrypt to support mutiple key type (string and byte) --- CryptClass/AESCrypt.cpp | 24 +++++++++++++++++++++++- CryptClass/AESCrypt.hpp | 5 +++++ 2 files changed, 28 insertions(+), 1 deletion(-) (limited to 'CryptClass') diff --git a/CryptClass/AESCrypt.cpp b/CryptClass/AESCrypt.cpp index 0222e9a..0add260 100644 --- a/CryptClass/AESCrypt.cpp +++ b/CryptClass/AESCrypt.cpp @@ -33,6 +33,18 @@ std::string AESCrypt::encrypt(std::string key, std::string data){ byte digest[32]; hash.getSHA_256(key, digest, (int)sizeof(digest)); + return encryptRoutine(data, digest, sizeof(digest)); + +} +//Encrypt string +std::string AESCrypt::encrypt(byte* key, std::string data){ + + return encryptRoutine(data, key, 32); + +} + + +std::string AESCrypt::encryptRoutine(std::string data, byte* digest, int size){ //Contain data encrypted std::string cipher; @@ -41,7 +53,7 @@ std::string AESCrypt::encrypt(std::string key, std::string data){ try{ //Create encoder to encrypt data CryptoPP::ECB_Mode::Encryption encoder; - encoder.SetKey( digest, sizeof(digest) ); + encoder.SetKey( digest, size ); //Encrypt data with StreamTransformationFilter with NO PADDING CryptoPP::StringSource ss1(data, true, @@ -61,10 +73,20 @@ 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..58642c1 100644 --- a/CryptClass/AESCrypt.hpp +++ b/CryptClass/AESCrypt.hpp @@ -67,6 +67,11 @@ class AESCrypt : public AbstractSKA { */ virtual std::string decrypt(std::string key, std::string data); + std::string encrypt(byte* key, std::string data); + + std::string encryptRoutine(std::string data, byte* digest, int size); + + private: HASHCrypt hash; ///< hash instance to generate SHA-256 hash code. -- cgit v1.2.3