/* $Header: /CVSROOT/debris/drismd5.h,v 1.1 2005/07/25 03:16:06 tino Exp $ * * DebRIS: DEBian Remote Install Scripter * MD5 functions, once was drisnext * * $Log: drismd5.h,v $ * Revision 1.1 2005/07/25 03:16:06 tino * added from drisnext.h * */ #include static MD5_CTX dris_md5; static void dris_md5_add(const void *ptr, size_t len) { if (len) MD5_Update(&dris_md5, ptr, len); } static void dris_md5_add_s(const char *s) { dris_md5_add(s, strlen(s)); } static void dris_md5_init(void) { MD5_Init(&dris_md5); } static void dris_md5_cksum_init(void) { dris_md5_init(); dris_md5_add_s(config.pw); } static const char * dris_md5_get(void) { static const char hex[] = "0123456789abcdef"; static char ret[40]; char digest[16], *ptr; int i; MD5_Final(digest, &dris_md5); ptr = ret; for (i=0; i<16; i++) { *ptr++ = hex[(digest[i]>>4)&0xf]; *ptr++ = hex[(digest[i]>>0)&0xf]; } *ptr++ = '\r'; *ptr++ = '\n'; *ptr = 0; return ret; }