merge back some hacks

This commit is contained in:
assar 2000-08-03 03:38:25 +00:00
parent b6dd28b4ce
commit 9949e16264
8 changed files with 100 additions and 83 deletions

View File

@ -33,7 +33,7 @@
#include "gen_locl.h"
RCSID("$Id: gen.c,v 1.1.1.2 2000/08/02 19:59:03 assar Exp $");
RCSID("$Id: gen.c,v 1.2 2000/08/03 03:38:25 assar Exp $");
FILE *headerfile, *codefile, *logfile;
@ -55,7 +55,7 @@ init_generate (const char *filename, const char *base)
orig_filename = filename;
if(base)
strcpy(headerbase, base);
sprintf(header, "%s.h", headerbase);
sprintf(header, "%s.hx", headerbase);
headerfile = fopen (header, "w");
if (headerfile == NULL)
err (1, "open %s", header);

View File

@ -34,7 +34,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
RCSID("$Id: rnd_keys.c,v 1.1.1.2 2000/08/02 20:00:09 assar Exp $");
RCSID("$Id: rnd_keys.c,v 1.2 2000/08/03 03:38:25 assar Exp $");
#endif
#include <des.h>
@ -78,6 +78,26 @@ RCSID("$Id: rnd_keys.c,v 1.1.1.2 2000/08/02 20:00:09 assar Exp $");
#include <winsock.h>
#endif
/* kludge prototypes */
void
des_rand_data(unsigned char *data, int size);
void
des_generate_random_block(des_cblock *block);
void
des_rand_data_key(des_cblock *key);
void
des_set_sequence_number(unsigned char *ll);
void
des_set_random_generator_seed(des_cblock *seed);
int
des_new_random_key(des_cblock *key);
/*
* Generate "random" data by checksumming a file.
*
@ -194,6 +214,7 @@ sigALRM(int sig)
#endif
#endif
#if 0
static void
des_not_rand_data(unsigned char *data, int size)
{
@ -204,6 +225,7 @@ des_not_rand_data(unsigned char *data, int size)
for(i = 0; i < size; ++i)
data[i] ^= random() % 0x100;
}
#endif
#if !defined(WIN32) && !defined(__EMX__) && !defined(__OS2__) && !defined(__CYGWIN32__)
@ -352,11 +374,6 @@ des_rand_data_key(des_cblock *key)
* It's neccessary to be root to run it. Returns -1 if there were any
* problems with permissions.
*/
int
des_mem_rand8(unsigned char *data)
{
return 1;
}
/*
* In case the generator does not get initialized use this as fallback.
@ -458,9 +475,9 @@ des_init_random_number_generator(des_cblock *seed)
/* This is for backwards compatibility. */
void
des_random_key(des_cblock ret)
des_random_key(des_cblock *ret)
{
des_new_random_key((des_cblock *)ret);
des_new_random_key(ret);
}
#ifdef TESTRUN

View File

@ -33,7 +33,7 @@
#include "gssapi_locl.h"
RCSID("$Id: 8003.c,v 1.1.1.2 2000/08/02 19:59:06 assar Exp $");
RCSID("$Id: 8003.c,v 1.2 2000/08/03 03:38:25 assar Exp $");
static krb5_error_code
encode_om_uint32(OM_uint32 n, u_char *p)
@ -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

@ -33,7 +33,7 @@
#include "gssapi_locl.h"
RCSID("$Id: get_mic.c,v 1.1.1.2 2000/08/02 19:59:08 assar Exp $");
RCSID("$Id: get_mic.c,v 1.2 2000/08/03 03:38:25 assar Exp $");
OM_uint32 gss_get_mic
(OM_uint32 * minor_status,
@ -73,11 +73,11 @@ OM_uint32 gss_get_mic
p += 16;
/* 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));
gss_krb5_getsomekey(context_handle, &key);

View File

@ -33,7 +33,7 @@
#include "gssapi_locl.h"
RCSID("$Id: unwrap.c,v 1.1.1.2 2000/08/02 19:59:10 assar Exp $");
RCSID("$Id: unwrap.c,v 1.2 2000/08/03 03:38:25 assar Exp $");
OM_uint32
gss_krb5_getsomekey(const gss_ctx_id_t context_handle,
@ -134,10 +134,10 @@ OM_uint32 gss_unwrap
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));
gss_krb5_getsomekey(context_handle, &key);

View File

@ -33,7 +33,7 @@
#include "gssapi_locl.h"
RCSID("$Id: verify_mic.c,v 1.1.1.2 2000/08/02 19:59:10 assar Exp $");
RCSID("$Id: verify_mic.c,v 1.2 2000/08/03 03:38:25 assar Exp $");
OM_uint32 gss_verify_mic
(OM_uint32 * minor_status,
@ -68,11 +68,11 @@ OM_uint32 gss_verify_mic
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));
#if 0

View File

@ -33,7 +33,7 @@
#include "gssapi_locl.h"
RCSID("$Id: wrap.c,v 1.1.1.2 2000/08/02 19:59:10 assar Exp $");
RCSID("$Id: wrap.c,v 1.2 2000/08/03 03:38:25 assar Exp $");
OM_uint32 gss_wrap_size_limit (
OM_uint32 * minor_status,
@ -110,10 +110,10 @@ OM_uint32 gss_wrap
memset (p + 8 + input_message_buffer->length, padlength, padlength);
/* checksum */
MD5Init (&md5);
MD5Update (&md5, p - 24, 8);
MD5Update (&md5, p, input_message_buffer->length + padlength + 8);
MD5Final (hash, &md5);
MD5_Init (&md5);
MD5_Update (&md5, p - 24, 8);
MD5_Update (&md5, p, input_message_buffer->length + padlength + 8);
MD5_Final (hash, &md5);
memset (&zero, 0, sizeof(zero));
gss_krb5_getsomekey(context_handle, &key);

View File

@ -32,7 +32,7 @@
*/
#include "krb5_locl.h"
RCSID("$Id: crypto.c,v 1.1.1.2 2000/08/02 19:59:26 assar Exp $");
RCSID("$Id: crypto.c,v 1.2 2000/08/03 03:38:26 assar Exp $");
#undef CRYPTO_DEBUG
#ifdef CRYPTO_DEBUG
@ -239,12 +239,12 @@ DES_AFS3_Transarc_string_to_key (krb5_data pw,
memcpy(&temp_key, "kerberos", 8);
des_set_odd_parity (&temp_key);
des_set_key (&temp_key, schedule);
des_cbc_cksum ((des_cblock *)password, &ivec, passlen, schedule, &ivec);
des_cbc_cksum ((const void *)password, &ivec, passlen, schedule, &ivec);
memcpy(&temp_key, &ivec, 8);
des_set_odd_parity (&temp_key);
des_set_key (&temp_key, schedule);
des_cbc_cksum ((des_cblock *)password, key, passlen, schedule, &ivec);
des_cbc_cksum ((const void *)password, key, passlen, schedule, &ivec);
memset(&schedule, 0, sizeof(schedule));
memset(&temp_key, 0, sizeof(temp_key));
memset(&ivec, 0, sizeof(ivec));
@ -348,8 +348,8 @@ DES3_string_to_key(krb5_context context,
des_set_key(keys + i, s[i]);
}
memset(&ivec, 0, sizeof(ivec));
des_ede3_cbc_encrypt((des_cblock *)tmp,
(des_cblock *)tmp, sizeof(tmp),
des_ede3_cbc_encrypt((const void *)tmp,
(void *)tmp, sizeof(tmp),
s[0], s[1], s[2], &ivec, DES_ENCRYPT);
memset(s, 0, sizeof(s));
memset(&ivec, 0, sizeof(ivec));
@ -813,7 +813,7 @@ CRC32_checksum(krb5_context context,
u_int32_t crc;
unsigned char *r = C->checksum.data;
_krb5_crc_init_table ();
crc = _krb5_crc_update (data, len, 0);
crc = _krb5_crc_update ((void *)data, len, 0);
r[0] = crc & 0xff;
r[1] = (crc >> 8) & 0xff;
r[2] = (crc >> 16) & 0xff;
@ -853,8 +853,8 @@ RSA_MD4_DES_checksum(krb5_context context,
MD4Update (&md4, data, len);
MD4Final (p + 8, &md4);
memset (&ivec, 0, sizeof(ivec));
des_cbc_encrypt((des_cblock*)p,
(des_cblock*)p,
des_cbc_encrypt((const void *)p,
(void *)p,
24,
key->schedule->data,
&ivec,
@ -903,9 +903,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
@ -921,13 +921,13 @@ 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,
des_cbc_encrypt((const void *)p,
(void *)p,
24,
key->schedule->data,
&ivec,
@ -956,10 +956,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));
@ -981,13 +981,13 @@ 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,
des_ede3_cbc_encrypt((const void *)p,
(void *)p,
24,
sched[0], sched[1], sched[2],
&ivec,
@ -1016,10 +1016,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));
@ -1035,11 +1035,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 */
@ -1131,14 +1131,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);
}
@ -2757,9 +2757,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;
}