md5.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

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