Switch to doxygen comments, and english comments.
This commit is contained in:
parent
bbfdf67777
commit
c7dd5225b8
5 changed files with 126 additions and 60 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -4,3 +4,6 @@
|
|||
/*.cbp
|
||||
/bin
|
||||
/obj
|
||||
/Doxyfile
|
||||
/Doxygen
|
||||
*.untracked
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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 <iostream>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
|
||||
//----- Includes crypto++ -----
|
||||
|
||||
//Pour le calcule de la MD5
|
||||
#include <crypto++/md5.h>
|
||||
//Pour la convertion en hexadécimal et vice-versa
|
||||
#include <crypto++/hex.h>
|
||||
//Pour l'utilisation de l'algorithme SHA
|
||||
#include <crypto++/sha.h>
|
||||
//----- crypto++ -----
|
||||
#include <crypto++/md5.h> //For MD5
|
||||
#include <crypto++/hex.h> //For Hex convertion
|
||||
#include <crypto++/sha.h> //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);
|
||||
|
||||
|
||||
|
|
|
@ -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é.<br />
|
||||
> **forgetIt** est un projet open-source permettant une gestion, une sauvegarde de vos mots de passe de manière sécurisé.<br />
|
||||
Pour cela **forgetIt** utilise des algorithmes de cryptages ayant fait leurs preuves issue de la bibliothèque *crypto++*.<br />
|
||||
La conception d'une interface graphique est prévue, et sera basé sur la bibliothèque *GTK+*.<br />
|
||||
|
||||
|
|
29
main.cpp
29
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 <iostream>
|
||||
#include <string>
|
||||
|
||||
//----- 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[]){
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue