summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/crypto/des/ChangeLog7
-rw-r--r--src/lib/crypto/des/init_rkey.c20
2 files changed, 20 insertions, 7 deletions
diff --git a/src/lib/crypto/des/ChangeLog b/src/lib/crypto/des/ChangeLog
index 5c7439f69..2e816ff6f 100644
--- a/src/lib/crypto/des/ChangeLog
+++ b/src/lib/crypto/des/ChangeLog
@@ -1,3 +1,10 @@
+Thu Dec 25 20:57:53 1997 Tom Yu <chaoself@mit.edu>
+
+ * init_rkey.c (mit_des_init_random_key): Punt the struct; use
+ explicit variables instead because we're no longer doing a
+ memcpy. In addition, fill p_state->sequence.data a byte at a
+ time. [krb5-libs/492]
+
Mon Oct 27 01:06:34 1997 Tom Yu <tlyu@mit.edu>
* d3_cbc.c, des.h, des_int.h, f_cbc.c, f_cksum.c, f_ecb.c,
diff --git a/src/lib/crypto/des/init_rkey.c b/src/lib/crypto/des/init_rkey.c
index 923ddd550..5096647ec 100644
--- a/src/lib/crypto/des/init_rkey.c
+++ b/src/lib/crypto/des/init_rkey.c
@@ -48,10 +48,9 @@ mit_des_init_random_key (eblock, seedblock, state)
krb5_error_code kret = 0;
krb5_address **addrs = 0;
krb5_data seed;
- struct tval {
- krb5_int32 seconds;
- krb5_int32 microseconds;
- } timenow;
+ krb5_int32 now;
+ krb5_int32 unow;
+ unsigned char *cp;
switch (enctype)
{
@@ -137,9 +136,16 @@ mit_des_init_random_key (eblock, seedblock, state)
if (kret) goto cleanup;
/* sequence = time */
- (void) krb5_crypto_us_timeofday(&timenow.seconds,
- &timenow.microseconds);
- memcpy((char *)p_state->sequence.data, (char *)&timenow, sizeof(timenow));
+ (void) krb5_crypto_us_timeofday(&now, &unow);
+ cp = p_state->sequence.data;
+ *cp++ = (now >> 24) & 0xff;
+ *cp++ = (now >> 16) & 0xff;
+ *cp++ = (now >> 8) & 0xff;
+ *cp++ = now & 0xff;
+ *cp++ = (unow >> 24) & 0xff;
+ *cp++ = (unow >> 16) & 0xff;
+ *cp++ = (unow >> 8) & 0xff;
+ *cp++ = unow &0xff;
/* seed = random(tmp.seed, time) */
kret = mit_des_random_key(NULL, p_state, &new_key);