summaryrefslogtreecommitdiff
path: root/CryptClass
diff options
context:
space:
mode:
Diffstat (limited to 'CryptClass')
-rw-r--r--CryptClass/AESCrypt.cpp17
-rw-r--r--CryptClass/AESCrypt.hpp23
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.