switch from the des_ to the DES_ api

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12752 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2003-09-03 09:29:36 +00:00
parent efb37e15c6
commit 33efaf1f26
9 changed files with 207 additions and 207 deletions

View File

@@ -48,9 +48,9 @@ mic_des
u_char *p; u_char *p;
MD5_CTX md5; MD5_CTX md5;
u_char hash[16]; u_char hash[16];
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock deskey; DES_cblock deskey;
des_cblock zero; DES_cblock zero;
int32_t seq_number; int32_t seq_number;
size_t len, total_len; size_t len, total_len;
@@ -86,9 +86,9 @@ mic_des
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash), DES_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash),
schedule, &zero); &schedule, &zero);
memcpy (p - 8, hash, 8); /* SGN_CKSUM */ memcpy (p - 8, hash, 8); /* SGN_CKSUM */
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex); HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
@@ -106,9 +106,9 @@ mic_des
(context_handle->more_flags & LOCAL) ? 0 : 0xFF, (context_handle->more_flags & LOCAL) ? 0 : 0xFF,
4); 4);
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_encrypt ((void *)p, (void *)p, 8, DES_cbc_encrypt ((void *)p, (void *)p, 8,
schedule, (des_cblock *)(p + 8), DES_ENCRYPT); &schedule, (DES_cblock *)(p + 8), DES_ENCRYPT);
krb5_auth_con_setlocalseqnumber (gssapi_krb5_context, krb5_auth_con_setlocalseqnumber (gssapi_krb5_context,
context_handle->auth_context, context_handle->auth_context,
@@ -116,7 +116,7 @@ mic_des
HEIMDAL_MUTEX_unlock(&context_handle->ctx_id_mutex); HEIMDAL_MUTEX_unlock(&context_handle->ctx_id_mutex);
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
*minor_status = 0; *minor_status = 0;
return GSS_S_COMPLETE; return GSS_S_COMPLETE;

View File

@@ -48,9 +48,9 @@ mic_des
u_char *p; u_char *p;
MD5_CTX md5; MD5_CTX md5;
u_char hash[16]; u_char hash[16];
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock deskey; DES_cblock deskey;
des_cblock zero; DES_cblock zero;
int32_t seq_number; int32_t seq_number;
size_t len, total_len; size_t len, total_len;
@@ -86,9 +86,9 @@ mic_des
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash), DES_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash),
schedule, &zero); &schedule, &zero);
memcpy (p - 8, hash, 8); /* SGN_CKSUM */ memcpy (p - 8, hash, 8); /* SGN_CKSUM */
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex); HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
@@ -106,9 +106,9 @@ mic_des
(context_handle->more_flags & LOCAL) ? 0 : 0xFF, (context_handle->more_flags & LOCAL) ? 0 : 0xFF,
4); 4);
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_encrypt ((void *)p, (void *)p, 8, DES_cbc_encrypt ((void *)p, (void *)p, 8,
schedule, (des_cblock *)(p + 8), DES_ENCRYPT); &schedule, (DES_cblock *)(p + 8), DES_ENCRYPT);
krb5_auth_con_setlocalseqnumber (gssapi_krb5_context, krb5_auth_con_setlocalseqnumber (gssapi_krb5_context,
context_handle->auth_context, context_handle->auth_context,
@@ -116,7 +116,7 @@ mic_des
HEIMDAL_MUTEX_unlock(&context_handle->ctx_id_mutex); HEIMDAL_MUTEX_unlock(&context_handle->ctx_id_mutex);
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
*minor_status = 0; *minor_status = 0;
return GSS_S_COMPLETE; return GSS_S_COMPLETE;

View File

@@ -75,9 +75,9 @@ unwrap_des
size_t len; size_t len;
MD5_CTX md5; MD5_CTX md5;
u_char hash[16]; u_char hash[16];
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock deskey; DES_cblock deskey;
des_cblock zero; DES_cblock zero;
int i; int i;
int32_t seq_number; int32_t seq_number;
size_t padlength; size_t padlength;
@@ -118,17 +118,17 @@ unwrap_des
for (i = 0; i < sizeof(deskey); ++i) for (i = 0; i < sizeof(deskey); ++i)
deskey[i] ^= 0xf0; deskey[i] ^= 0xf0;
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
des_cbc_encrypt ((void *)p, DES_cbc_encrypt ((void *)p,
(void *)p, (void *)p,
input_message_buffer->length - len, input_message_buffer->length - len,
schedule, &schedule,
&zero, &zero,
DES_DECRYPT); DES_DECRYPT);
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
} }
/* check pad */ /* check pad */
ret = _gssapi_verify_pad(input_message_buffer, ret = _gssapi_verify_pad(input_message_buffer,
@@ -144,9 +144,9 @@ unwrap_des
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash), DES_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash),
schedule, &zero); &schedule, &zero);
if (memcmp (p - 8, hash, 8) != 0) if (memcmp (p - 8, hash, 8) != 0)
return GSS_S_BAD_MIC; return GSS_S_BAD_MIC;
@@ -155,12 +155,12 @@ unwrap_des
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex); HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
p -= 16; p -= 16;
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_encrypt ((void *)p, (void *)p, 8, DES_cbc_encrypt ((void *)p, (void *)p, 8,
schedule, (des_cblock *)hash, DES_DECRYPT); &schedule, (DES_cblock *)hash, DES_DECRYPT);
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
seq = p; seq = p;
gssapi_decode_om_uint32(seq, &seq_number); gssapi_decode_om_uint32(seq, &seq_number);
@@ -293,7 +293,7 @@ unwrap_des3
return GSS_S_FAILURE; return GSS_S_FAILURE;
} }
{ {
des_cblock ivec; DES_cblock ivec;
memcpy(&ivec, p + 8, 8); memcpy(&ivec, p + 8, 8);
ret = krb5_decrypt_ivec (gssapi_krb5_context, ret = krb5_decrypt_ivec (gssapi_krb5_context,

View File

@@ -49,9 +49,9 @@ verify_mic_des
u_char *p; u_char *p;
MD5_CTX md5; MD5_CTX md5;
u_char hash[16], *seq; u_char hash[16], *seq;
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock zero; DES_cblock zero;
des_cblock deskey; DES_cblock deskey;
int32_t seq_number; int32_t seq_number;
OM_uint32 ret; OM_uint32 ret;
int cmp; int cmp;
@@ -82,12 +82,12 @@ verify_mic_des
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash), DES_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash),
schedule, &zero); &schedule, &zero);
if (memcmp (p - 8, hash, 8) != 0) { if (memcmp (p - 8, hash, 8) != 0) {
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
return GSS_S_BAD_MIC; return GSS_S_BAD_MIC;
} }
@@ -96,12 +96,12 @@ verify_mic_des
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex); HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
p -= 16; p -= 16;
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_encrypt ((void *)p, (void *)p, 8, DES_cbc_encrypt ((void *)p, (void *)p, 8,
schedule, (des_cblock *)hash, DES_DECRYPT); &schedule, (DES_cblock *)hash, DES_DECRYPT);
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
seq = p; seq = p;
gssapi_decode_om_uint32(seq, &seq_number); gssapi_decode_om_uint32(seq, &seq_number);

View File

@@ -144,9 +144,9 @@ wrap_des
u_char *p; u_char *p;
MD5_CTX md5; MD5_CTX md5;
u_char hash[16]; u_char hash[16];
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock deskey; DES_cblock deskey;
des_cblock zero; DES_cblock zero;
int i; int i;
int32_t seq_number; int32_t seq_number;
size_t len, total_len, padlength, datalen; size_t len, total_len, padlength, datalen;
@@ -199,9 +199,9 @@ wrap_des
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash), DES_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash),
schedule, &zero); &schedule, &zero);
memcpy (p - 8, hash, 8); memcpy (p - 8, hash, 8);
/* sequence number */ /* sequence number */
@@ -219,9 +219,9 @@ wrap_des
(context_handle->more_flags & LOCAL) ? 0 : 0xFF, (context_handle->more_flags & LOCAL) ? 0 : 0xFF,
4); 4);
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_encrypt ((void *)p, (void *)p, 8, DES_cbc_encrypt ((void *)p, (void *)p, 8,
schedule, (des_cblock *)(p + 8), DES_ENCRYPT); &schedule, (DES_cblock *)(p + 8), DES_ENCRYPT);
krb5_auth_con_setlocalseqnumber (gssapi_krb5_context, krb5_auth_con_setlocalseqnumber (gssapi_krb5_context,
context_handle->auth_context, context_handle->auth_context,
@@ -236,18 +236,18 @@ wrap_des
for (i = 0; i < sizeof(deskey); ++i) for (i = 0; i < sizeof(deskey); ++i)
deskey[i] ^= 0xf0; deskey[i] ^= 0xf0;
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
des_cbc_encrypt ((void *)p, DES_cbc_encrypt ((void *)p,
(void *)p, (void *)p,
datalen, datalen,
schedule, &schedule,
&zero, &zero,
DES_ENCRYPT); DES_ENCRYPT);
memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule));
} }
memset (deskey, 0, sizeof(deskey));
memset (&schedule, 0, sizeof(schedule));
if(conf_state != NULL) if(conf_state != NULL)
*conf_state = conf_req_flag; *conf_state = conf_req_flag;
*minor_status = 0; *minor_status = 0;
@@ -366,7 +366,7 @@ wrap_des3
} }
{ {
des_cblock ivec; DES_cblock ivec;
memcpy (&ivec, p + 8, 8); memcpy (&ivec, p + 8, 8);
ret = krb5_encrypt_ivec (gssapi_krb5_context, ret = krb5_encrypt_ivec (gssapi_krb5_context,

View File

@@ -75,9 +75,9 @@ unwrap_des
size_t len; size_t len;
MD5_CTX md5; MD5_CTX md5;
u_char hash[16]; u_char hash[16];
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock deskey; DES_cblock deskey;
des_cblock zero; DES_cblock zero;
int i; int i;
int32_t seq_number; int32_t seq_number;
size_t padlength; size_t padlength;
@@ -118,17 +118,17 @@ unwrap_des
for (i = 0; i < sizeof(deskey); ++i) for (i = 0; i < sizeof(deskey); ++i)
deskey[i] ^= 0xf0; deskey[i] ^= 0xf0;
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
des_cbc_encrypt ((void *)p, DES_cbc_encrypt ((void *)p,
(void *)p, (void *)p,
input_message_buffer->length - len, input_message_buffer->length - len,
schedule, &schedule,
&zero, &zero,
DES_DECRYPT); DES_DECRYPT);
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
} }
/* check pad */ /* check pad */
ret = _gssapi_verify_pad(input_message_buffer, ret = _gssapi_verify_pad(input_message_buffer,
@@ -144,9 +144,9 @@ unwrap_des
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash), DES_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash),
schedule, &zero); &schedule, &zero);
if (memcmp (p - 8, hash, 8) != 0) if (memcmp (p - 8, hash, 8) != 0)
return GSS_S_BAD_MIC; return GSS_S_BAD_MIC;
@@ -155,12 +155,12 @@ unwrap_des
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex); HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
p -= 16; p -= 16;
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_encrypt ((void *)p, (void *)p, 8, DES_cbc_encrypt ((void *)p, (void *)p, 8,
schedule, (des_cblock *)hash, DES_DECRYPT); &schedule, (DES_cblock *)hash, DES_DECRYPT);
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
seq = p; seq = p;
gssapi_decode_om_uint32(seq, &seq_number); gssapi_decode_om_uint32(seq, &seq_number);
@@ -293,7 +293,7 @@ unwrap_des3
return GSS_S_FAILURE; return GSS_S_FAILURE;
} }
{ {
des_cblock ivec; DES_cblock ivec;
memcpy(&ivec, p + 8, 8); memcpy(&ivec, p + 8, 8);
ret = krb5_decrypt_ivec (gssapi_krb5_context, ret = krb5_decrypt_ivec (gssapi_krb5_context,

View File

@@ -49,9 +49,9 @@ verify_mic_des
u_char *p; u_char *p;
MD5_CTX md5; MD5_CTX md5;
u_char hash[16], *seq; u_char hash[16], *seq;
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock zero; DES_cblock zero;
des_cblock deskey; DES_cblock deskey;
int32_t seq_number; int32_t seq_number;
OM_uint32 ret; OM_uint32 ret;
int cmp; int cmp;
@@ -82,12 +82,12 @@ verify_mic_des
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash), DES_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash),
schedule, &zero); &schedule, &zero);
if (memcmp (p - 8, hash, 8) != 0) { if (memcmp (p - 8, hash, 8) != 0) {
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
return GSS_S_BAD_MIC; return GSS_S_BAD_MIC;
} }
@@ -96,12 +96,12 @@ verify_mic_des
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex); HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
p -= 16; p -= 16;
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_encrypt ((void *)p, (void *)p, 8, DES_cbc_encrypt ((void *)p, (void *)p, 8,
schedule, (des_cblock *)hash, DES_DECRYPT); &schedule, (DES_cblock *)hash, DES_DECRYPT);
memset (deskey, 0, sizeof(deskey)); memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule)); memset (&schedule, 0, sizeof(schedule));
seq = p; seq = p;
gssapi_decode_om_uint32(seq, &seq_number); gssapi_decode_om_uint32(seq, &seq_number);

View File

@@ -144,9 +144,9 @@ wrap_des
u_char *p; u_char *p;
MD5_CTX md5; MD5_CTX md5;
u_char hash[16]; u_char hash[16];
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock deskey; DES_cblock deskey;
des_cblock zero; DES_cblock zero;
int i; int i;
int32_t seq_number; int32_t seq_number;
size_t len, total_len, padlength, datalen; size_t len, total_len, padlength, datalen;
@@ -199,9 +199,9 @@ wrap_des
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
memcpy (&deskey, key->keyvalue.data, sizeof(deskey)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash), DES_cbc_cksum ((void *)hash, (void *)hash, sizeof(hash),
schedule, &zero); &schedule, &zero);
memcpy (p - 8, hash, 8); memcpy (p - 8, hash, 8);
/* sequence number */ /* sequence number */
@@ -219,9 +219,9 @@ wrap_des
(context_handle->more_flags & LOCAL) ? 0 : 0xFF, (context_handle->more_flags & LOCAL) ? 0 : 0xFF,
4); 4);
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
des_cbc_encrypt ((void *)p, (void *)p, 8, DES_cbc_encrypt ((void *)p, (void *)p, 8,
schedule, (des_cblock *)(p + 8), DES_ENCRYPT); &schedule, (DES_cblock *)(p + 8), DES_ENCRYPT);
krb5_auth_con_setlocalseqnumber (gssapi_krb5_context, krb5_auth_con_setlocalseqnumber (gssapi_krb5_context,
context_handle->auth_context, context_handle->auth_context,
@@ -236,18 +236,18 @@ wrap_des
for (i = 0; i < sizeof(deskey); ++i) for (i = 0; i < sizeof(deskey); ++i)
deskey[i] ^= 0xf0; deskey[i] ^= 0xf0;
des_set_key (&deskey, schedule); DES_set_key (&deskey, &schedule);
memset (&zero, 0, sizeof(zero)); memset (&zero, 0, sizeof(zero));
des_cbc_encrypt ((void *)p, DES_cbc_encrypt ((void *)p,
(void *)p, (void *)p,
datalen, datalen,
schedule, &schedule,
&zero, &zero,
DES_ENCRYPT); DES_ENCRYPT);
memset (deskey, 0, sizeof(deskey));
memset (schedule, 0, sizeof(schedule));
} }
memset (deskey, 0, sizeof(deskey));
memset (&schedule, 0, sizeof(schedule));
if(conf_state != NULL) if(conf_state != NULL)
*conf_state = conf_req_flag; *conf_state = conf_req_flag;
*minor_status = 0; *minor_status = 0;
@@ -366,7 +366,7 @@ wrap_des3
} }
{ {
des_cblock ivec; DES_cblock ivec;
memcpy (&ivec, p + 8, 8); memcpy (&ivec, p + 8, 8);
ret = krb5_encrypt_ivec (gssapi_krb5_context, ret = krb5_encrypt_ivec (gssapi_krb5_context,

View File

@@ -160,24 +160,24 @@ static void
krb5_DES_random_key(krb5_context context, krb5_DES_random_key(krb5_context context,
krb5_keyblock *key) krb5_keyblock *key)
{ {
des_cblock *k = key->keyvalue.data; DES_cblock *k = key->keyvalue.data;
do { do {
krb5_generate_random_block(k, sizeof(des_cblock)); krb5_generate_random_block(k, sizeof(DES_cblock));
des_set_odd_parity(k); DES_set_odd_parity(k);
} while(des_is_weak_key(k)); } while(DES_is_weak_key(k));
} }
static void static void
krb5_DES_schedule(krb5_context context, krb5_DES_schedule(krb5_context context,
struct key_data *key) struct key_data *key)
{ {
des_set_key(key->key->keyvalue.data, key->schedule->data); DES_set_key(key->key->keyvalue.data, key->schedule->data);
} }
static void static void
DES_string_to_key_int(unsigned char *data, size_t length, des_cblock *key) DES_string_to_key_int(unsigned char *data, size_t length, DES_cblock *key)
{ {
des_key_schedule schedule; DES_key_schedule schedule;
int i; int i;
int reverse = 0; int reverse = 0;
unsigned char *p; unsigned char *p;
@@ -196,13 +196,13 @@ DES_string_to_key_int(unsigned char *data, size_t length, des_cblock *key)
if((i % 8) == 7) if((i % 8) == 7)
reverse = !reverse; reverse = !reverse;
} }
des_set_odd_parity(key); DES_set_odd_parity(key);
if(des_is_weak_key(key)) if(DES_is_weak_key(key))
(*key)[7] ^= 0xF0; (*key)[7] ^= 0xF0;
des_set_key(key, schedule); DES_set_key(key, &schedule);
des_cbc_cksum((void*)data, key, length, schedule, key); DES_cbc_cksum((void*)data, key, length, &schedule, key);
memset(schedule, 0, sizeof(schedule)); memset(&schedule, 0, sizeof(schedule));
des_set_odd_parity(key); DES_set_odd_parity(key);
} }
static krb5_error_code static krb5_error_code
@@ -215,7 +215,7 @@ krb5_DES_string_to_key(krb5_context context,
{ {
unsigned char *s; unsigned char *s;
size_t len; size_t len;
des_cblock tmp; DES_cblock tmp;
len = password.length + salt.saltvalue.length; len = password.length + salt.saltvalue.length;
s = malloc(len); s = malloc(len);
@@ -246,7 +246,7 @@ krb5_DES_string_to_key(krb5_context context,
static void static void
krb5_DES_AFS3_CMU_string_to_key (krb5_data pw, krb5_DES_AFS3_CMU_string_to_key (krb5_data pw,
krb5_data cell, krb5_data cell,
des_cblock *key) DES_cblock *key)
{ {
char password[8+1]; /* crypt is limited to 8 chars anyway */ char password[8+1]; /* crypt is limited to 8 chars anyway */
int i; int i;
@@ -259,14 +259,14 @@ krb5_DES_AFS3_CMU_string_to_key (krb5_data pw,
} }
password[8] = '\0'; password[8] = '\0';
memcpy(key, crypt(password, "p1") + 2, sizeof(des_cblock)); memcpy(key, crypt(password, "p1") + 2, sizeof(DES_cblock));
/* parity is inserted into the LSB so left shift each byte up one /* parity is inserted into the LSB so left shift each byte up one
bit. This allows ascii characters with a zero MSB to retain as bit. This allows ascii characters with a zero MSB to retain as
much significance as possible. */ much significance as possible. */
for (i = 0; i < sizeof(des_cblock); i++) for (i = 0; i < sizeof(DES_cblock); i++)
((unsigned char*)key)[i] <<= 1; ((unsigned char*)key)[i] <<= 1;
des_set_odd_parity (key); DES_set_odd_parity (key);
} }
/* /*
@@ -275,11 +275,11 @@ krb5_DES_AFS3_CMU_string_to_key (krb5_data pw,
static void static void
krb5_DES_AFS3_Transarc_string_to_key (krb5_data pw, krb5_DES_AFS3_Transarc_string_to_key (krb5_data pw,
krb5_data cell, krb5_data cell,
des_cblock *key) DES_cblock *key)
{ {
des_key_schedule schedule; DES_key_schedule schedule;
des_cblock temp_key; DES_cblock temp_key;
des_cblock ivec; DES_cblock ivec;
char password[512]; char password[512];
size_t passlen; size_t passlen;
@@ -295,20 +295,20 @@ krb5_DES_AFS3_Transarc_string_to_key (krb5_data pw,
passlen = min(sizeof(password), pw.length + cell.length); passlen = min(sizeof(password), pw.length + cell.length);
memcpy(&ivec, "kerberos", 8); memcpy(&ivec, "kerberos", 8);
memcpy(&temp_key, "kerberos", 8); memcpy(&temp_key, "kerberos", 8);
des_set_odd_parity (&temp_key); DES_set_odd_parity (&temp_key);
des_set_key (&temp_key, schedule); DES_set_key (&temp_key, &schedule);
des_cbc_cksum (password, &ivec, passlen, schedule, &ivec); DES_cbc_cksum ((void*)password, &ivec, passlen, &schedule, &ivec);
memcpy(&temp_key, &ivec, 8); memcpy(&temp_key, &ivec, 8);
des_set_odd_parity (&temp_key); DES_set_odd_parity (&temp_key);
des_set_key (&temp_key, schedule); DES_set_key (&temp_key, &schedule);
des_cbc_cksum (password, key, passlen, schedule, &ivec); DES_cbc_cksum (password, key, passlen, &schedule, &ivec);
memset(&schedule, 0, sizeof(schedule)); memset(&schedule, 0, sizeof(schedule));
memset(&temp_key, 0, sizeof(temp_key)); memset(&temp_key, 0, sizeof(temp_key));
memset(&ivec, 0, sizeof(ivec)); memset(&ivec, 0, sizeof(ivec));
memset(password, 0, sizeof(password)); memset(password, 0, sizeof(password));
des_set_odd_parity (key); DES_set_odd_parity (key);
} }
static krb5_error_code static krb5_error_code
@@ -319,7 +319,7 @@ DES_AFS3_string_to_key(krb5_context context,
krb5_data opaque, krb5_data opaque,
krb5_keyblock *key) krb5_keyblock *key)
{ {
des_cblock tmp; DES_cblock tmp;
if(password.length > 8) if(password.length > 8)
krb5_DES_AFS3_Transarc_string_to_key(password, salt.saltvalue, &tmp); krb5_DES_AFS3_Transarc_string_to_key(password, salt.saltvalue, &tmp);
else else
@@ -334,26 +334,26 @@ static void
DES3_random_key(krb5_context context, DES3_random_key(krb5_context context,
krb5_keyblock *key) krb5_keyblock *key)
{ {
des_cblock *k = key->keyvalue.data; DES_cblock *k = key->keyvalue.data;
do { do {
krb5_generate_random_block(k, 3 * sizeof(des_cblock)); krb5_generate_random_block(k, 3 * sizeof(DES_cblock));
des_set_odd_parity(&k[0]); DES_set_odd_parity(&k[0]);
des_set_odd_parity(&k[1]); DES_set_odd_parity(&k[1]);
des_set_odd_parity(&k[2]); DES_set_odd_parity(&k[2]);
} while(des_is_weak_key(&k[0]) || } while(DES_is_weak_key(&k[0]) ||
des_is_weak_key(&k[1]) || DES_is_weak_key(&k[1]) ||
des_is_weak_key(&k[2])); DES_is_weak_key(&k[2]));
} }
static void static void
DES3_schedule(krb5_context context, DES3_schedule(krb5_context context,
struct key_data *key) struct key_data *key)
{ {
des_cblock *k = key->key->keyvalue.data; DES_cblock *k = key->key->keyvalue.data;
des_key_schedule *s = key->schedule->data; DES_key_schedule *s = key->schedule->data;
des_set_key(&k[0], s[0]); DES_set_key(&k[0], &s[0]);
des_set_key(&k[1], s[1]); DES_set_key(&k[1], &s[1]);
des_set_key(&k[2], s[2]); DES_set_key(&k[2], &s[2]);
} }
/* /*
@@ -361,7 +361,7 @@ DES3_schedule(krb5_context context,
*/ */
static void static void
xor (des_cblock *key, const unsigned char *b) xor (DES_cblock *key, const unsigned char *b)
{ {
unsigned char *a = (unsigned char*)key; unsigned char *a = (unsigned char*)key;
a[0] ^= b[0]; a[0] ^= b[0];
@@ -385,7 +385,7 @@ DES3_string_to_key(krb5_context context,
char *str; char *str;
size_t len; size_t len;
unsigned char tmp[24]; unsigned char tmp[24];
des_cblock keys[3]; DES_cblock keys[3];
len = password.length + salt.saltvalue.length; len = password.length + salt.saltvalue.length;
str = malloc(len); str = malloc(len);
@@ -396,29 +396,29 @@ DES3_string_to_key(krb5_context context,
memcpy(str, password.data, password.length); memcpy(str, password.data, password.length);
memcpy(str + password.length, salt.saltvalue.data, salt.saltvalue.length); memcpy(str + password.length, salt.saltvalue.data, salt.saltvalue.length);
{ {
des_cblock ivec; DES_cblock ivec;
des_key_schedule s[3]; DES_key_schedule s[3];
int i; int i;
_krb5_n_fold(str, len, tmp, 24); _krb5_n_fold(str, len, tmp, 24);
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
memcpy(keys + i, tmp + i * 8, sizeof(keys[i])); memcpy(keys + i, tmp + i * 8, sizeof(keys[i]));
des_set_odd_parity(keys + i); DES_set_odd_parity(keys + i);
if(des_is_weak_key(keys + i)) if(DES_is_weak_key(keys + i))
xor(keys + i, (const unsigned char*)"\0\0\0\0\0\0\0\xf0"); xor(keys + i, (const unsigned char*)"\0\0\0\0\0\0\0\xf0");
des_set_key(keys + i, s[i]); DES_set_key(keys + i, &s[i]);
} }
memset(&ivec, 0, sizeof(ivec)); memset(&ivec, 0, sizeof(ivec));
des_ede3_cbc_encrypt(tmp, DES_ede3_cbc_encrypt(tmp,
tmp, sizeof(tmp), tmp, sizeof(tmp),
s[0], s[1], s[2], &ivec, DES_ENCRYPT); &s[0], &s[1], &s[2], &ivec, DES_ENCRYPT);
memset(s, 0, sizeof(s)); memset(s, 0, sizeof(s));
memset(&ivec, 0, sizeof(ivec)); memset(&ivec, 0, sizeof(ivec));
for(i = 0; i < 3; i++){ for(i = 0; i < 3; i++){
memcpy(keys + i, tmp + i * 8, sizeof(keys[i])); memcpy(keys + i, tmp + i * 8, sizeof(keys[i]));
des_set_odd_parity(keys + i); DES_set_odd_parity(keys + i);
if(des_is_weak_key(keys + i)) if(DES_is_weak_key(keys + i))
xor(keys + i, (const unsigned char*)"\0\0\0\0\0\0\0\xf0"); xor(keys + i, (const unsigned char*)"\0\0\0\0\0\0\0\xf0");
} }
memset(tmp, 0, sizeof(tmp)); memset(tmp, 0, sizeof(tmp));
@@ -715,8 +715,8 @@ struct key_type keytype_des = {
KEYTYPE_DES, KEYTYPE_DES,
"des", "des",
56, 56,
sizeof(des_cblock), sizeof(DES_cblock),
sizeof(des_key_schedule), sizeof(DES_key_schedule),
krb5_DES_random_key, krb5_DES_random_key,
krb5_DES_schedule, krb5_DES_schedule,
des_salt des_salt
@@ -726,8 +726,8 @@ struct key_type keytype_des3 = {
KEYTYPE_DES3, KEYTYPE_DES3,
"des3", "des3",
168, 168,
3 * sizeof(des_cblock), 3 * sizeof(DES_cblock),
3 * sizeof(des_key_schedule), 3 * sizeof(DES_key_schedule),
DES3_random_key, DES3_random_key,
DES3_schedule, DES3_schedule,
des3_salt des3_salt
@@ -737,8 +737,8 @@ struct key_type keytype_des3_derived = {
KEYTYPE_DES3, KEYTYPE_DES3,
"des3", "des3",
168, 168,
3 * sizeof(des_cblock), 3 * sizeof(DES_cblock),
3 * sizeof(des_key_schedule), 3 * sizeof(DES_key_schedule),
DES3_random_key, DES3_random_key,
DES3_schedule, DES3_schedule,
des3_salt_derived des3_salt_derived
@@ -1210,7 +1210,7 @@ RSA_MD4_DES_checksum(krb5_context context,
Checksum *cksum) Checksum *cksum)
{ {
MD4_CTX md4; MD4_CTX md4;
des_cblock ivec; DES_cblock ivec;
unsigned char *p = cksum->checksum.data; unsigned char *p = cksum->checksum.data;
krb5_generate_random_block(p, 8); krb5_generate_random_block(p, 8);
@@ -1219,7 +1219,7 @@ RSA_MD4_DES_checksum(krb5_context context,
MD4_Update (&md4, data, len); MD4_Update (&md4, data, len);
MD4_Final (p + 8, &md4); MD4_Final (p + 8, &md4);
memset (&ivec, 0, sizeof(ivec)); memset (&ivec, 0, sizeof(ivec));
des_cbc_encrypt(p, DES_cbc_encrypt(p,
p, p,
24, 24,
key->schedule->data, key->schedule->data,
@@ -1238,11 +1238,11 @@ RSA_MD4_DES_verify(krb5_context context,
MD4_CTX md4; MD4_CTX md4;
unsigned char tmp[24]; unsigned char tmp[24];
unsigned char res[16]; unsigned char res[16];
des_cblock ivec; DES_cblock ivec;
krb5_error_code ret = 0; krb5_error_code ret = 0;
memset(&ivec, 0, sizeof(ivec)); memset(&ivec, 0, sizeof(ivec));
des_cbc_encrypt(C->checksum.data, DES_cbc_encrypt(C->checksum.data,
(void*)tmp, (void*)tmp,
C->checksum.length, C->checksum.length,
key->schedule->data, key->schedule->data,
@@ -1285,7 +1285,7 @@ RSA_MD5_DES_checksum(krb5_context context,
Checksum *C) Checksum *C)
{ {
MD5_CTX md5; MD5_CTX md5;
des_cblock ivec; DES_cblock ivec;
unsigned char *p = C->checksum.data; unsigned char *p = C->checksum.data;
krb5_generate_random_block(p, 8); krb5_generate_random_block(p, 8);
@@ -1294,7 +1294,7 @@ RSA_MD5_DES_checksum(krb5_context context,
MD5_Update (&md5, data, len); MD5_Update (&md5, data, len);
MD5_Final (p + 8, &md5); MD5_Final (p + 8, &md5);
memset (&ivec, 0, sizeof(ivec)); memset (&ivec, 0, sizeof(ivec));
des_cbc_encrypt(p, DES_cbc_encrypt(p,
p, p,
24, 24,
key->schedule->data, key->schedule->data,
@@ -1313,15 +1313,15 @@ RSA_MD5_DES_verify(krb5_context context,
MD5_CTX md5; MD5_CTX md5;
unsigned char tmp[24]; unsigned char tmp[24];
unsigned char res[16]; unsigned char res[16];
des_cblock ivec; DES_cblock ivec;
des_key_schedule *sched = key->schedule->data; DES_key_schedule *sched = key->schedule->data;
krb5_error_code ret = 0; krb5_error_code ret = 0;
memset(&ivec, 0, sizeof(ivec)); memset(&ivec, 0, sizeof(ivec));
des_cbc_encrypt(C->checksum.data, DES_cbc_encrypt(C->checksum.data,
(void*)tmp, (void*)tmp,
C->checksum.length, C->checksum.length,
sched[0], &sched[0],
&ivec, &ivec,
DES_DECRYPT); DES_DECRYPT);
MD5_Init (&md5); MD5_Init (&md5);
@@ -1346,9 +1346,9 @@ RSA_MD5_DES3_checksum(krb5_context context,
Checksum *C) Checksum *C)
{ {
MD5_CTX md5; MD5_CTX md5;
des_cblock ivec; DES_cblock ivec;
unsigned char *p = C->checksum.data; unsigned char *p = C->checksum.data;
des_key_schedule *sched = key->schedule->data; DES_key_schedule *sched = key->schedule->data;
krb5_generate_random_block(p, 8); krb5_generate_random_block(p, 8);
MD5_Init (&md5); MD5_Init (&md5);
@@ -1356,10 +1356,10 @@ RSA_MD5_DES3_checksum(krb5_context context,
MD5_Update (&md5, data, len); MD5_Update (&md5, data, len);
MD5_Final (p + 8, &md5); MD5_Final (p + 8, &md5);
memset (&ivec, 0, sizeof(ivec)); memset (&ivec, 0, sizeof(ivec));
des_ede3_cbc_encrypt(p, DES_ede3_cbc_encrypt(p,
p, p,
24, 24,
sched[0], sched[1], sched[2], &sched[0], &sched[1], &sched[2],
&ivec, &ivec,
DES_ENCRYPT); DES_ENCRYPT);
} }
@@ -1375,15 +1375,15 @@ RSA_MD5_DES3_verify(krb5_context context,
MD5_CTX md5; MD5_CTX md5;
unsigned char tmp[24]; unsigned char tmp[24];
unsigned char res[16]; unsigned char res[16];
des_cblock ivec; DES_cblock ivec;
des_key_schedule *sched = key->schedule->data; DES_key_schedule *sched = key->schedule->data;
krb5_error_code ret = 0; krb5_error_code ret = 0;
memset(&ivec, 0, sizeof(ivec)); memset(&ivec, 0, sizeof(ivec));
des_ede3_cbc_encrypt(C->checksum.data, DES_ede3_cbc_encrypt(C->checksum.data,
(void*)tmp, (void*)tmp,
C->checksum.length, C->checksum.length,
sched[0], sched[1], sched[2], &sched[0], &sched[1], &sched[2],
&ivec, &ivec,
DES_DECRYPT); DES_DECRYPT);
MD5_Init (&md5); MD5_Init (&md5);
@@ -2069,10 +2069,10 @@ DES_CBC_encrypt_null_ivec(krb5_context context,
int usage, int usage,
void *ignore_ivec) void *ignore_ivec)
{ {
des_cblock ivec; DES_cblock ivec;
des_key_schedule *s = key->schedule->data; DES_key_schedule *s = key->schedule->data;
memset(&ivec, 0, sizeof(ivec)); memset(&ivec, 0, sizeof(ivec));
des_cbc_encrypt(data, data, len, *s, &ivec, encrypt); DES_cbc_encrypt(data, data, len, s, &ivec, encrypt);
return 0; return 0;
} }
@@ -2085,10 +2085,10 @@ DES_CBC_encrypt_key_ivec(krb5_context context,
int usage, int usage,
void *ignore_ivec) void *ignore_ivec)
{ {
des_cblock ivec; DES_cblock ivec;
des_key_schedule *s = key->schedule->data; DES_key_schedule *s = key->schedule->data;
memcpy(&ivec, key->key->keyvalue.data, sizeof(ivec)); memcpy(&ivec, key->key->keyvalue.data, sizeof(ivec));
des_cbc_encrypt(data, data, len, *s, &ivec, encrypt); DES_cbc_encrypt(data, data, len, s, &ivec, encrypt);
return 0; return 0;
} }
@@ -2101,13 +2101,13 @@ DES3_CBC_encrypt(krb5_context context,
int usage, int usage,
void *ivec) void *ivec)
{ {
des_cblock local_ivec; DES_cblock local_ivec;
des_key_schedule *s = key->schedule->data; DES_key_schedule *s = key->schedule->data;
if(ivec == NULL) { if(ivec == NULL) {
ivec = &local_ivec; ivec = &local_ivec;
memset(local_ivec, 0, sizeof(local_ivec)); memset(local_ivec, 0, sizeof(local_ivec));
} }
des_ede3_cbc_encrypt(data, data, len, s[0], s[1], s[2], ivec, encrypt); DES_ede3_cbc_encrypt(data, data, len, &s[0], &s[1], &s[2], ivec, encrypt);
return 0; return 0;
} }
@@ -2120,12 +2120,12 @@ DES_CFB64_encrypt_null_ivec(krb5_context context,
int usage, int usage,
void *ignore_ivec) void *ignore_ivec)
{ {
des_cblock ivec; DES_cblock ivec;
int num = 0; int num = 0;
des_key_schedule *s = key->schedule->data; DES_key_schedule *s = key->schedule->data;
memset(&ivec, 0, sizeof(ivec)); memset(&ivec, 0, sizeof(ivec));
des_cfb64_encrypt(data, data, len, *s, &ivec, &num, encrypt); DES_cfb64_encrypt(data, data, len, s, &ivec, &num, encrypt);
return 0; return 0;
} }
@@ -2138,11 +2138,11 @@ DES_PCBC_encrypt_key_ivec(krb5_context context,
int usage, int usage,
void *ignore_ivec) void *ignore_ivec)
{ {
des_cblock ivec; DES_cblock ivec;
des_key_schedule *s = key->schedule->data; DES_key_schedule *s = key->schedule->data;
memcpy(&ivec, key->key->keyvalue.data, sizeof(ivec)); memcpy(&ivec, key->key->keyvalue.data, sizeof(ivec));
des_pcbc_encrypt(data, data, len, *s, &ivec, encrypt); DES_pcbc_encrypt(data, data, len, s, &ivec, encrypt);
return 0; return 0;
} }
@@ -3335,23 +3335,23 @@ krb5_generate_random_block(void *buf, size_t len)
void void
krb5_generate_random_block(void *buf, size_t len) krb5_generate_random_block(void *buf, size_t len)
{ {
des_cblock key, out; DES_cblock key, out;
static des_cblock counter; static DES_cblock counter;
static des_key_schedule schedule; static DES_key_schedule schedule;
int i; int i;
static int initialized = 0; static int initialized = 0;
HEIMDAL_MUTEX_lock(&crypto_mutex); HEIMDAL_MUTEX_lock(&crypto_mutex);
if(!initialized) { if(!initialized) {
des_new_random_key(&key); DES_new_random_key(&key);
des_set_key(&key, schedule); DES_set_key(&key, &schedule);
memset(&key, 0, sizeof(key)); memset(&key, 0, sizeof(key));
des_new_random_key(&counter); DES_new_random_key(&counter);
initialized = 1; initialized = 1;
} }
HEIMDAL_MUTEX_unlock(&crypto_mutex); HEIMDAL_MUTEX_unlock(&crypto_mutex);
while(len > 0) { while(len > 0) {
des_ecb_encrypt(&counter, &out, schedule, DES_ENCRYPT); DES_ecb_encrypt(&counter, &out, &schedule, DES_ENCRYPT);
for(i = 7; i >=0; i--) for(i = 7; i >=0; i--)
if(counter[i]++) if(counter[i]++)
break; break;
@@ -3392,9 +3392,9 @@ DES3_postproc(krb5_context context,
krb5_free_data(context, key->schedule); krb5_free_data(context, key->schedule);
key->schedule = NULL; key->schedule = NULL;
} }
des_set_odd_parity((des_cblock*)k); DES_set_odd_parity((DES_cblock*)k);
des_set_odd_parity((des_cblock*)(k + 8)); DES_set_odd_parity((DES_cblock*)(k + 8));
des_set_odd_parity((des_cblock*)(k + 16)); DES_set_odd_parity((DES_cblock*)(k + 16));
} }
static krb5_error_code static krb5_error_code