gwenhywfar 4.0.3
|
00001 /*************************************************************************** 00002 $RCSfile$ 00003 ------------------- 00004 cvs : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $ 00005 begin : Wed Mar 16 2005 00006 copyright : (C) 2005 by Martin Preuss 00007 email : martin@libchipcard.de 00008 00009 *************************************************************************** 00010 * Please see toplevel file COPYING for license details * 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(); 00064 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Rmd160_new(); 00065 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Sha1_new(); 00066 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Sha256_new(); 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