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
|
/*.cbp
|
||||||
/bin
|
/bin
|
||||||
/obj
|
/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"
|
#include "HASHCrypt.hpp"
|
||||||
|
|
||||||
|
|
||||||
//Constructeur
|
//Constructor
|
||||||
HASHCrypt::HASHCrypt(){
|
HASHCrypt::HASHCrypt(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Destructor
|
||||||
//Destructeur
|
|
||||||
HASHCrypt::~HASHCrypt(){
|
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){
|
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);
|
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;
|
CryptoPP::Weak1::MD5 hash;
|
||||||
hash.CalculateDigest( digest, (byte*) chain.c_str(), chain.length() );
|
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){
|
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);
|
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;
|
CryptoPP::SHA256 hash;
|
||||||
hash.CalculateDigest( digest, (byte*) chain.c_str(), chain.length() );
|
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){
|
void HASHCrypt::checkDigestSize(int sizeRequired, int size){
|
||||||
try{
|
try{
|
||||||
if(size !=sizeRequired){
|
if(size !=sizeRequired){
|
||||||
|
@ -75,3 +58,11 @@ void HASHCrypt::checkDigestSize(int sizeRequired, int size){
|
||||||
std::exit(EXIT_FAILURE);
|
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 <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
//----- Includes crypto++ -----
|
//----- crypto++ -----
|
||||||
|
#include <crypto++/md5.h> //For MD5
|
||||||
//Pour le calcule de la MD5
|
#include <crypto++/hex.h> //For Hex convertion
|
||||||
#include <crypto++/md5.h>
|
#include <crypto++/sha.h> //For SHA
|
||||||
//Pour la convertion en hexadécimal et vice-versa
|
|
||||||
#include <crypto++/hex.h>
|
|
||||||
//Pour l'utilisation de l'algorithme SHA
|
|
||||||
#include <crypto++/sha.h>
|
|
||||||
|
|
||||||
|
|
||||||
/*----- 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{
|
class HASHCrypt{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//Constructeur
|
/**
|
||||||
|
* @brief Contructor
|
||||||
|
*/
|
||||||
HASHCrypt();
|
HASHCrypt();
|
||||||
|
|
||||||
//Destructeur
|
/**
|
||||||
|
* @brief Destructor
|
||||||
|
*/
|
||||||
~HASHCrypt();
|
~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);
|
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
|
void getSHA_256(std::string chain, byte* digest, int size); //Retourne SHA_256
|
||||||
|
|
||||||
private:
|
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);
|
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);
|
std::string getInvalidDigestSizeError(int sizeRequired, int size);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
##Présentation
|
##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 />
|
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 />
|
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 <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
//----- Includes personnal Class -----
|
//----- class -----
|
||||||
#include "CryptClass/HASHCrypt.hpp"
|
#include "CryptClass/HASHCrypt.hpp"
|
||||||
|
|
||||||
|
|
||||||
//----- Prototype -----
|
//----- Prototype -----
|
||||||
void aff(std::string chaine);
|
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
Add a link
Reference in a new issue