Eneboo - Documentación para desarrolladores
|
00001 /* Copyright (C) 2000 MySQL AB 00002 00003 This program is free software; you can redistribute it and/or modify 00004 it under the terms of the GNU General Public License as published by 00005 the Free Software Foundation; version 2 of the License. 00006 00007 This program is distributed in the hope that it will be useful, 00008 but WITHOUT ANY WARRANTY; without even the implied warranty of 00009 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00010 GNU General Public License for more details. 00011 00012 You should have received a copy of the GNU General Public License 00013 along with this program; if not, write to the Free Software 00014 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 00015 00016 00017 /* MD5.H - header file for MD5C.C 00018 */ 00019 00020 /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All 00021 rights reserved. 00022 00023 License to copy and use this software is granted provided that it 00024 is identified as the "RSA Data Security, Inc. MD5 Message-Digest 00025 Algorithm" in all material mentioning or referencing this software 00026 or this function. 00027 00028 License is also granted to make and use derivative works provided 00029 that such works are identified as "derived from the RSA Data 00030 Security, Inc. MD5 Message-Digest Algorithm" in all material 00031 mentioning or referencing the derived work. 00032 00033 RSA Data Security, Inc. makes no representations concerning either 00034 the merchantability of this software or the suitability of this 00035 software for any particular purpose. It is provided "as is" 00036 without express or implied warranty of any kind. 00037 00038 These notices must be retained in any copies of any part of this 00039 documentation and/or software. 00040 */ 00041 00042 /* GLOBAL.H - RSAREF types and constants 00043 */ 00044 00045 /* PROTOTYPES should be set to one if and only if the compiler supports 00046 function argument prototyping. 00047 The following makes PROTOTYPES default to 0 if it has not already 00048 been defined with C compiler flags. 00049 */ 00050 00051 /* egcs 1.1.2 under linux didn't defined it.... :( */ 00052 00053 #ifndef PROTOTYPES 00054 #define PROTOTYPES 1 /* Assume prototypes */ 00055 #endif 00056 00057 /* POINTER defines a generic pointer type */ 00058 typedef unsigned char *POINTER; 00059 00060 /* UINT2 defines a two byte word */ 00061 typedef uint16 UINT2; /* Fix for MySQL / Alpha */ 00062 00063 /* UINT4 defines a four byte word */ 00064 typedef uint32 UINT4; /* Fix for MySQL / Alpha */ 00065 00066 /* PROTO_LIST is defined depending on how PROTOTYPES is defined above. 00067 If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it 00068 returns an empty list. 00069 */ 00070 #if PROTOTYPES 00071 #define PROTO_LIST(list) list 00072 #else 00073 #define PROTO_LIST(list) () 00074 #endif 00075 /* MD5 context. */ 00076 typedef struct { 00077 UINT4 state[4]; /* state (ABCD) */ 00078 UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */ 00079 unsigned char buffer[64]; /* input buffer */ 00080 } my_MD5_CTX; 00081 00082 #ifdef __cplusplus 00083 extern "C" { 00084 #endif 00085 void my_MD5Init PROTO_LIST ((my_MD5_CTX *)); 00086 void my_MD5Update PROTO_LIST 00087 ((my_MD5_CTX *, unsigned char *, unsigned int)); 00088 void my_MD5Final PROTO_LIST ((unsigned char [16], my_MD5_CTX *)); 00089 00090 #ifdef __cplusplus 00091 } 00092 #endif