use the openssl api for md4/md5/sha. handle openssl/*.h

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9559 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
2001-01-29 02:09:01 +00:00
parent 249225774c
commit 59a594bad4
23 changed files with 229 additions and 212 deletions

View File

@@ -555,18 +555,15 @@ AC_CHECK_HEADERS([ \
openssl/rc4.h \
])
AC_FIND_FUNC_NO_LIBS2(MD4Init, crypto des, [], [], [], [$LIB_krb4])
AC_FIND_FUNC_NO_LIBS2(MD4_Init, crypto des, [], [], [], [$LIB_krb4])
AC_FIND_FUNC_NO_LIBS2(MD5Init, crypto des, [], [], [], [$LIB_krb4])
AC_FIND_FUNC_NO_LIBS2(MD5_Init, crypto des, [], [], [], [$LIB_krb4])
AC_FIND_FUNC_NO_LIBS2(SHA1Init, crypto des, [], [], [], [$LIB_krb4])
AC_FIND_FUNC_NO_LIBS2(SHA1_Init, crypto des, [], [], [], [$LIB_krb4])
AC_FIND_FUNC_NO_LIBS2(des_cbc_encrypt, crypto des, [], [], [], [$LIB_krb4])
AC_FIND_FUNC_NO_LIBS2(RC4, crypto des, [], [], [], [$LIB_krb4])
if test "$ac_cv_func_des_cbc_encrypt" = "yes" -a \
\( "$ac_cv_func_MD4Init" = "yes" -o "$ac_cv_func_MD4_Init" = "yes" \) -a \
\( "$ac_cv_func_MD5Init" = "yes" -o "$ac_cv_func_MD5_Init" = "yes" \) -a \
\( "$ac_cv_func_SHA1Init" = "yes" -o "$ac_cv_func_SHA1_Init" = "yes" \) -a \
"$ac_cv_func_MD4_Init" = "yes" -a \
"$ac_cv_func_MD5_Init" = "yes" -a \
"$ac_cv_func_SHA1_Init" = "yes" -a \
"$ac_cv_func_RC4" = "yes"; then
DIR_des=''
LIB_des="-R $krb4_libdir -L$krb4_libdir $ac_cv_funclib_MD4Init"

View File

@@ -176,25 +176,25 @@ crypt_md5(pw, salt)
/* get the length of the true salt */
sl = ep - sp;
MD5Init(&ctx);
MD5_Init(&ctx);
/* The password first, since that is what is most unknown */
MD5Update(&ctx,pw,strlen(pw));
MD5_Update(&ctx,pw,strlen(pw));
/* Then our magic string */
MD5Update(&ctx,magic,strlen(magic));
MD5_Update(&ctx,magic,strlen(magic));
/* Then the raw salt */
MD5Update(&ctx,sp,sl);
MD5_Update(&ctx,sp,sl);
/* Then just as many characters of the MD5(pw,salt,pw) */
MD5Init(&ctx1);
MD5Update(&ctx1,pw,strlen(pw));
MD5Update(&ctx1,sp,sl);
MD5Update(&ctx1,pw,strlen(pw));
MD5Final(final,&ctx1);
MD5_Init(&ctx1);
MD5_Update(&ctx1,pw,strlen(pw));
MD5_Update(&ctx1,sp,sl);
MD5_Update(&ctx1,pw,strlen(pw));
MD5_Final(final,&ctx1);
for(pl = strlen(pw); pl > 0; pl -= 16)
MD5Update(&ctx,final,pl>16 ? 16 : pl);
MD5_Update(&ctx,final,pl>16 ? 16 : pl);
/* Don't leave anything around in vm they could use. */
memset(final,0,sizeof final);
@@ -202,16 +202,16 @@ crypt_md5(pw, salt)
/* Then something really weird... */
for (j=0,i = strlen(pw); i ; i >>= 1)
if(i&1)
MD5Update(&ctx, final+j, 1);
MD5_Update(&ctx, final+j, 1);
else
MD5Update(&ctx, pw+j, 1);
MD5_Update(&ctx, pw+j, 1);
/* Now make the output string */
strcpy(passwd, magic); /* sizeof(passwd) > sizeof(magic) */
strncat(passwd, sp, sl); /* ok, since sl <= 8 */
strcat(passwd, "$");
MD5Final(final,&ctx);
MD5_Final(final,&ctx);
/*
* and now, just to make sure things don't run too fast
@@ -219,23 +219,23 @@ crypt_md5(pw, salt)
* need 30 seconds to build a 1000 entry dictionary...
*/
for(i=0;i<1000;i++) {
MD5Init(&ctx1);
MD5_Init(&ctx1);
if(i & 1)
MD5Update(&ctx1,pw,strlen(pw));
MD5_Update(&ctx1,pw,strlen(pw));
else
MD5Update(&ctx1,final,16);
MD5_Update(&ctx1,final,16);
if(i % 3)
MD5Update(&ctx1,sp,sl);
MD5_Update(&ctx1,sp,sl);
if(i % 7)
MD5Update(&ctx1,pw,strlen(pw));
MD5_Update(&ctx1,pw,strlen(pw));
if(i & 1)
MD5Update(&ctx1,final,16);
MD5_Update(&ctx1,final,16);
else
MD5Update(&ctx1,pw,strlen(pw));
MD5Final(final,&ctx1);
MD5_Update(&ctx1,pw,strlen(pw));
MD5_Final(final,&ctx1);
}
p = passwd + strlen(passwd);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -47,7 +47,7 @@ RCSID("$Id$");
#define X data
void
MD4Init (struct md4 *m)
MD4_Init (struct md4 *m)
{
m->sz[0] = 0;
m->sz[1] = 0;
@@ -175,7 +175,7 @@ struct x32{
};
void
MD4Update (struct md4 *m, const void *v, size_t len)
MD4_Update (struct md4 *m, const void *v, size_t len)
{
const unsigned char *p = v;
size_t old_sz = m->sz[0];
@@ -210,7 +210,7 @@ MD4Update (struct md4 *m, const void *v, size_t len)
}
void
MD4Final (void *res, struct md4 *m)
MD4_Final (void *res, struct md4 *m)
{
static unsigned char zeros[72];
unsigned offset = (m->sz[0] / 8) % 64;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -54,6 +54,6 @@ struct md4 {
typedef struct md4 MD4_CTX;
void MD4Init (struct md4 *m);
void MD4Update (struct md4 *m, const void *p, size_t len);
void MD4Final (void *res, struct md4 *m);
void MD4_Init (struct md4 *m);
void MD4_Update (struct md4 *m, const void *p, size_t len);
void MD4_Final (void *res, struct md4 *m);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -47,7 +47,7 @@ RCSID("$Id$");
#define X data
void
MD5Init (struct md5 *m)
MD5_Init (struct md5 *m)
{
m->sz[0] = 0;
m->sz[1] = 0;
@@ -199,7 +199,7 @@ struct x32{
};
void
MD5Update (struct md5 *m, const void *v, size_t len)
MD5_Update (struct md5 *m, const void *v, size_t len)
{
const unsigned char *p = v;
size_t old_sz = m->sz[0];
@@ -234,7 +234,7 @@ MD5Update (struct md5 *m, const void *v, size_t len)
}
void
MD5Final (void *res, struct md5 *m)
MD5_Final (void *res, struct md5 *m)
{
static unsigned char zeros[72];
unsigned offset = (m->sz[0] / 8) % 64;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -54,6 +54,6 @@ struct md5 {
typedef struct md5 MD5_CTX;
void MD5Init (struct md5 *m);
void MD5Update (struct md5 *m, const void *p, size_t len);
void MD5Final (void *res, struct md5 *m); /* u_int32_t res[4] */
void MD5_Init (struct md5 *m);
void MD5_Update (struct md5 *m, const void *p, size_t len);
void MD5_Final (void *res, struct md5 *m); /* u_int32_t res[4] */

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -74,9 +74,9 @@ md4_tests (void)
unsigned char res[16];
int i;
MD4Init (&md4);
MD4Update (&md4, (unsigned char *)t->str, strlen(t->str));
MD4Final (res, &md4);
MD4_Init (&md4);
MD4_Update (&md4, (unsigned char *)t->str, strlen(t->str));
MD4_Final (res, &md4);
if (memcmp (res, t->hash, 16) != 0) {
printf ("MD4(\"%s\") failed\n", t->str);
printf("should be: ");
@@ -116,9 +116,9 @@ md5_tests (void)
MD5_CTX md5;
unsigned char res[16];
MD5Init (&md5);
MD5Update (&md5, (unsigned char *)t->str, strlen(t->str));
MD5Final (res, &md5);
MD5_Init (&md5);
MD5_Update (&md5, (unsigned char *)t->str, strlen(t->str));
MD5_Final (res, &md5);
if (memcmp (res, t->hash, 16) != 0) {
int i;
@@ -157,12 +157,12 @@ sha1_tests (void)
printf ("sha... ");
for (t = tests; t->str; ++t) {
SHA1_CTX sha;
SHA_CTX sha;
unsigned char res[20];
SHA1Init (&sha);
SHA1Update (&sha, (unsigned char *)t->str, strlen(t->str));
SHA1Final (res, &sha);
SHA1_Init (&sha);
SHA1_Update (&sha, (unsigned char *)t->str, strlen(t->str));
SHA1_Final (res, &sha);
if (memcmp (res, t->hash, 20) != 0) {
int i;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -48,7 +48,7 @@ RCSID("$Id$");
#define X data
void
SHA1Init (struct sha1 *m)
SHA1_Init (struct sha *m)
{
m->sz[0] = 0;
m->sz[1] = 0;
@@ -83,7 +83,7 @@ do { \
} while(0)
static inline void
calc (struct sha1 *m, u_int32_t *in)
calc (struct sha *m, u_int32_t *in)
{
u_int32_t AA, BB, CC, DD, EE;
u_int32_t data[80];
@@ -225,7 +225,7 @@ struct x32{
};
void
SHA1Update (struct sha1 *m, const void *v, size_t len)
SHA1_Update (struct sha *m, const void *v, size_t len)
{
const unsigned char *p = v;
size_t old_sz = m->sz[0];
@@ -260,7 +260,7 @@ SHA1Update (struct sha1 *m, const void *v, size_t len)
}
void
SHA1Final (void *res, struct sha1 *m)
SHA1_Final (void *res, struct sha *m)
{
static unsigned char zeros[72];
unsigned offset = (m->sz[0] / 8) % 64;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -46,14 +46,14 @@
#include <ktypes.h>
#endif
struct sha1 {
struct sha {
unsigned int sz[2];
u_int32_t counter[5];
unsigned char save[64];
};
typedef struct sha1 SHA1_CTX;
typedef struct sha SHA_CTX;
void SHA1Init (struct sha1 *m);
void SHA1Update (struct sha1 *m, const void *v, size_t len);
void SHA1Final (void *res, struct sha1 *m);
void SHA1_Init (struct sha *m);
void SHA1_Update (struct sha *m, const void *v, size_t len);
void SHA1_Final (void *res, struct sha *m);

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -59,30 +59,30 @@ hash_input_chan_bindings (const gss_channel_bindings_t b,
u_char num[4];
MD5_CTX md5;
MD5Init(&md5);
MD5_Init(&md5);
encode_om_uint32 (b->initiator_addrtype, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
encode_om_uint32 (b->initiator_address.length, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
if (b->initiator_address.length)
MD5Update (&md5,
MD5_Update (&md5,
b->initiator_address.value,
b->initiator_address.length);
encode_om_uint32 (b->acceptor_addrtype, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
encode_om_uint32 (b->acceptor_address.length, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
if (b->acceptor_address.length)
MD5Update (&md5,
MD5_Update (&md5,
b->acceptor_address.value,
b->acceptor_address.length);
encode_om_uint32 (b->application_data.length, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
if (b->application_data.length)
MD5Update (&md5,
MD5_Update (&md5,
b->application_data.value,
b->application_data.length);
MD5Final (p, &md5);
MD5_Final (p, &md5);
return 0;
}

View File

@@ -78,10 +78,10 @@ mic_des
p += 16;
/* checksum */
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, message_buffer->value, message_buffer->length);
MD5Final (hash, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, message_buffer->value, message_buffer->length);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -59,30 +59,30 @@ hash_input_chan_bindings (const gss_channel_bindings_t b,
u_char num[4];
MD5_CTX md5;
MD5Init(&md5);
MD5_Init(&md5);
encode_om_uint32 (b->initiator_addrtype, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
encode_om_uint32 (b->initiator_address.length, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
if (b->initiator_address.length)
MD5Update (&md5,
MD5_Update (&md5,
b->initiator_address.value,
b->initiator_address.length);
encode_om_uint32 (b->acceptor_addrtype, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
encode_om_uint32 (b->acceptor_address.length, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
if (b->acceptor_address.length)
MD5Update (&md5,
MD5_Update (&md5,
b->acceptor_address.value,
b->acceptor_address.length);
encode_om_uint32 (b->application_data.length, num);
MD5Update (&md5, num, sizeof(num));
MD5_Update (&md5, num, sizeof(num));
if (b->application_data.length)
MD5Update (&md5,
MD5_Update (&md5,
b->application_data.value,
b->application_data.length);
MD5Final (p, &md5);
MD5_Final (p, &md5);
return 0;
}

View File

@@ -78,10 +78,10 @@ mic_des
p += 16;
/* checksum */
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, message_buffer->value, message_buffer->length);
MD5Final (hash, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, message_buffer->value, message_buffer->length);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -136,10 +136,10 @@ unwrap_des
if (i != 0)
return GSS_S_BAD_MIC;
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, p, input_message_buffer->length - len);
MD5Final (hash, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, p, input_message_buffer->length - len);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -70,11 +70,11 @@ verify_mic_des
p += 16;
/* verify checksum */
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, message_buffer->value,
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, message_buffer->value,
message_buffer->length);
MD5Final (hash, &md5);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -148,10 +148,10 @@ wrap_des
memset (p + 8 + input_message_buffer->length, padlength, padlength);
/* checksum */
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, p, datalen);
MD5Final (hash, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, p, datalen);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -136,10 +136,10 @@ unwrap_des
if (i != 0)
return GSS_S_BAD_MIC;
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, p, input_message_buffer->length - len);
MD5Final (hash, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, p, input_message_buffer->length - len);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -70,11 +70,11 @@ verify_mic_des
p += 16;
/* verify checksum */
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, message_buffer->value,
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, message_buffer->value,
message_buffer->length);
MD5Final (hash, &md5);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -148,10 +148,10 @@ wrap_des
memset (p + 8 + input_message_buffer->length, padlength, padlength);
/* checksum */
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, p, datalen);
MD5Final (hash, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, p, datalen);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey));

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -439,11 +439,11 @@ ARCFOUR_string_to_key(krb5_context context,
*p++ = ((char *)password.data)[i];
*p++ = 0;
}
MD4Init (&m);
MD4Update (&m, s, len);
MD4_Init (&m);
MD4_Update (&m, s, len);
key->keytype = enctype;
krb5_data_alloc (&key->keyvalue, 16);
MD4Final (key->keyvalue.data, &m);
MD4_Final (key->keyvalue.data, &m);
memset (s, 0, len);
free (s);
return 0;
@@ -838,9 +838,9 @@ RSA_MD4_checksum(krb5_context context,
{
MD4_CTX m;
MD4Init (&m);
MD4Update (&m, data, len);
MD4Final (C->checksum.data, &m);
MD4_Init (&m);
MD4_Update (&m, data, len);
MD4_Final (C->checksum.data, &m);
}
static void
@@ -856,10 +856,10 @@ RSA_MD4_DES_checksum(krb5_context context,
unsigned char *p = cksum->checksum.data;
krb5_generate_random_block(p, 8);
MD4Init (&md4);
MD4Update (&md4, p, 8);
MD4Update (&md4, data, len);
MD4Final (p + 8, &md4);
MD4_Init (&md4);
MD4_Update (&md4, p, 8);
MD4_Update (&md4, data, len);
MD4_Final (p + 8, &md4);
memset (&ivec, 0, sizeof(ivec));
des_cbc_encrypt((des_cblock*)p,
(des_cblock*)p,
@@ -890,10 +890,10 @@ RSA_MD4_DES_verify(krb5_context context,
key->schedule->data,
&ivec,
DES_DECRYPT);
MD4Init (&md4);
MD4Update (&md4, tmp, 8); /* confounder */
MD4Update (&md4, data, len);
MD4Final (res, &md4);
MD4_Init (&md4);
MD4_Update (&md4, tmp, 8); /* confounder */
MD4_Update (&md4, data, len);
MD4_Final (res, &md4);
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
memset(tmp, 0, sizeof(tmp));
@@ -911,9 +911,9 @@ RSA_MD5_checksum(krb5_context context,
{
MD5_CTX m;
MD5Init (&m);
MD5Update(&m, data, len);
MD5Final (C->checksum.data, &m);
MD5_Init (&m);
MD5_Update(&m, data, len);
MD5_Final (C->checksum.data, &m);
}
static void
@@ -929,10 +929,10 @@ RSA_MD5_DES_checksum(krb5_context context,
unsigned char *p = C->checksum.data;
krb5_generate_random_block(p, 8);
MD5Init (&md5);
MD5Update (&md5, p, 8);
MD5Update (&md5, data, len);
MD5Final (p + 8, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p, 8);
MD5_Update (&md5, data, len);
MD5_Final (p + 8, &md5);
memset (&ivec, 0, sizeof(ivec));
des_cbc_encrypt((des_cblock*)p,
(des_cblock*)p,
@@ -964,10 +964,10 @@ RSA_MD5_DES_verify(krb5_context context,
sched[0],
&ivec,
DES_DECRYPT);
MD5Init (&md5);
MD5Update (&md5, tmp, 8); /* confounder */
MD5Update (&md5, data, len);
MD5Final (res, &md5);
MD5_Init (&md5);
MD5_Update (&md5, tmp, 8); /* confounder */
MD5_Update (&md5, data, len);
MD5_Final (res, &md5);
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
memset(tmp, 0, sizeof(tmp));
@@ -989,10 +989,10 @@ RSA_MD5_DES3_checksum(krb5_context context,
des_key_schedule *sched = key->schedule->data;
krb5_generate_random_block(p, 8);
MD5Init (&md5);
MD5Update (&md5, p, 8);
MD5Update (&md5, data, len);
MD5Final (p + 8, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p, 8);
MD5_Update (&md5, data, len);
MD5_Final (p + 8, &md5);
memset (&ivec, 0, sizeof(ivec));
des_ede3_cbc_encrypt((des_cblock*)p,
(des_cblock*)p,
@@ -1024,10 +1024,10 @@ RSA_MD5_DES3_verify(krb5_context context,
sched[0], sched[1], sched[2],
&ivec,
DES_DECRYPT);
MD5Init (&md5);
MD5Update (&md5, tmp, 8); /* confounder */
MD5Update (&md5, data, len);
MD5Final (res, &md5);
MD5_Init (&md5);
MD5_Update (&md5, tmp, 8); /* confounder */
MD5_Update (&md5, data, len);
MD5_Final (res, &md5);
if(memcmp(res, tmp + 8, sizeof(res)) != 0)
ret = KRB5KRB_AP_ERR_BAD_INTEGRITY;
memset(tmp, 0, sizeof(tmp));
@@ -1043,11 +1043,11 @@ SHA1_checksum(krb5_context context,
unsigned usage,
Checksum *C)
{
SHA1_CTX m;
SHA_CTX m;
SHA1Init(&m);
SHA1Update(&m, data, len);
SHA1Final(C->checksum.data, &m);
SHA1_Init(&m);
SHA1_Update(&m, data, len);
SHA1_Final(C->checksum.data, &m);
}
/* HMAC according to RFC2104 */
@@ -1139,14 +1139,14 @@ HMAC_MD5_checksum(krb5_context context,
hmac(context, c, signature, sizeof(signature), 0, key, &ksign_c);
ksign.key = &kb;
kb.keyvalue = ksign_c.checksum;
MD5Init (&md5);
MD5_Init (&md5);
t[0] = (usage >> 0) & 0xFF;
t[1] = (usage >> 8) & 0xFF;
t[2] = (usage >> 16) & 0xFF;
t[3] = (usage >> 24) & 0xFF;
MD5Update (&md5, t, 4);
MD5Update (&md5, data, len);
MD5Final (tmp, &md5);
MD5_Update (&md5, t, 4);
MD5_Update (&md5, data, len);
MD5_Final (tmp, &md5);
hmac(context, c, tmp, sizeof(tmp), 0, &ksign, result);
}
@@ -2835,9 +2835,9 @@ krb5_get_keyid(krb5_context context,
MD5_CTX md5;
unsigned char tmp[16];
MD5Init (&md5);
MD5Update (&md5, key->keyvalue.data, key->keyvalue.length);
MD5Final (tmp, &md5);
MD5_Init (&md5);
MD5_Update (&md5, key->keyvalue.data, key->keyvalue.length);
MD5_Final (tmp, &md5);
*keyid = (tmp[12] << 24) | (tmp[13] << 16) | (tmp[14] << 8) | tmp[15];
return 0;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-1999 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997-2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -109,11 +109,31 @@ struct sockaddr_dl;
#include <parse_time.h>
#include <base64.h>
#ifdef HAVE_OPENSSL_DES_H
#include <openssl/des.h>
#else
#include <des.h>
#endif
#ifdef HAVE_OPENSSL_MD4_H
#include <openssl/md4.h>
#else
#include <md4.h>
#endif
#ifdef HAVE_OPENSSL_MD5_H
#include <openssl/md5.h>
#else
#include <md5.h>
#endif
#ifdef HAVE_OPENSSL_SHA_H
#include <openssl/sha.h>
#else
#include <sha.h>
#endif
#ifdef HAVE_OPENSSL_RC4_H
#include <openssl/rc4.h>
#else
#include <rc4.h>
#endif
#include <asn1.h>
#include <der.h>

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997-2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997-2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -149,14 +149,14 @@ checksum_authenticator(Authenticator *auth, void *data)
MD5_CTX md5;
int i;
MD5Init (&md5);
MD5Update (&md5, auth->crealm, strlen(auth->crealm));
MD5_Init (&md5);
MD5_Update (&md5, auth->crealm, strlen(auth->crealm));
for(i = 0; i < auth->cname.name_string.len; i++)
MD5Update(&md5, auth->cname.name_string.val[i],
strlen(auth->cname.name_string.val[i]));
MD5Update (&md5, &auth->ctime, sizeof(auth->ctime));
MD5Update (&md5, &auth->cusec, sizeof(auth->cusec));
MD5Final (data, &md5);
MD5_Update(&md5, auth->cname.name_string.val[i],
strlen(auth->cname.name_string.val[i]));
MD5_Update (&md5, &auth->ctime, sizeof(auth->ctime));
MD5_Update (&md5, &auth->cusec, sizeof(auth->cusec));
MD5_Final (data, &md5);
}
krb5_error_code

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1995 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1995 - 2001 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -131,9 +131,9 @@ otp_md4_init (OtpKey key, const char *pwd, const char *seed)
MD4_CTX md4;
return otp_md_init (key, pwd, seed,
(void (*)(void *))MD4Init,
(void (*)(void *, const void *, size_t))MD4Update,
(void (*)(void *, void *))MD4Final,
(void (*)(void *))MD4_Init,
(void (*)(void *, const void *, size_t))MD4_Update,
(void (*)(void *, void *))MD4_Final,
&md4, res, sizeof(res));
}
@@ -145,9 +145,9 @@ otp_md4_hash (const char *data,
MD4_CTX md4;
return otp_md_hash (data, len,
(void (*)(void *))MD4Init,
(void (*)(void *, const void *, size_t))MD4Update,
(void (*)(void *, void *))MD4Final,
(void (*)(void *))MD4_Init,
(void (*)(void *, const void *, size_t))MD4_Update,
(void (*)(void *, void *))MD4_Final,
&md4, res, 16);
}
@@ -158,9 +158,9 @@ otp_md4_next (OtpKey key)
MD4_CTX md4;
return otp_md_next (key,
(void (*)(void *))MD4Init,
(void (*)(void *, const void *, size_t))MD4Update,
(void (*)(void *, void *))MD4Final,
(void (*)(void *))MD4_Init,
(void (*)(void *, const void *, size_t))MD4_Update,
(void (*)(void *, void *))MD4_Final,
&md4, res, sizeof(res));
}
@@ -172,9 +172,9 @@ otp_md5_init (OtpKey key, const char *pwd, const char *seed)
MD5_CTX md5;
return otp_md_init (key, pwd, seed,
(void (*)(void *))MD5Init,
(void (*)(void *, const void *, size_t))MD5Update,
(void (*)(void *, void *))MD5Final,
(void (*)(void *))MD5_Init,
(void (*)(void *, const void *, size_t))MD5_Update,
(void (*)(void *, void *))MD5_Final,
&md5, res, sizeof(res));
}
@@ -186,9 +186,9 @@ otp_md5_hash (const char *data,
MD5_CTX md5;
return otp_md_hash (data, len,
(void (*)(void *))MD5Init,
(void (*)(void *, const void *, size_t))MD5Update,
(void (*)(void *, void *))MD5Final,
(void (*)(void *))MD5_Init,
(void (*)(void *, const void *, size_t))MD5_Update,
(void (*)(void *, void *))MD5_Final,
&md5, res, 16);
}
@@ -199,9 +199,9 @@ otp_md5_next (OtpKey key)
MD5_CTX md5;
return otp_md_next (key,
(void (*)(void *))MD5Init,
(void (*)(void *, const void *, size_t))MD5Update,
(void (*)(void *, void *))MD5Final,
(void (*)(void *))MD5_Init,
(void (*)(void *, const void *, size_t))MD5_Update,
(void (*)(void *, void *))MD5_Final,
&md5, res, sizeof(res));
}
@@ -212,13 +212,13 @@ otp_md5_next (OtpKey key)
*/
static void
SHA1Final_little_endian (void *res, struct sha1 *m)
SHA1_Final_little_endian (void *res, struct sha1 *m)
{
unsigned char tmp[20];
unsigned char *p = res;
int j;
SHA1Final (tmp, m);
SHA1_Final (tmp, m);
for (j = 0; j < 20; j += 4) {
p[j] = tmp[j+3];
p[j+1] = tmp[j+2];
@@ -231,12 +231,12 @@ int
otp_sha_init (OtpKey key, const char *pwd, const char *seed)
{
unsigned char res[20];
struct sha1 sha1;
SHA_CTX sha1;
return otp_md_init (key, pwd, seed,
(void (*)(void *))SHA1Init,
(void (*)(void *, const void *, size_t))SHA1Update,
(void (*)(void *, void *))SHA1Final_little_endian,
(void (*)(void *))SHA1_Init,
(void (*)(void *, const void *, size_t))SHA1_Update,
(void (*)(void *, void *))SHA1_Final_little_endian,
&sha1, res, sizeof(res));
}
@@ -245,12 +245,12 @@ otp_sha_hash (const char *data,
size_t len,
unsigned char *res)
{
struct sha1 sha1;
SHA_CTX sha1;
return otp_md_hash (data, len,
(void (*)(void *))SHA1Init,
(void (*)(void *, const void *, size_t))SHA1Update,
(void (*)(void *, void *))SHA1Final_little_endian,
(void (*)(void *))SHA1_Init,
(void (*)(void *, const void *, size_t))SHA1_Update,
(void (*)(void *, void *))SHA1_Final_little_endian,
&sha1, res, 20);
}
@@ -258,11 +258,11 @@ int
otp_sha_next (OtpKey key)
{
unsigned char res[20];
struct sha1 sha1;
SHA_CTX sha1;
return otp_md_next (key,
(void (*)(void *))SHA1Init,
(void (*)(void *, const void *, size_t))SHA1Update,
(void (*)(void *, void *))SHA1Final_little_endian,
(void (*)(void *))SHA1_Init,
(void (*)(void *, const void *, size_t))SHA1_Update,
(void (*)(void *, void *))SHA1_Final_little_endian,
&sha1, res, sizeof(res));
}