The KAME files md5.* and sha1.* have the following changelog

entry:

----------------------------
revision 1.2
date: 2000/12/04 01:20:38;  author: tgl;  state: Exp;  lines:
+18 -18
Eliminate some of the more blatant platform-dependencies ... it
builds here now, anyway ...
----------------------------

Which basically changes u_int*_t -> uint*_t, so now it does not
compile neither under Debian 2.2 nor under NetBSD 1.5 which
is platform independent<B8> all right.  Also it replaces $KAME$
with $Id$ which is Bad Thing. PostgreSQL Id should be added as a
separate line so the file history could be seen.

So here is patch:

* changes uint*_t -> uint*.  I guess that was the original
  intention
* adds uint64 type to include/c.h because its needed
  [somebody should check if I did it right]
* adds back KAME Id, because KAME is the master repository
* removes stupid c++ comments in pgcrypto.c
* removes <sys/types.h> from the code, its not needed

--
marko

Marko Kreen
This commit is contained in:
Bruce Momjian 2001-01-09 16:07:14 +00:00
parent f906597e50
commit e586026d10
7 changed files with 51 additions and 48 deletions

View File

@ -1,4 +1,5 @@
/* $Id: md5.c,v 1.2 2000/12/04 01:20:38 tgl Exp $ */
/* $Id: md5.c,v 1.3 2001/01/09 16:07:13 momjian Exp $ */
/* $KAME: md5.c,v 1.3 2000/02/22 14:01:17 itojun Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@ -30,7 +31,6 @@
*/
#include <postgres.h>
#include "pgcrypto.h"
#include "md5.h"
@ -91,7 +91,7 @@
#define MD5_D0 0x10325476
/* Integer part of 4294967296 times abs(sin(i)), where i is in radians. */
static const uint32_t T[65] = {
static const uint32 T[65] = {
0,
0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,
0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
@ -114,7 +114,7 @@ static const uint32_t T[65] = {
0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391,
};
static const uint8_t md5_paddat[MD5_BUFLEN] = {
static const uint8 md5_paddat[MD5_BUFLEN] = {
0x80, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@ -125,7 +125,7 @@ static const uint8_t md5_paddat[MD5_BUFLEN] = {
0, 0, 0, 0, 0, 0, 0, 0,
};
static void md5_calc (uint8_t *, md5_ctxt *);
static void md5_calc (uint8 *, md5_ctxt *);
void md5_init(ctxt)
md5_ctxt *ctxt;
@ -141,7 +141,7 @@ void md5_init(ctxt)
void md5_loop(ctxt, input, len)
md5_ctxt *ctxt;
uint8_t *input;
uint8 *input;
unsigned int len; /* number of bytes */
{
unsigned int gap, i;
@ -155,7 +155,7 @@ void md5_loop(ctxt, input, len)
md5_calc(ctxt->md5_buf, ctxt);
for (i = gap; i + MD5_BUFLEN <= len; i += MD5_BUFLEN) {
md5_calc((uint8_t *)(input + i), ctxt);
md5_calc((uint8 *)(input + i), ctxt);
}
ctxt->md5_i = len - i;
@ -207,7 +207,7 @@ void md5_pad(ctxt)
}
void md5_result(digest, ctxt)
uint8_t *digest;
uint8 *digest;
md5_ctxt *ctxt;
{
/* 4 byte words */
@ -227,24 +227,24 @@ void md5_result(digest, ctxt)
}
#if BYTE_ORDER == BIG_ENDIAN
uint32_t X[16];
uint32 X[16];
#endif
static void md5_calc(b64, ctxt)
uint8_t *b64;
uint8 *b64;
md5_ctxt *ctxt;
{
uint32_t A = ctxt->md5_sta;
uint32_t B = ctxt->md5_stb;
uint32_t C = ctxt->md5_stc;
uint32_t D = ctxt->md5_std;
uint32 A = ctxt->md5_sta;
uint32 B = ctxt->md5_stb;
uint32 C = ctxt->md5_stc;
uint32 D = ctxt->md5_std;
#if BYTE_ORDER == LITTLE_ENDIAN
uint32_t *X = (uint32_t *)b64;
uint32 *X = (uint32 *)b64;
#endif
#if BYTE_ORDER == BIG_ENDIAN
/* 4 byte words */
/* what a brute force but fast! */
uint8_t *y = (uint8_t *)X;
uint8 *y = (uint8 *)X;
y[ 0] = b64[ 3]; y[ 1] = b64[ 2]; y[ 2] = b64[ 1]; y[ 3] = b64[ 0];
y[ 4] = b64[ 7]; y[ 5] = b64[ 6]; y[ 6] = b64[ 5]; y[ 7] = b64[ 4];
y[ 8] = b64[11]; y[ 9] = b64[10]; y[10] = b64[ 9]; y[11] = b64[ 8];

View File

@ -1,4 +1,5 @@
/* $Id: md5.h,v 1.2 2000/12/04 01:20:38 tgl Exp $ */
/* $Id: md5.h,v 1.3 2001/01/09 16:07:13 momjian Exp $ */
/* $KAME: md5.h,v 1.3 2000/02/22 14:01:18 itojun Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@ -36,8 +37,8 @@
typedef struct {
union {
uint32_t md5_state32[4];
uint8_t md5_state8[16];
uint32 md5_state32[4];
uint8 md5_state8[16];
} md5_st;
#define md5_sta md5_st.md5_state32[0]
@ -47,20 +48,20 @@ typedef struct {
#define md5_st8 md5_st.md5_state8
union {
uint64_t md5_count64;
uint8_t md5_count8[8];
uint64 md5_count64;
uint8 md5_count8[8];
} md5_count;
#define md5_n md5_count.md5_count64
#define md5_n8 md5_count.md5_count8
unsigned int md5_i;
uint8_t md5_buf[MD5_BUFLEN];
uint8 md5_buf[MD5_BUFLEN];
} md5_ctxt;
extern void md5_init (md5_ctxt *);
extern void md5_loop (md5_ctxt *, uint8_t *, unsigned int);
extern void md5_loop (md5_ctxt *, uint8 *, unsigned int);
extern void md5_pad (md5_ctxt *);
extern void md5_result (uint8_t *, md5_ctxt *);
extern void md5_result (uint8 *, md5_ctxt *);
/* compatibility */
#define MD5_CTX md5_ctxt

View File

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: pgcrypto.c,v 1.2 2000/11/20 20:36:56 tgl Exp $
* $Id: pgcrypto.c,v 1.3 2001/01/09 16:07:13 momjian Exp $
*/
#include <postgres.h>
@ -91,7 +91,7 @@ digest(PG_FUNCTION_ARGS)
to_hex(p, hlen, VARDATA(res));
PG_FREE_IF_COPY(arg, 0);
PG_FREE_IF_COPY(name, 0); // unnecessary i guess
PG_FREE_IF_COPY(name, 0);
PG_RETURN_TEXT_P(res);
}
@ -112,7 +112,7 @@ digest_exists(PG_FUNCTION_ARGS)
res = find_digest(&_hbuf, name, 1);
PG_FREE_IF_COPY(name, 0); // unnecessary i guess
PG_FREE_IF_COPY(name, 0);
if (res != NULL)
PG_RETURN_BOOL(true);

View File

@ -26,14 +26,12 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: pgcrypto.h,v 1.1 2000/10/31 13:11:28 petere Exp $
* $Id: pgcrypto.h,v 1.2 2001/01/09 16:07:13 momjian Exp $
*/
#ifndef _PG_CRYPTO_H
#define _PG_CRYPTO_H
#include <sys/types.h>
typedef struct _pg_digest pg_digest;
struct _pg_digest {
char *name;

View File

@ -1,4 +1,5 @@
/* $Id: sha1.c,v 1.2 2000/12/04 01:20:38 tgl Exp $ */
/* $Id: sha1.c,v 1.3 2001/01/09 16:07:13 momjian Exp $ */
/* $KAME: sha1.c,v 1.3 2000/02/22 14:01:18 itojun Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@ -35,7 +36,6 @@
*/
#include <postgres.h>
#include "pgcrypto.h"
#include "sha1.h"
@ -49,7 +49,7 @@
#ifndef unsupported
/* constant table */
static uint32_t _K[] = { 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 };
static uint32 _K[] = { 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 };
#define K(t) _K[(t) / 20]
#define F0(b, c, d) (((b) & (c)) | ((~(b)) & (d)))
@ -87,9 +87,9 @@ static void
sha1_step(ctxt)
struct sha1_ctxt *ctxt;
{
uint32_t a, b, c, d, e;
uint32 a, b, c, d, e;
size_t t, s;
uint32_t tmp;
uint32 tmp;
#if BYTE_ORDER == LITTLE_ENDIAN
struct sha1_ctxt tctxt;
@ -221,13 +221,13 @@ sha1_loop(ctxt, input0, len)
const caddr_t input0;
size_t len;
{
const uint8_t *input;
const uint8 *input;
size_t gaplen;
size_t gapstart;
size_t off;
size_t copysiz;
input = (const uint8_t *)input0;
input = (const uint8 *)input0;
off = 0;
while (off < len) {
@ -250,9 +250,9 @@ sha1_result(ctxt, digest0)
struct sha1_ctxt *ctxt;
caddr_t digest0;
{
uint8_t *digest;
uint8 *digest;
digest = (uint8_t *)digest0;
digest = (uint8 *)digest0;
sha1_pad(ctxt);
#if BYTE_ORDER == BIG_ENDIAN
bcopy(&ctxt->h.b8[0], digest, 20);

View File

@ -1,4 +1,5 @@
/* $Id: sha1.h,v 1.2 2000/12/04 01:20:38 tgl Exp $ */
/* $Id: sha1.h,v 1.3 2001/01/09 16:07:13 momjian Exp $ */
/* $KAME: sha1.h,v 1.4 2000/02/22 14:01:18 itojun Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@ -39,18 +40,18 @@
struct sha1_ctxt {
union {
uint8_t b8[20];
uint32_t b32[5];
uint8 b8[20];
uint32 b32[5];
} h;
union {
uint8_t b8[8];
uint64_t b64[1];
uint8 b8[8];
uint64 b64[1];
} c;
union {
uint8_t b8[64];
uint32_t b32[16];
uint8 b8[64];
uint32 b32[16];
} m;
uint8_t count;
uint8 count;
};
extern void sha1_init (struct sha1_ctxt *);

View File

@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
* $Id: c.h,v 1.85 2000/11/03 18:43:52 petere Exp $
* $Id: c.h,v 1.86 2001/01/09 16:07:14 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -277,13 +277,16 @@ typedef double float8;
#ifdef HAVE_LONG_INT_64
/* Plain "long int" fits, use it */
typedef long int int64;
typedef unsigned long int uint64;
#else
#ifdef HAVE_LONG_LONG_INT_64
/* We have working support for "long long int", use that */
typedef long long int int64;
typedef unsigned long long int uint64;
#else
/* Won't actually work, but fall back to long int so that code compiles */
typedef long int int64;
typedef unsigned long int uint64;
#define INT64_IS_BUSTED
#endif
#endif