md5.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:3k
源码类别:

P2P编程

开发平台:

Visual C++

  1. /*
  2.  *  Openmysee
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License as published by
  6.  *  the Free Software Foundation; either version 2 of the License, or
  7.  *  (at your option) any later version.
  8.  *
  9.  *  This program is distributed in the hope that it will be useful,
  10.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *  GNU General Public License for more details.
  13.  *
  14.  *  You should have received a copy of the GNU General Public License
  15.  *  along with this program; if not, write to the Free Software
  16.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  */
  19.  
  20. /* GLOBAL.H - RSAREF types and constants
  21.  */
  22. /* PROTOTYPES should be set to one if and only if the compiler supports
  23.   function argument prototyping.
  24.   The following makes PROTOTYPES default to 0 if it has not already
  25.   been defined with C compiler flags.
  26.  */
  27. #ifndef PROTOTYPES
  28. #define PROTOTYPES 0
  29. #endif
  30. /* POINTER defines a generic pointer type */
  31. typedef unsigned char *POINTER;
  32. /* UINT2 defines a two byte word */
  33. typedef unsigned short int UINT2;
  34. /* UINT4 defines a four byte word */
  35. #if defined(__alpha) && defined(__osf__)
  36. typedef unsigned int UINT4;
  37. #else
  38. typedef unsigned long int UINT4;
  39. #endif
  40. /* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
  41.    If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
  42.   returns an empty list.
  43.  */
  44. #if PROTOTYPES
  45. #define PROTO_LIST(list) list
  46. #else
  47. #define PROTO_LIST(list) ()
  48. #endif
  49. /* MD5.H - header file for MD5C.C
  50.  */
  51. /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
  52. rights reserved.
  53. License to copy and use this software is granted provided that it
  54. is identified as the "RSA Data Security, Inc. MD5 Message-Digest
  55. Algorithm" in all material mentioning or referencing this software
  56. or this function.
  57. License is also granted to make and use derivative works provided
  58. that such works are identified as "derived from the RSA Data
  59. Security, Inc. MD5 Message-Digest Algorithm" in all material
  60. mentioning or referencing the derived work.
  61. RSA Data Security, Inc. makes no representations concerning either
  62. the merchantability of this software or the suitability of this
  63. software for any particular purpose. It is provided "as is"
  64. without express or implied warranty of any kind.
  65. These notices must be retained in any copies of any part of this
  66. documentation and/or software.
  67.  */
  68. /* MD5 context. */
  69. typedef struct
  70. {
  71. UINT4           state[4];  /* state (ABCD) */
  72. UINT4           count[2];  /* number of bits, modulo 2^64 (lsb first) */
  73. unsigned char   buffer[64]; /* input buffer */
  74. } MD5_CTX;
  75. void MD5Init    PROTO_LIST((MD5_CTX *));
  76. void MD5Update  PROTO_LIST((MD5_CTX *, unsigned char *, unsigned int));
  77. void MD5Final   PROTO_LIST((unsigned char[16], MD5_CTX *));
  78. void md5_calc   PROTO_LIST((unsigned char *, unsigned char *, unsigned int));
  79. void md5_asc    PROTO_LIST((unsigned char *, unsigned char *, unsigned int));