summaryrefslogtreecommitdiff
path: root/Untracked/Doxygen/CryptClass
diff options
context:
space:
mode:
Diffstat (limited to 'Untracked/Doxygen/CryptClass')
-rw-r--r--Untracked/Doxygen/CryptClass/AESCrypt.cpp110
-rw-r--r--Untracked/Doxygen/CryptClass/AESCrypt.hpp71
-rw-r--r--Untracked/Doxygen/CryptClass/AbstractSKA.hpp54
-rw-r--r--Untracked/Doxygen/CryptClass/HASHCrypt.cpp70
-rw-r--r--Untracked/Doxygen/CryptClass/HASHCrypt.hpp99
5 files changed, 0 insertions, 404 deletions
diff --git a/Untracked/Doxygen/CryptClass/AESCrypt.cpp b/Untracked/Doxygen/CryptClass/AESCrypt.cpp
deleted file mode 100644
index 002cb60..0000000
--- a/Untracked/Doxygen/CryptClass/AESCrypt.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * @file AESCrypt.cpp
- * @brief AESCrypt class definitions
- * @author manzerbredes
- * @date 8 Mars 2015
- *
- * Contain all definitions of AESCrypt class.
- *
- */
-
-#include "AESCrypt.hpp"
-
-//Constructor
-AESCrypt::AESCrypt(){
- this->hash=HASHCrypt(); //Init hash attribute
-}
-
-//Destructor
-AESCrypt::~AESCrypt(){
-}
-
-
-//Encrypt string
-std::string AESCrypt::encrypt(std::string key, std::string data){
-
- //Generate SHA-256
- byte digest[32];
- hash.getSHA_256(key, digest, (int)sizeof(digest));
-
-
-
-
- //Add padding for AES
- int pad=0;
- int tmpL=data.length();
- while(tmpL % 128 != 0){
- tmpL++;
- pad++;
-
- }
- std::cout <<pad;
- while(data.length() % 128 != 0){
- data+=pad;
- }
-
-
- //Contain data encrypted
- std::string cipher;
-
- //Use try, catch to be ensure no problems happening
- try{
- //Create encoder to encrypt data
- CryptoPP::ECB_Mode<CryptoPP::AES>::Encryption encoder;
- encoder.SetKey( digest, sizeof(digest) );
-
- //Encrypt data with StreamTransformationFilter with NO PADDING
- CryptoPP::StringSource ss1(data, true,
- new CryptoPP::StreamTransformationFilter( encoder,
- new CryptoPP::StringSink( cipher ),
- CryptoPP::StreamTransformationFilter::PKCS_PADDING
-
- )
- );
- }
- catch( CryptoPP::Exception& e )
- {
- std::cerr << e.what() << std::endl;
- exit(EXIT_FAILURE);
- }
-
- //return encrypted data
- return cipher;
-
-}
-
-//Decrypt string
-std::string AESCrypt::decrypt(std::string key, std::string data){
-
-
- byte digest[32];
- hash.getSHA_256(key, digest, (int)sizeof(digest));
-
-
- //Contain data decrypted
- std::string cipher;
-
- //Use try, catch to be ensure no problems happening
- try {
-
- //Create decoder to encrypt data
- CryptoPP::ECB_Mode< CryptoPP::AES >::Decryption decoder;
- decoder.SetKey( digest, sizeof(digest) );
-
- //Decrypt data with StreamTransformationFilter with NO PADDING
- CryptoPP::StringSource ss3( data, true,
- new CryptoPP::StreamTransformationFilter( decoder,
- new CryptoPP::StringSink( cipher ),
- CryptoPP::StreamTransformationFilter::PKCS_PADDING
- )
- );
- }
- catch( CryptoPP::Exception& e )
- {
- std::cerr << e.what() << std::endl;
- exit(1);
- }
-
- //return decrypted data
- return cipher;
-}
diff --git a/Untracked/Doxygen/CryptClass/AESCrypt.hpp b/Untracked/Doxygen/CryptClass/AESCrypt.hpp
deleted file mode 100644
index a8fa976..0000000
--- a/Untracked/Doxygen/CryptClass/AESCrypt.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * @file AESCrypt.hpp
- * @brief AESCrypt class header
- * @author manzerbredes
- * @date 8 Mars 2015
- *
- * Contain all prototypes of AESCrypt class.
- *
- */
-
-//----- std -----
-#include "AbstractSKA.hpp"
-#include "HASHCrypt.hpp"
-#include <iostream>
-
-//----- crypto++ -----
-#include <crypto++/aes.h>
-#include <crypto++/modes.h>
-#include <crypto++/filters.h>
-
-
-/**
- * @class AESCrypt AESCrypt.hpp "/CryptClass/AESCrypt.hpp"
- * @brief Class for Advanced Encryption Standard (AES) algorithm
- * @author manzerbredes
- *
- * This class provide AES encrypt and decrypt.
- *
- */
-
-class AESCrypt : public AbstractSKA {
-
-
- public:
- AESCrypt();
- ~AESCrypt();
-
-
- /**
- * @brief Encrypt data with AES algorithm.
- *
- * @param key : key to encrypt data
- * @param data : contain data to encrypt.
- *
- * @return string : correspond to crypted data
- *
- * Encrypt data, and return them in a string.
- * Padding are blank space.
- *
- */
- virtual std::string encrypt(std::string key, std::string data);
-
- /**
- * @brief Decrypt data from AES algorithm.
- *
- * @param key : key used to encrypt data
- * @param data : contain data to decrypt from AES encrypt.
- *
- * @return string : correspond to decrypted data
- *
- * Decrypt data, and return them in a string.
- * Padding is not removed.
- *
- */
- virtual std::string decrypt(std::string key, std::string data);
-
- private:
- HASHCrypt hash; ///< hash instance to generate SHA-256 hash code.
-
-
-};
diff --git a/Untracked/Doxygen/CryptClass/AbstractSKA.hpp b/Untracked/Doxygen/CryptClass/AbstractSKA.hpp
deleted file mode 100644
index de03b1b..0000000
--- a/Untracked/Doxygen/CryptClass/AbstractSKA.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * @file AbstractSKA.hpp
- * @brief Class for Symmetric-Key Algorithm (SKA)
- * @author manzerbredes
- * @date 8 Mars 2015
- *
- * Specify which method the algorithm must be implement.
- *
- */
-
-#include <string>
-
-
-/**
- * @class AbstractSKA AbstractSKA.hpp "/CryptClass/AbstractSKA.hpp"
- * @brief Class for Symmetric-Key Algorithm (SKA)
- * @author manzerbredes
- *
- * This class should not be instanciate directly.
- *
- */
-
-class AbstractSKA {
-
- public:
- AbstractSKA(){
- }
- ~AbstractSKA(){
- }
-
- /**
- * @brief Encrypt data.
- *
- * @param key : key used to encrypt data
- * @param data : contain data to encrypt.
- *
- * This method must be overwritten.
- * **Warning** data will be modified.
- *
- */
- virtual std::string encrypt(std::string key, std::string data) = 0;
-
- /**
- * @brief Decrypt data.
- *
- * @param key : key used to decrypt data
- * @param data : contain data to decrypt.
- *
- * This method must be overwritten.
- * **Warning** data will be modified.
- *
- */
- virtual std::string decrypt(std::string key, std::string data) = 0;
-};
diff --git a/Untracked/Doxygen/CryptClass/HASHCrypt.cpp b/Untracked/Doxygen/CryptClass/HASHCrypt.cpp
deleted file mode 100644
index 8822226..0000000
--- a/Untracked/Doxygen/CryptClass/HASHCrypt.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * @file HASHCrypt.cpp
- * @brief HASHCrypt class definitions
- * @author manzerbredes
- * @date 8 Mars 2015
- *
- * Contain all definitions of HASHCrypt class.
- *
- */
-
-
-#include "HASHCrypt.hpp"
-
-
-//Constructor
-HASHCrypt::HASHCrypt(){
-}
-
-//Destructor
-HASHCrypt::~HASHCrypt(){
-}
-
-
-
-void HASHCrypt::getMD5_128(std::string chain, byte* digest, int size){
-
- //Digest size controller
- this->checkDigestSize(CryptoPP::Weak1::MD5::DIGESTSIZE,size);
-
- //Create the MD5 on digest parameter
- CryptoPP::Weak1::MD5 hash;
- hash.CalculateDigest( digest, (byte*) chain.c_str(), chain.length() );
-
-}
-
-
-void HASHCrypt::getSHA_256(std::string chain, byte* digest, int size){
-
- //Digest size controller
- this->checkDigestSize(CryptoPP::SHA256::DIGESTSIZE,size);
-
- //Create the SHA-256 on digest parameter
- CryptoPP::SHA256 hash;
- hash.CalculateDigest( digest, (byte*) chain.c_str(), chain.length() );
-
-
-}
-
-
-
-void HASHCrypt::checkDigestSize(int sizeRequired, int size){
- try{
- if(size !=sizeRequired){
- throw this->getInvalidDigestSizeError(sizeRequired, size);
- }
-
- }
- catch(std::string erreur){
- std::cerr << erreur <<std::endl;
- std::exit(EXIT_FAILURE);
- }
-}
-
-
-std::string HASHCrypt::getInvalidDigestSizeError(int sizeRequired, int size){
- std::ostringstream erreurStream;
- erreurStream << "Invalid digest size ! ("<< sizeRequired <<" bytes required and "<< size <<" given)";
- return erreurStream.str();
-}
-
diff --git a/Untracked/Doxygen/CryptClass/HASHCrypt.hpp b/Untracked/Doxygen/CryptClass/HASHCrypt.hpp
deleted file mode 100644
index 22e0c4f..0000000
--- a/Untracked/Doxygen/CryptClass/HASHCrypt.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * @file HASHCrypt.hpp
- * @brief HASHCrypt class header
- * @author manzerbredes
- * @date 8 Mars 2015
- *
- * Contain all prototypes of HASHCrypt class.
- *
- */
-
-
-//----- std -----
-#include <iostream>
-#include <string>
-#include <sstream>
-
-//----- crypto++ -----
-#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
-#include <crypto++/md5.h> //For MD5
-#include <crypto++/hex.h> //For Hex convertion
-#include <crypto++/sha.h> //For SHA
-#include <crypto++/modes.h>
-
-
-/**
- * @class HASHCrypt HASHCrypt.hpp "/CryptClass/HASHCrypt.hpp"
- * @brief Hashing class
- * @author manzerbredes
- *
- * Class who handle hashing functions to a byte* parameter.
- * HASHCrypt try to detect errors and throw exceptions.
- * HASHCrypt use crypto++ library.
- */
-class HASHCrypt{
-
- public:
- /**
- * @brief Contructor
- */
- HASHCrypt();
-
- /**
- * @brief Destructor
- */
- ~HASHCrypt();
-
- /**
- * @brief Create an MD5 over 128 bits on a digest array of bytes.
- *
- * @param chain : Chain to hash
- * @param digest : An array of bytes (8 bits)
- * @param size : Length of the array digest
- *
- * **Warning** digest will be modified.
- * Digest must be an array of byte with 16 entries
- */
- void getMD5_128(std::string chain, byte* digest, int size);
-
- /**
- * @brief Create an SHA over 256 bits on a digest array of bytes.
- *
- * @param chain : Chain to hash
- * @param digest : An array of bytes (8 bits)
- * @param size : Length of the array digest
- *
- * **Warning** digest will be modified.
- * Digest must be an array of byte with 32 entries
- */
- void getSHA_256(std::string chain, byte* digest, int size); //Retourne SHA_256
-
- private:
-
- /**
- * @brief Check the digest size
- *
- * @param sizeRequired : Digest size expected
- * @param size : Given digest size
- *
- * Throw an exception, and stop the programm if
- * sizeRequired != size
- * Use getInvalidDigestSizeError method.
- */
- void checkDigestSize(int sizeRequired, int size);
-
- /**
- * @brief Make and error message.
- *
- * @param sizeRequired : Digest size expected
- * @param size : Given digest size
- *
- * @return a string correspond to the error message
- *
- * Construct an error message with sizeRequired and size.
- */
- std::string getInvalidDigestSizeError(int sizeRequired, int size);
-
-
-
-};