mirror of
https://github.com/MariaDB/server.git
synced 2026-05-04 06:05:32 +02:00
Bug #42434: license of mysys MD5 implementation is not GPL-compatible
Took the Xfree implementation (based on the same rewrite as the NDB one) and added it instead of the current implementation. Added a macro to make the calls to MD5 more streamlined. client/mysqlmanager-pwgen.c: Bug #42434: changed to call the macro include/my_md5.h: Bug #42434: use the Xfree implementation mysys/md5.c: Bug #42434: use the Xfree implementation sql/item_strfunc.cc: Bug #42434: changed to call the macro sql/table.cc: Bug #42434: changed to call the macro tools/mysqlmanager.c: Bug #42434: changed to call the macro
This commit is contained in:
parent
6a99d1d4fb
commit
3033ea85a2
6 changed files with 292 additions and 385 deletions
|
|
@ -13,80 +13,42 @@
|
|||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
/* See md5.c for explanation and copyright information. */
|
||||
|
||||
/* MD5.H - header file for MD5C.C
|
||||
/*
|
||||
* $FreeBSD: src/contrib/cvs/lib/md5.h,v 1.2 1999/12/11 15:10:02 peter Exp $
|
||||
*/
|
||||
|
||||
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
|
||||
rights reserved.
|
||||
/* Unlike previous versions of this code, uint32 need not be exactly
|
||||
32 bits, merely 32 bits or more. Choosing a data type which is 32
|
||||
bits instead of 64 is not important; speed is considerably more
|
||||
important. ANSI guarantees that "unsigned long" will be big enough,
|
||||
and always using it seems to have few disadvantages. */
|
||||
typedef uint32 cvs_uint32;
|
||||
|
||||
License to copy and use this software is granted provided that it
|
||||
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
|
||||
Algorithm" in all material mentioning or referencing this software
|
||||
or this function.
|
||||
|
||||
License is also granted to make and use derivative works provided
|
||||
that such works are identified as "derived from the RSA Data
|
||||
Security, Inc. MD5 Message-Digest Algorithm" in all material
|
||||
mentioning or referencing the derived work.
|
||||
|
||||
RSA Data Security, Inc. makes no representations concerning either
|
||||
the merchantability of this software or the suitability of this
|
||||
software for any particular purpose. It is provided "as is"
|
||||
without express or implied warranty of any kind.
|
||||
|
||||
These notices must be retained in any copies of any part of this
|
||||
documentation and/or software.
|
||||
*/
|
||||
|
||||
/* GLOBAL.H - RSAREF types and constants
|
||||
*/
|
||||
|
||||
/* PROTOTYPES should be set to one if and only if the compiler supports
|
||||
function argument prototyping.
|
||||
The following makes PROTOTYPES default to 0 if it has not already
|
||||
been defined with C compiler flags.
|
||||
*/
|
||||
|
||||
/* egcs 1.1.2 under linux didn't defined it.... :( */
|
||||
|
||||
#ifndef PROTOTYPES
|
||||
#define PROTOTYPES 1 /* Assume prototypes */
|
||||
#endif
|
||||
|
||||
/* POINTER defines a generic pointer type */
|
||||
typedef unsigned char *POINTER;
|
||||
|
||||
/* UINT2 defines a two byte word */
|
||||
typedef uint16 UINT2; /* Fix for MySQL / Alpha */
|
||||
|
||||
/* UINT4 defines a four byte word */
|
||||
typedef uint32 UINT4; /* Fix for MySQL / Alpha */
|
||||
|
||||
/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
|
||||
If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
|
||||
returns an empty list.
|
||||
*/
|
||||
#if PROTOTYPES
|
||||
#define PROTO_LIST(list) list
|
||||
#else
|
||||
#define PROTO_LIST(list) ()
|
||||
#endif
|
||||
/* MD5 context. */
|
||||
typedef struct {
|
||||
UINT4 state[4]; /* state (ABCD) */
|
||||
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
|
||||
unsigned char buffer[64]; /* input buffer */
|
||||
} my_MD5_CTX;
|
||||
cvs_uint32 buf[4];
|
||||
cvs_uint32 bits[2];
|
||||
unsigned char in[64];
|
||||
} my_MD5Context;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void my_MD5Init PROTO_LIST ((my_MD5_CTX *));
|
||||
void my_MD5Update PROTO_LIST
|
||||
((my_MD5_CTX *, unsigned char *, unsigned int));
|
||||
void my_MD5Final PROTO_LIST ((unsigned char [16], my_MD5_CTX *));
|
||||
void my_MD5Init (my_MD5Context *context);
|
||||
void my_MD5Update (my_MD5Context *context,
|
||||
unsigned char const *buf, unsigned len);
|
||||
void my_MD5Final (unsigned char digest[16],
|
||||
my_MD5Context *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MY_MD5_HASH(digest,buf,len) \
|
||||
do { \
|
||||
my_MD5Context ctx; \
|
||||
my_MD5Init (&ctx); \
|
||||
my_MD5Update (&ctx, buf, len); \
|
||||
my_MD5Final (digest, &ctx); \
|
||||
} while (0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue