00001 /*! \file Cryptage.h 00002 \brief Encode et décode des données. 00003 00004 Cryptage matrice et XOR. 00005 00006 \author aerith (www.aerith.fr) 00007 \version 1.0 00008 \date 31/10/2007 00009 */ 00010 00011 00012 #ifndef INCLUDE_RSRC_CRYPTAGE 00013 #define INCLUDE_RSRC_CRYPTAGE 00014 00015 #include <string.h> 00016 #include <stdlib.h> 00017 00018 00019 //! Encode et décode des données 00020 /*! Cryptage rijndael. 00021 */ 00022 class Cryptage 00023 { 00024 private : 00025 int SizeKey; /*!< Taille de la clé. */ 00026 char *Key; /*!< Clé de l'encodage. */ 00027 int SizeData; /*!< Taille des datas. */ 00028 char *Data; /*!< Matrice des données. */ 00029 00030 //! Traite les données 00031 /*! Encodes ou décode et stock le resulat dans \a Data. 00032 \param pBuffer données à traitées. 00033 \param iSize taille du buffer, si 0 prend la taille de \a pBuffer. 00034 \param iMode encode si diférent de 0. 00035 */ 00036 void Crypt(char *pBuffer, int iSize, int iMode); 00037 00038 public : 00039 /*! Initalisé avec des parametres par defaut. 00040 \param pKey clé utilisée pour le cryptage. 00041 \param iSizeKey taille de la clé de cryptage. 00042 */ 00043 Cryptage(char *pKey = NULL, int iSizeKey = 0); 00044 00045 /*! Libere la memoire proprement. 00046 */ 00047 ~Cryptage(); 00048 00049 //! Definie la clé 00050 /*! Definie la clé \a Key utilisé pour le cryptage. 00051 \param pKey clé utilisée pour le cryptage. 00052 \param iSizeKey taille de la clé de cryptage. 00053 */ 00054 void SetKey(char *pKey, int iSizeKey = 0); 00055 00056 //! Encode les données 00057 /*! Encodes et stock le resulat dans \a Data. 00058 \param pBuffer données à traitées. 00059 \param iSize taille du buffer, si 0 prend la taille de \a pBuffer. 00060 */ 00061 void Encrypt(char *pBuffer, int iSize = 0); 00062 00063 //! Décode les données 00064 /*! Décodes et stock le resulat dans \a Data. 00065 \param pBuffer données à traitées. 00066 \param iSize taille du buffer, si 0 prend la taille de \a pBuffer. 00067 */ 00068 // decode et stock dans DecodedBuffer 00069 void Decrypt(char *pBuffer, int iSize = 0); 00070 00071 //! Retourne le resultat 00072 /*! Retourne le resultat du cryptage ou décryptaget. 00073 \return un pointeur sur \a Data. 00074 \sa GetSize() 00075 */ 00076 inline char *Get() 00077 { 00078 return (char *)Data; 00079 }; 00080 00081 //! Retourne la taille du resultat 00082 /*! Retourne la taille du resultat du cryptage ou décryptage. 00083 \return la taille de se que retourne \a Get(). 00084 \sa Get() 00085 */ 00086 inline int GetSize() 00087 { 00088 return SizeData; 00089 }; 00090 }; 00091 00092 #endif 00093
1.3.9.1