summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CryptClass/AESCrypt.cpp0
-rw-r--r--CryptClass/AESCrypt.hpp0
-rw-r--r--CryptClass/HASHCrypt.cpp52
-rw-r--r--CryptClass/HASHCrypt.hpp35
-rw-r--r--main.cpp33
5 files changed, 120 insertions, 0 deletions
diff --git a/CryptClass/AESCrypt.cpp b/CryptClass/AESCrypt.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/CryptClass/AESCrypt.cpp
diff --git a/CryptClass/AESCrypt.hpp b/CryptClass/AESCrypt.hpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/CryptClass/AESCrypt.hpp
diff --git a/CryptClass/HASHCrypt.cpp b/CryptClass/HASHCrypt.cpp
new file mode 100644
index 0000000..4ca3ee2
--- /dev/null
+++ b/CryptClass/HASHCrypt.cpp
@@ -0,0 +1,52 @@
+#include "HASHCrypt.hpp"
+
+
+
+//Constructeur
+HASHCrypt::HASHCrypt(std::string chain){
+ this->chain=chain; //Initialisation de l'attribut chain
+}
+
+//Destructeur
+HASHCrypt::~HASHCrypt(){
+}
+
+
+
+//Retourne la somme de controle MD5 sur 32 bits de l'attribut chain
+std::string HASHCrypt::getMD5_32(){
+
+ //Calcule de la somme de controle MD5 dans un type byte à partir de l'attribut chain
+ CryptoPP::Weak1::MD5 hash;
+ byte digest[ CryptoPP::Weak1::MD5::DIGESTSIZE ];
+ hash.CalculateDigest( digest, (byte*) this->chain.c_str(), this->chain.length() );
+
+ //Convertion du hash en std::string
+ CryptoPP::HexEncoder encoder;
+ std::string output;
+ encoder.Attach( new CryptoPP::StringSink( output ) );
+ encoder.Put( digest, sizeof(digest) );
+ encoder.MessageEnd();
+
+ //Retourne la sortie de la convertion
+ return output;
+}
+
+//Retourne la somme de controle MD5 sur 128 bits de l'attribut chain
+std::string HASHCrypt::getMD5_128(){
+
+ //Calcule de la somme de controle MD5 dans un type byte à partir de l'attribut chain
+ CryptoPP::Weak1::MD5 hash;
+ byte digest[ CryptoPP::Weak1::MD5::DIGESTSIZE * 4 ];
+ hash.CalculateDigest( digest, (byte*) this->chain.c_str(), this->chain.length() );
+
+ //Convertion du hash en std::string
+ CryptoPP::HexEncoder encoder;
+ std::string output;
+ encoder.Attach( new CryptoPP::StringSink( output ) );
+ encoder.Put( digest, sizeof(digest) );
+ encoder.MessageEnd();
+
+ //Retourne la sortie de la convertion
+ return output;
+}
diff --git a/CryptClass/HASHCrypt.hpp b/CryptClass/HASHCrypt.hpp
new file mode 100644
index 0000000..2b7fc96
--- /dev/null
+++ b/CryptClass/HASHCrypt.hpp
@@ -0,0 +1,35 @@
+//----- Includes std -----
+
+#include <string>
+
+
+//----- Includes crypto++ -----
+#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
+
+//Pour le calcule de la somme de controle MD5
+#include "crypto++/md5.h"
+//Pour la convertion en hexadécimal et vice-versa
+#include "crypto++/hex.h"
+
+
+/*----- Description -----
+Classe executant divers fonctions de hashage sur
+un attribut chain en utilisant la bibiothèque crypto++
+*/
+
+class HASHCrypt{
+
+ public:
+ HASHCrypt(std::string chain);
+ ~HASHCrypt();
+
+ std::string getMD5_32(); //Calcule de la somme de controle MD5 sur 32bit
+ std::string getMD5_128(); //Calcule de la somme de controle MD5 sur 128bit
+
+
+
+ private:
+ std::string chain; //Attribut paramètre des fonctions de hashage
+
+
+};
diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..846f03b
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,33 @@
+//----- Includes std -----
+
+#include <iostream>
+#include <string>
+
+//----- Includes personnal Class -----
+#include "CryptClass/HASHCrypt.hpp"
+
+//----- Prototype -----
+void aff(std::string chaine);
+
+
+
+
+//----- Program Start -----
+int main(){
+
+ HASHCrypt hash= HASHCrypt("Chaine");
+
+ aff(hash.getMD5_32());
+
+ return 0;
+
+}
+
+
+
+
+//---- Functions -----
+
+void aff(std::string chaine){
+ std::cout << chaine;
+}