00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SH_MHASHKEYGEN_H
00022 #define SH_MHASHKEYGEN_H
00023
00024 #include <vector>
00025
00026 #include <mhash.h>
00027
00028 class MHashKeyGen {
00029 public:
00030 MHashKeyGen (void) ;
00031 MHashKeyGen (keygenid kgalgo, hashid halgo, unsigned int keysize) ;
00032 ~MHashKeyGen (void) ;
00033
00034 void setKeySize (unsigned int KeySize) ;
00035 void setKeyGenAlgorithm (keygenid algo) ;
00036 void setHashAlgorithm (hashid hashalgo) ;
00037 void setHashAlgorithms (std::vector<hashid> hashalgos) ;
00038 void setSalt (std::vector<unsigned char> salt) ;
00039
00040 std::vector<unsigned char> createKey (std::string password) ;
00041
00042 private:
00043 bool ready ;
00044 keygenid Algorithm ;
00045 KEYGEN AlgorithmData ;
00046 unsigned int KeySize ;
00047
00048 void *s_malloc (size_t size) ;
00049 } ;
00050
00051 #endif // ndef SH_MHASHKEYGEN_H