Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef GWENHYWFAR_MDIGEST_H
00015 #define GWENHYWFAR_MDIGEST_H
00016
00017 #include <gwenhywfar/list1.h>
00018 #include <gwenhywfar/list2.h>
00019
00020
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024
00025 typedef struct GWEN_MDIGEST GWEN_MDIGEST;
00026
00027
00028 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_MDIGEST, GWEN_MDigest, GWENHYWFAR_API)
00029 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_MDIGEST, GWEN_MDigest, GWENHYWFAR_API)
00030
00031
00032 #include <gwenhywfar/hashalgo.h>
00033 #include <gwenhywfar/stringlist.h>
00034
00035
00036
00037 GWENHYWFAR_API
00038 void GWEN_MDigest_free(GWEN_MDIGEST *md);
00039
00040 GWENHYWFAR_API
00041 GWEN_CRYPT_HASHALGOID GWEN_MDigest_GetHashAlgoId(const GWEN_MDIGEST *md);
00042
00043 GWENHYWFAR_API
00044 uint8_t *GWEN_MDigest_GetDigestPtr(GWEN_MDIGEST *md);
00045
00046 GWENHYWFAR_API
00047 unsigned int GWEN_MDigest_GetDigestSize(GWEN_MDIGEST *md);
00048
00049 GWENHYWFAR_API
00050 int GWEN_MDigest_Begin(GWEN_MDIGEST *md);
00051
00052 GWENHYWFAR_API
00053 int GWEN_MDigest_End(GWEN_MDIGEST *md);
00054
00055 GWENHYWFAR_API
00056 int GWEN_MDigest_Update(GWEN_MDIGEST *md, const uint8_t *buf, unsigned int l);
00057
00058
00059
00060
00061
00062
00063 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Md5_new(void);
00064 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Rmd160_new(void);
00065 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Sha1_new(void);
00066 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Sha256_new(void);
00067
00068
00072 GWENHYWFAR_API int GWEN_MDigest_PBKDF2(GWEN_MDIGEST *md,
00073 const char *password,
00074 const uint8_t *pSalt,
00075 uint32_t lSalt,
00076 uint8_t *pKey,
00077 uint32_t lKey,
00078 uint32_t iterations);
00079
00080 GWENHYWFAR_API int GWEN_MDigest_HashFileTree(GWEN_MDIGEST *md,
00081 const char *folder,
00082 const char *ignoreFile,
00083 GWEN_STRINGLIST *sl);
00084
00085
00097 GWENHYWFAR_API
00098 int GWEN_MDigest_CheckFileTree(GWEN_MDIGEST *md,
00099 const char *folder,
00100 const char *checksumFile,
00101 int strictCheck,
00102 uint32_t pid);
00103
00104 #ifdef __cplusplus
00105 }
00106 #endif
00107
00108
00109 #endif
00110
00111