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 00034 00035 00036 GWENHYWFAR_API 00037 void GWEN_MDigest_free(GWEN_MDIGEST *md); 00038 00039 GWENHYWFAR_API 00040 GWEN_CRYPT_HASHALGOID GWEN_MDigest_GetHashAlgoId(const GWEN_MDIGEST *md); 00041 00042 GWENHYWFAR_API 00043 uint8_t *GWEN_MDigest_GetDigestPtr(GWEN_MDIGEST *md); 00044 00045 GWENHYWFAR_API 00046 unsigned int GWEN_MDigest_GetDigestSize(GWEN_MDIGEST *md); 00047 00048 GWENHYWFAR_API 00049 int GWEN_MDigest_Begin(GWEN_MDIGEST *md); 00050 00051 GWENHYWFAR_API 00052 int GWEN_MDigest_End(GWEN_MDIGEST *md); 00053 00054 GWENHYWFAR_API 00055 int GWEN_MDigest_Update(GWEN_MDIGEST *md, const uint8_t *buf, unsigned int l); 00056 00057 00058 00059 00060 00061 00062 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Md5_new(); 00063 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Rmd160_new(); 00064 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Sha1_new(); 00065 GWENHYWFAR_API GWEN_MDIGEST *GWEN_MDigest_Sha256_new(); 00066 00067 00068 #ifdef __cplusplus 00069 } 00070 #endif 00071 00072 00073 #endif 00074 00075