gwenhywfar  4.8.0beta
Macros | Functions
mdigest.c File Reference
#include "mdigest_p.h"
#include "i18n_l.h"
#include <gwenhywfar/misc.h>
#include <gwenhywfar/debug.h>
#include <gwenhywfar/directory.h>
#include <gwenhywfar/text.h>
#include <gwenhywfar/syncio.h>
#include <gwenhywfar/syncio_file.h>
#include <gwenhywfar/gui.h>

Go to the source code of this file.

Macros

#define DISABLE_DEBUGLOG
 

Functions

static int GWEN_MDigest__HashFile (GWEN_MDIGEST *md, const char *fname, GWEN_BUFFER *hbuf)
 
static int GWEN_MDigest__HashFileTree (GWEN_MDIGEST *md, const char *baseFolder, const char *relFolder, const char *ignoreFile, GWEN_STRINGLIST *sl)
 
int GWEN_MDigest_Begin (GWEN_MDIGEST *md)
 
int GWEN_MDigest_CheckFileTree (GWEN_MDIGEST *md, const char *folder, const char *checksumFile, int strictCheck, uint32_t pid)
 
int GWEN_MDigest_End (GWEN_MDIGEST *md)
 
void GWEN_MDigest_free (GWEN_MDIGEST *md)
 
uint8_t * GWEN_MDigest_GetDigestPtr (GWEN_MDIGEST *md)
 
unsigned int GWEN_MDigest_GetDigestSize (GWEN_MDIGEST *md)
 
GWEN_CRYPT_HASHALGOID GWEN_MDigest_GetHashAlgoId (const GWEN_MDIGEST *md)
 
int GWEN_MDigest_HashFileTree (GWEN_MDIGEST *md, const char *folder, const char *ignoreFile, GWEN_STRINGLIST *sl)
 
GWEN_MDIGESTGWEN_MDigest_new (GWEN_CRYPT_HASHALGOID a)
 
int GWEN_MDigest_PBKDF2 (GWEN_MDIGEST *md, const char *password, const uint8_t *pSalt, uint32_t lSalt, uint8_t *pKey, uint32_t lKey, uint32_t iterations)
 
GWEN_MDIGEST_BEGIN_FN GWEN_MDigest_SetBeginFn (GWEN_MDIGEST *md, GWEN_MDIGEST_BEGIN_FN f)
 
void GWEN_MDigest_SetDigestBuffer (GWEN_MDIGEST *md, uint8_t *buf, unsigned int l)
 
void GWEN_MDigest_SetDigestLen (GWEN_MDIGEST *md, unsigned int l)
 
GWEN_MDIGEST_END_FN GWEN_MDigest_SetEndFn (GWEN_MDIGEST *md, GWEN_MDIGEST_END_FN f)
 
GWEN_MDIGEST_UPDATE_FN GWEN_MDigest_SetUpdateFn (GWEN_MDIGEST *md, GWEN_MDIGEST_UPDATE_FN f)
 
int GWEN_MDigest_Update (GWEN_MDIGEST *md, const uint8_t *buf, unsigned int l)
 

Macro Definition Documentation

#define DISABLE_DEBUGLOG

Definition at line 14 of file mdigest.c.

Function Documentation

static int GWEN_MDigest__HashFile ( GWEN_MDIGEST md,
const char *  fname,
GWEN_BUFFER hbuf 
)
static
static int GWEN_MDigest__HashFileTree ( GWEN_MDIGEST md,
const char *  baseFolder,
const char *  relFolder,
const char *  ignoreFile,
GWEN_STRINGLIST sl 
)
static
int GWEN_MDigest_Begin ( GWEN_MDIGEST md)
int GWEN_MDigest_CheckFileTree ( GWEN_MDIGEST md,
const char *  folder,
const char *  checksumFile,
int  strictCheck,
uint32_t  pid 
)

This function verifies the integrity of a given file hierarchy by comparing checksums saved in a given file inside that file tree to the actual checksums of the files in the file tree.

Parameters
mddigest algorithm to use (see GWEN_MDigest_Rmd160_new et al)
folderfolder to check
checkSumFilename of the file containing the checksums
strictCheckif !=0 then an error will be returned if there are files in the tree for which there is no corresponding entry in the checksum file
pidid of the open progress dialog (see GWEN_Gui_ProgressStart)

Definition at line 476 of file mdigest.c.

References DBG_ERROR, GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_new(), GWEN_DIR_SEPARATOR_S, GWEN_ERROR_VERIFY, GWEN_Gui_ProgressLog2(), GWEN_LoggerLevel_Error, GWEN_LoggerLevel_Warning, GWEN_MDigest_HashFileTree(), GWEN_StringList_Count(), GWEN_StringList_FirstEntry(), GWEN_StringList_free(), GWEN_StringList_new(), GWEN_StringList_RemoveString(), GWEN_StringListEntry_Data(), GWEN_StringListEntry_Next(), GWEN_SyncIo_Helper_ReadFileToStringList(), and I18N.

int GWEN_MDigest_End ( GWEN_MDIGEST md)
void GWEN_MDigest_free ( GWEN_MDIGEST md)
uint8_t* GWEN_MDigest_GetDigestPtr ( GWEN_MDIGEST md)
unsigned int GWEN_MDigest_GetDigestSize ( GWEN_MDIGEST md)
GWEN_CRYPT_HASHALGOID GWEN_MDigest_GetHashAlgoId ( const GWEN_MDIGEST md)

Definition at line 68 of file mdigest.c.

int GWEN_MDigest_HashFileTree ( GWEN_MDIGEST md,
const char *  folder,
const char *  ignoreFile,
GWEN_STRINGLIST sl 
)

Definition at line 459 of file mdigest.c.

References DBG_INFO, GWEN_LOGDOMAIN, GWEN_MDigest__HashFileTree(), and NULL.

Referenced by GWEN_MDigest_CheckFileTree().

GWEN_MDIGEST* GWEN_MDigest_new ( GWEN_CRYPT_HASHALGOID  a)

Definition at line 39 of file mdigest.c.

References GWEN_INHERIT_INIT, GWEN_LIST_INIT, and GWEN_NEW_OBJECT.

Referenced by GWEN_MDigest_Gc_new().

int GWEN_MDigest_PBKDF2 ( GWEN_MDIGEST md,
const char *  password,
const uint8_t *  pSalt,
uint32_t  lSalt,
uint8_t *  pKey,
uint32_t  lKey,
uint32_t  iterations 
)

Generate a key from a given password and a salt according to RFC 2898.

Definition at line 192 of file mdigest.c.

References DBG_ERROR, DBG_INFO, GWEN_ERROR_INVALID, GWEN_LOGDOMAIN, GWEN_MDigest_Begin(), GWEN_MDigest_End(), GWEN_MDigest_GetDigestPtr(), GWEN_MDigest_GetDigestSize(), and GWEN_MDigest_Update().

Referenced by GWEN_SmallTresor_Decrypt(), and GWEN_SmallTresor_Encrypt().

GWEN_MDIGEST_BEGIN_FN GWEN_MDigest_SetBeginFn ( GWEN_MDIGEST md,
GWEN_MDIGEST_BEGIN_FN  f 
)

Definition at line 153 of file mdigest.c.

Referenced by GWEN_MDigest_Gc_new().

void GWEN_MDigest_SetDigestBuffer ( GWEN_MDIGEST md,
uint8_t *  buf,
unsigned int  l 
)

This function takes over the given buffer

Definition at line 92 of file mdigest.c.

Referenced by GWEN_MDigest_Gc_End().

void GWEN_MDigest_SetDigestLen ( GWEN_MDIGEST md,
unsigned int  l 
)
GWEN_MDIGEST_END_FN GWEN_MDigest_SetEndFn ( GWEN_MDIGEST md,
GWEN_MDIGEST_END_FN  f 
)

Definition at line 166 of file mdigest.c.

Referenced by GWEN_MDigest_Gc_new().

GWEN_MDIGEST_UPDATE_FN GWEN_MDigest_SetUpdateFn ( GWEN_MDIGEST md,
GWEN_MDIGEST_UPDATE_FN  f 
)

Definition at line 179 of file mdigest.c.

Referenced by GWEN_MDigest_Gc_new().

int GWEN_MDigest_Update ( GWEN_MDIGEST md,
const uint8_t *  buf,
unsigned int  l 
)