#include <ac/string.h>
+/* include socket.h to get sys/types.h and/or winsock2.h */
+#include <ac/socket.h>
+
#include <lutil_md5.h>
/* Little-endian byte-swapping routines. Note that these do not
surprised if they were a performance bottleneck for MD5. */
static uint32
-getu32 (addr)
- const unsigned char *addr;
+getu32( const unsigned char *addr )
{
return (((((unsigned long)addr[3] << 8) | addr[2]) << 8)
| addr[1]) << 8 | addr[0];
}
static void
-putu32 (data, addr)
- uint32 data;
- unsigned char *addr;
+putu32( uint32 data, unsigned char *addr )
{
addr[0] = (unsigned char)data;
addr[1] = (unsigned char)(data >> 8);
* initialization constants.
*/
void
-ldap_MD5Init(ctx)
- struct ldap_MD5Context *ctx;
+lutil_MD5Init( struct lutil_MD5Context *ctx )
{
ctx->buf[0] = 0x67452301;
ctx->buf[1] = 0xefcdab89;
* of bytes.
*/
void
-ldap_MD5Update(ctx, buf, len)
- struct ldap_MD5Context *ctx;
- unsigned char const *buf;
- unsigned len;
+lutil_MD5Update(
+ struct lutil_MD5Context *ctx,
+ const unsigned char *buf,
+ unsigned int len
+)
{
uint32 t;
return;
}
memcpy(p, buf, t);
- ldap_MD5Transform(ctx->buf, ctx->in);
+ lutil_MD5Transform(ctx->buf, ctx->in);
buf += t;
len -= t;
}
while (len >= 64) {
memcpy(ctx->in, buf, 64);
- ldap_MD5Transform(ctx->buf, ctx->in);
+ lutil_MD5Transform(ctx->buf, ctx->in);
buf += 64;
len -= 64;
}
* 1 0* (64-bit count of bits processed, MSB-first)
*/
void
-ldap_MD5Final(digest, ctx)
- unsigned char digest[16];
- struct ldap_MD5Context *ctx;
+lutil_MD5Final( unsigned char *digest, struct lutil_MD5Context *ctx )
{
unsigned count;
unsigned char *p;
if (count < 8) {
/* Two lots of padding: Pad the first block to 64 bytes */
memset(p, 0, count);
- ldap_MD5Transform(ctx->buf, ctx->in);
+ lutil_MD5Transform(ctx->buf, ctx->in);
/* Now fill the next block with 56 bytes */
memset(ctx->in, 0, 56);
putu32(ctx->bits[0], ctx->in + 56);
putu32(ctx->bits[1], ctx->in + 60);
- ldap_MD5Transform(ctx->buf, ctx->in);
+ lutil_MD5Transform(ctx->buf, ctx->in);
putu32(ctx->buf[0], digest);
putu32(ctx->buf[1], digest + 4);
putu32(ctx->buf[2], digest + 8);
* the data and converts bytes into longwords for this routine.
*/
void
-ldap_MD5Transform(buf, inraw)
- uint32 buf[4];
- const unsigned char inraw[64];
+lutil_MD5Transform( uint32 *buf, const unsigned char *inraw )
{
register uint32 a, b, c, d;
uint32 in[16];
#include <stdio.h>
int
-main (int argc, char **argv)
+main (int argc, char **argv )
{
- struct ldap_MD5Context context;
+ struct lutil_MD5Context context;
unsigned char checksum[16];
int i;
int j;
for (j = 1; j < argc; ++j)
{
printf ("MD5 (\"%s\") = ", argv[j]);
- ldap_MD5Init (&context);
- ldap_MD5Update (&context, argv[j], strlen (argv[j]));
- ldap_MD5Final (checksum, &context);
+ lutil_MD5Init (&context);
+ lutil_MD5Update (&context, argv[j], strlen (argv[j]));
+ lutil_MD5Final (checksum, &context);
for (i = 0; i < 16; i++)
{
printf ("%02x", (unsigned int) checksum[i]);