From c7dd5225b80960d3b47e76f16d4e9a06657e4b86 Mon Sep 17 00:00:00 2001 From: Loic GUEGAN Date: Sun, 8 Mar 2015 09:08:21 +0400 Subject: [PATCH] Switch to doxygen comments, and english comments. --- .gitignore | 3 ++ CryptClass/HASHCrypt.cpp | 59 +++++++++++-------------- CryptClass/HASHCrypt.hpp | 93 +++++++++++++++++++++++++++++++--------- Readme.md | 2 +- main.cpp | 29 +++++++++++-- 5 files changed, 126 insertions(+), 60 deletions(-) diff --git a/.gitignore b/.gitignore index 31f5f46..819d46f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ /*.cbp /bin /obj +/Doxyfile +/Doxygen +*.untracked diff --git a/CryptClass/HASHCrypt.cpp b/CryptClass/HASHCrypt.cpp index d77ee05..4c42ef3 100644 --- a/CryptClass/HASHCrypt.cpp +++ b/CryptClass/HASHCrypt.cpp @@ -1,68 +1,51 @@ +/** + * @file HASHCrypt.cpp + * @brief HASHCrypt class definitions + * @author manzerbredes + * @date 8 Mars 2015 + * + * Contain all definitions of HASHCrypt class. + * + */ + + #include "HASHCrypt.hpp" -//Constructeur +//Constructor HASHCrypt::HASHCrypt(){ } - -//Destructeur +//Destructor HASHCrypt::~HASHCrypt(){ } -/* - chain : objet de type string à hacher à l'aide de l'algorithme MD5 - digest: tableau de type byte* contenant les données hasher - size: int faisant référence à la taille du tableau - Attention si size!=sizeof(digest) risque d'erreur de type Segmentation fault - -*/ void HASHCrypt::getMD5_128(std::string chain, byte* digest, int size){ - //Contrôle de la taille du digest + //Digest size controller this->checkDigestSize(CryptoPP::Weak1::MD5::DIGESTSIZE,size); - //Calcule de la somme de controle MD5 dans un type byte* à partir du paramètre chain + //Create the MD5 on digest parameter CryptoPP::Weak1::MD5 hash; hash.CalculateDigest( digest, (byte*) chain.c_str(), chain.length() ); } -/* - chain : objet de type string à hacher à l'aide de l'algorithme SHA-256 - digest: tableau de type byte* contenant les données hasher - size : int faisant référence à la taille du tableau - - Attention si size!=sizeof(digest) risque d'erreur de type Segmentation fault - -*/ void HASHCrypt::getSHA_256(std::string chain, byte* digest, int size){ - //Contrôle de la taille du digest + //Digest size controller this->checkDigestSize(CryptoPP::SHA256::DIGESTSIZE,size); - //Calcule du SHA-256 dans un type byte* à partir du paramètre chain + //Create the SHA-256 on digest parameter CryptoPP::SHA256 hash; hash.CalculateDigest( digest, (byte*) chain.c_str(), chain.length() ); } -/* - size : contient la taille des données passer en paramètre à la méthode de hashage choisi -*/ -std::string HASHCrypt::getInvalidDigestSizeError(int sizeRequired, int size){ - std::ostringstream erreurStream; - erreurStream << "Taille de digest invalide ! ("<< sizeRequired <<" octets requis et "<< size <<" donner)"; - return erreurStream.str(); -} -/* - sizeRequired : Taille du disgest attendu - size : Taille du digest donné -*/ void HASHCrypt::checkDigestSize(int sizeRequired, int size){ try{ if(size !=sizeRequired){ @@ -75,3 +58,11 @@ void HASHCrypt::checkDigestSize(int sizeRequired, int size){ 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/CryptClass/HASHCrypt.hpp b/CryptClass/HASHCrypt.hpp index bf7ed95..2436040 100644 --- a/CryptClass/HASHCrypt.hpp +++ b/CryptClass/HASHCrypt.hpp @@ -1,46 +1,97 @@ -//----- Includes std ----- +/** + * @file HASHCrypt.hpp + * @brief HASHCrypt class header + * @author manzerbredes + * @date 8 Mars 2015 + * + * Contain all prototypes of HASHCrypt class. + * + */ + + +//----- std ----- #include #include #include -//----- Includes crypto++ ----- - -//Pour le calcule de la MD5 -#include -//Pour la convertion en hexadécimal et vice-versa -#include -//Pour l'utilisation de l'algorithme SHA -#include +//----- crypto++ ----- +#include //For MD5 +#include //For Hex convertion +#include //For SHA -/*----- Description ----- -Classe exécutant divers fonctions de hachage sur -un paramètre donné à la méthode choisie. -Gestion des exceptions. -Utilise la bibliothèque crypto++ -*/ + +/** + * @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: - //Constructeur + /** + * @brief Contructor + */ HASHCrypt(); - //Destructeur + /** + * @brief Destructor + */ ~HASHCrypt(); - //Contruit un MD5 de 128 bits sur le tableau digest de taille size à l'aide de la chaine chaine. + /** + * @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); - //Contruit un SHA de 256 bits sur le tableau digest de taille size à l'aide de la chaine chaine. + /** + * @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: - //Arrête le programme en cas de taille de Digest invalide et affiche une erreur. + /** + * @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); - //Assemble et retourne les messages d'erreurs de type : InvalidDigestSizeError + /** + * @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); diff --git a/Readme.md b/Readme.md index 52a795d..1f10cca 100644 --- a/Readme.md +++ b/Readme.md @@ -3,7 +3,7 @@ ##Présentation ->**forgetIt** est un projet open-source permettant une gestion, une sauvegarde de vos mots de passe de manière sécurisé.
+> **forgetIt** est un projet open-source permettant une gestion, une sauvegarde de vos mots de passe de manière sécurisé.
Pour cela **forgetIt** utilise des algorithmes de cryptages ayant fait leurs preuves issue de la bibliothèque *crypto++*.
La conception d'une interface graphique est prévue, et sera basé sur la bibliothèque *GTK+*.
diff --git a/main.cpp b/main.cpp index fc3b22a..45f62de 100644 --- a/main.cpp +++ b/main.cpp @@ -1,19 +1,40 @@ -//----- Includes std ----- +/** + * @file main.cpp + * @brief Entry point + * @author manzerbredes + * @version Prototype + * @date 8 Mars 2015 + * + * Entry point of the application. + * + */ + + + +//----- std ----- #include #include -//----- Includes personnal Class ----- +//----- class ----- #include "CryptClass/HASHCrypt.hpp" + //----- Prototype ----- void aff(std::string chaine); -//----- Program Start ----- -int main(){ +/** + * @fn int main(int argc, char *argv[]) + * @author manzerbredes + * @brief main function + * @param argc contain *argv[] length + * @param *argv[] contain the arguments list + * @return Return code, an int. + */ +int main(int argc, char *argv[]){