git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
prepare file for new code
[swftools.git]
/
lib
/
MD5.c
diff --git
a/lib/MD5.c
b/lib/MD5.c
index
268e708
..
c12b761
100644
(file)
--- a/
lib/MD5.c
+++ b/
lib/MD5.c
@@
-39,6
+39,20
@@
#define MD5_BUFLEN 64
#define MD5_BUFLEN 64
+#ifndef LITTLE_ENDIAN
+#define LITTLE_ENDIAN 1
+#endif
+#ifndef BIG_ENDIAN
+#define BIG_ENDIAN 2
+#endif
+#ifndef BYTE_ORDER
+#ifdef WORDS_BIGENDIAN
+#define BYTE_ORDER BIG_ENDIAN
+#else
+#define BYTE_ORDER LITTLE_ENDIAN
+#endif
+#endif
+
typedef long unsigned int u_int32_t;
typedef long long unsigned int u_int64_t;
typedef unsigned char u_int8_t;
typedef long unsigned int u_int32_t;
typedef long long unsigned int u_int64_t;
typedef unsigned char u_int8_t;
@@
-151,6
+165,16
@@
_crypt_to64(char *s, u_long v, int n)
}
}
}
}
+void hash_md5(const unsigned char*buf, int len, unsigned char*dest)
+{
+ u_char final[MD5_SIZE];
+
+ MD5_CTX ctx;
+ MD5Init(&ctx);
+ MD5Update(&ctx, buf, len);
+ MD5Final(dest, &ctx);
+}
+
char * crypt_md5(const char *pw, const char *salt)
{
MD5_CTX ctx,ctx1;
char * crypt_md5(const char *pw, const char *salt)
{
MD5_CTX ctx,ctx1;
@@
-384,8
+408,7
@@
static const u_int8_t md5_paddat[MD5_BUFLEN] = {
static void md5_calc(u_int8_t *, md5_ctxt *);
static void md5_calc(u_int8_t *, md5_ctxt *);
-static void md5_init(ctxt)
- md5_ctxt *ctxt;
+static void md5_init(md5_ctxt *ctxt)
{
ctxt->md5_n = 0;
ctxt->md5_i = 0;
{
ctxt->md5_n = 0;
ctxt->md5_i = 0;
@@
-396,10
+419,7
@@
static void md5_init(ctxt)
bzero(ctxt->md5_buf, sizeof(ctxt->md5_buf));
}
bzero(ctxt->md5_buf, sizeof(ctxt->md5_buf));
}
-static void md5_loop(ctxt, input, len)
- md5_ctxt *ctxt;
- const u_int8_t *input;
- u_int len; /* number of bytes */
+static void md5_loop(md5_ctxt *ctxt, const u_int8_t *input, u_int len)
{
u_int gap, i;
{
u_int gap, i;
@@
-424,8
+444,7
@@
static void md5_loop(ctxt, input, len)
}
}
}
}
-static void md5_pad(ctxt)
- md5_ctxt *ctxt;
+static void md5_pad(md5_ctxt *ctxt)
{
u_int gap;
{
u_int gap;
@@
-463,9
+482,7
@@
static void md5_pad(ctxt)
md5_calc(ctxt->md5_buf, ctxt);
}
md5_calc(ctxt->md5_buf, ctxt);
}
-static void md5_result(digest, ctxt)
- u_int8_t *digest;
- md5_ctxt *ctxt;
+static void md5_result(u_int8_t *digest, md5_ctxt *ctxt)
{
/* 4 byte words */
#if BYTE_ORDER == LITTLE_ENDIAN
{
/* 4 byte words */
#if BYTE_ORDER == LITTLE_ENDIAN
@@
-483,13
+500,7
@@
static void md5_result(digest, ctxt)
#endif
}
#endif
}
-#if BYTE_ORDER == BIG_ENDIAN
-u_int32_t X[16];
-#endif
-
-static void md5_calc(b64, ctxt)
- u_int8_t *b64;
- md5_ctxt *ctxt;
+static void md5_calc(u_int8_t *b64, md5_ctxt *ctxt)
{
u_int32_t A = ctxt->md5_sta;
u_int32_t B = ctxt->md5_stb;
{
u_int32_t A = ctxt->md5_sta;
u_int32_t B = ctxt->md5_stb;
@@
-499,6
+510,7
@@
static void md5_calc(b64, ctxt)
u_int32_t *X = (u_int32_t *)b64;
#endif
#if BYTE_ORDER == BIG_ENDIAN
u_int32_t *X = (u_int32_t *)b64;
#endif
#if BYTE_ORDER == BIG_ENDIAN
+ u_int32_t X[16];
/* 4 byte words */
/* what a brute force but fast! */
u_int8_t *y = (u_int8_t *)X;
/* 4 byte words */
/* what a brute force but fast! */
u_int8_t *y = (u_int8_t *)X;