home *** CD-ROM | disk | FTP | other *** search
/ mail.altrad.com / 2015.02.mail.altrad.com.tar / mail.altrad.com / TEST / vlc-2-0-5-win32.exe / sdk / include / vlc / plugins / vlc_md5.h < prev    next >
C/C++ Source or Header  |  2012-12-12  |  2KB  |  60 lines

  1. /*****************************************************************************
  2.  * vlc_md5.h: MD5 hash
  3.  *****************************************************************************
  4.  * Copyright ┬⌐ 2004-2011 VLC authors and VideoLAN
  5.  *
  6.  * Authors: R├⌐mi Denis-Courmont
  7.  *          Rafa├½l Carr├⌐
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify it
  10.  * under the terms of the GNU Lesser General Public License as published by
  11.  * the Free Software Foundation; either version 2.1 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17.  * GNU Lesser General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU Lesser General Public License
  20.  * along with this program; if not, write to the Free Software Foundation,
  21.  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23.  
  24. #ifndef VLC_MD5_H
  25. # define VLC_MD5_H
  26.  
  27. /**
  28.  * \file
  29.  * This file defines functions and structures to compute MD5 digests
  30.  */
  31.  
  32. struct md5_s
  33. {
  34.     uint32_t A, B, C, D;          /* chaining variables */
  35.     uint32_t nblocks;
  36.     uint8_t buf[64];
  37.     int count;
  38. };
  39.  
  40. VLC_API void InitMD5( struct md5_s * );
  41. VLC_API void AddMD5( struct md5_s *, const void *, size_t );
  42. VLC_API void EndMD5( struct md5_s * );
  43.  
  44. /**
  45.  * Returns a char representation of the md5 hash, as shown by UNIX md5 or
  46.  * md5sum tools.
  47.  */
  48. static inline char * psz_md5_hash( struct md5_s *md5_s )
  49. {
  50.     char *psz = malloc( 33 ); /* md5 string is 32 bytes + NULL character */
  51.     if( likely(psz) )
  52.     {
  53.         for( int i = 0; i < 16; i++ )
  54.             sprintf( &psz[2*i], "%02"PRIx8, md5_s->buf[i] );
  55.     }
  56.     return psz;
  57. }
  58.  
  59. #endif
  60.