/** * @file md5_helper.c * @brief MD5 checksum generation. * @author Patrick Roth - roth@stettbacher.ch * @date 2010-04-30 * @copyright 2010 Stettbacher Signal Processing AG * * @remarks * *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* 
* */ #include #include "md5.h" /** * Generate the MD5 checksum. * * @param addr: A pointer to the start address. * @param size: The size to compare. * @param buf: Destination buffer; must provide room for 32+1 chars! * @return A pointer to the first digit of the generated MD5 checksum. The * checksum's length is always 16 bytes. */ void getMd5ChecksumString(void *addr, ssize_t size, char *buf) { MD5_CTX md5; MD5Init(&md5); MD5Update(&md5, (unsigned char*)(addr), (unsigned int)size); MD5Final(&md5); for(int i = 0; i < 16; i++) { sprintf(buf+i*2, "%02x", md5.digest[i]); } *(buf+32) = '\0'; }