* 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
*/
-#define SHA1HANDSOFF /* Copies data before messing with it. */
-#define LDAP_BRIDGE
#include "portable.h"
+#include <ac/string.h>
+/* include socket.h to get sys/types.h and/or winsock2.h */
+#include <ac/socket.h>
+
+#if defined(HAVE_SYS_PARAM_H)
#include <sys/param.h>
-#include <ac/string.h>
+#endif
#include "lutil_sha1.h"
+#define SHA1HANDSOFF /* Copies data before messing with it. */
#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
/*
/*
* Hash a single 512-bit block. This is the core of the algorithm.
*/
-void ldap_SHA1Transform(state, buffer)
- uint32 state[5];
- const unsigned char buffer[64];
+void
+lutil_SHA1Transform( uint32 *state, const unsigned char *buffer )
{
uint32 a, b, c, d, e;
- typedef union {
+ typedef union char64long16_u {
unsigned char c[64];
u_int l[16];
} CHAR64LONG16;
- CHAR64LONG16 *block;
#ifdef SHA1HANDSOFF
- static unsigned char workspace[64];
- block = (CHAR64LONG16 *)workspace;
+ CHAR64LONG16 block[1];
(void)memcpy(block, buffer, 64);
#else
- block = (CHAR64LONG16 *)buffer;
+ CHAR64LONG16 *block = (CHAR64LONG16 *)buffer;
#endif
/* Copy context->state[] to working vars */
/*
- * ldap_SHA1Init - Initialize new context
+ * lutil_SHA1Init - Initialize new context
*/
-void ldap_SHA1Init(context)
- ldap_SHA1_CTX *context;
+void
+lutil_SHA1Init( lutil_SHA1_CTX *context )
{
/* SHA1 initialization constants */
/*
* Run your data through this.
*/
-void ldap_SHA1Update(context, data, len)
- ldap_SHA1_CTX *context;
- const unsigned char *data;
- u_int len;
+void
+lutil_SHA1Update(
+ lutil_SHA1_CTX *context,
+ const unsigned char *data,
+ uint32 len
+)
{
u_int i, j;
j = (j >> 3) & 63;
if ((j + len) > 63) {
(void)memcpy(&context->buffer[j], data, (i = 64-j));
- ldap_SHA1Transform(context->state, context->buffer);
+ lutil_SHA1Transform(context->state, context->buffer);
for ( ; i + 63 < len; i += 64)
- ldap_SHA1Transform(context->state, &data[i]);
+ lutil_SHA1Transform(context->state, &data[i]);
j = 0;
} else {
i = 0;
/*
* Add padding and return the message digest.
*/
-void ldap_SHA1Final(digest, context)
- unsigned char digest[20];
- ldap_SHA1_CTX* context;
+void
+lutil_SHA1Final( unsigned char *digest, lutil_SHA1_CTX *context )
{
u_int i;
unsigned char finalcount[8];
finalcount[i] = (unsigned char)((context->count[(i >= 4 ? 0 : 1)]
>> ((3-(i & 3)) * 8) ) & 255); /* Endian independent */
}
- ldap_SHA1Update(context, (unsigned char *)"\200", 1);
+ lutil_SHA1Update(context, (unsigned char *)"\200", 1);
while ((context->count[0] & 504) != 448)
- ldap_SHA1Update(context, (unsigned char *)"\0", 1);
- ldap_SHA1Update(context, finalcount, 8); /* Should cause a SHA1Transform() */
+ lutil_SHA1Update(context, (unsigned char *)"\0", 1);
+ lutil_SHA1Update(context, finalcount, 8); /* Should cause a SHA1Transform() */
if (digest) {
for (i = 0; i < 20; i++)
static char rcsid[] = "$OpenBSD: sha1hl.c,v 1.1 1997/07/12 20:06:03 millert Exp $";
#endif /* LIBC_SCCS and not lint */
-#include <stdlib.h>
#include <stdio.h>
-#include <errno.h>
+#include <ac/stdlib.h>
+
+#include <ac/errno.h>
+#include <ac/unistd.h>
+
+#ifdef HAVE_SYS_FILE_H
#include <sys/file.h>
-#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_UIO_H
#include <sys/uio.h>
-#include <unistd.h>
+#endif
+
+#ifdef HAVE_IO_H
+#include <io.h>
+#endif
+
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
/* ARGSUSED */
char *
-ldap_SHA1End(ctx, buf)
- ldap_SHA1_CTX *ctx;
- char *buf;
+lutil_SHA1End( lutil_SHA1_CTX *ctx, char *buf )
{
int i;
char *p = buf;
if (p == NULL && (p = malloc(41)) == NULL)
return 0;
- ldap_SHA1Final(digest,ctx);
+ lutil_SHA1Final(digest,ctx);
for (i = 0; i < 20; i++) {
p[i + i] = hex[digest[i] >> 4];
p[i + i + 1] = hex[digest[i] & 0x0f];
}
char *
-ldap_SHA1File (filename, buf)
- char *filename;
- char *buf;
+lutil_SHA1File( char *filename, char *buf )
{
unsigned char buffer[BUFSIZ];
- ldap_SHA1_CTX ctx;
+ lutil_SHA1_CTX ctx;
int fd, num, oerrno;
- ldap_SHA1Init(&ctx);
+ lutil_SHA1Init(&ctx);
if ((fd = open(filename,O_RDONLY)) < 0)
return(0);
while ((num = read(fd, buffer, sizeof(buffer))) > 0)
- ldap_SHA1Update(&ctx, buffer, num);
+ lutil_SHA1Update(&ctx, buffer, num);
oerrno = errno;
close(fd);
errno = oerrno;
- return(num < 0 ? 0 : ldap_SHA1End(&ctx, buf));
+ return(num < 0 ? 0 : lutil_SHA1End(&ctx, buf));
}
char *
-ldap_SHA1Data (data, len, buf)
- const unsigned char *data;
- size_t len;
- char *buf;
+lutil_SHA1Data( const unsigned char *data, size_t len, char *buf )
{
- ldap_SHA1_CTX ctx;
+ lutil_SHA1_CTX ctx;
- ldap_SHA1Init(&ctx);
- ldap_SHA1Update(&ctx, data, len);
- return(ldap_SHA1End(&ctx, buf));
+ lutil_SHA1Init(&ctx);
+ lutil_SHA1Update(&ctx, data, len);
+ return(lutil_SHA1End(&ctx, buf));
}