diff options
Diffstat (limited to 'Untracked/Doxygen/CryptClass/HASHCrypt.cpp')
| -rw-r--r-- | Untracked/Doxygen/CryptClass/HASHCrypt.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Untracked/Doxygen/CryptClass/HASHCrypt.cpp b/Untracked/Doxygen/CryptClass/HASHCrypt.cpp new file mode 100644 index 0000000..8822226 --- /dev/null +++ b/Untracked/Doxygen/CryptClass/HASHCrypt.cpp @@ -0,0 +1,70 @@ +/** + * @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(); +} + |
