[1013] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

Quick audit of change to new_rn_key.c, please

daemon@ATHENA.MIT.EDU (Theodore Ts'o)
Wed Feb 21 18:51:06 1996

Date: Wed, 21 Feb 1996 18:51:01 -0500
From: Theodore Ts'o <tytso@MIT.EDU>
To: krbdev@MIT.EDU

Because I got paranoid about what might happen if the random number
generator got seeded with something that *wasn't* a valid DES key, I
propose we make the following change to src/lib/crypto/new_rn_key.c.

Since this is (as we all know by now :-), critical code, I'd appreciate
some review of this change before I commit it.  Thanks!!

							- Ted

diff -u -r5.23 new_rn_key.c
--- new_rn_key.c        1995/07/27 19:47:26     5.23
+++ new_rn_key.c        1996/02/21 23:46:58
@@ -162,9 +162,17 @@
     mit_des_random_key_seed    *p_seed;
 {
     register int i;
+    mit_des_cblock fixed_key;
+
+    memcpy(fixed_key, key, sizeof(mit_des_cblock));
+    mit_des_fixup_key_parity(fixed_key);
+    if (mit_des_is_weak_key(fixed_key)) {
+           fixed_key[0] ^= 0xF0;
+           mit_des_fixup_key_parity(fixed_key);
+    }
 
     /* select the new stream: (note errors are not possible here...) */
-    mit_des_key_sched(key, p_seed->random_sequence_key);
+    mit_des_key_sched(fixed_key, p_seed->random_sequence_key);
 
     /* "seek" to the start of the stream: */
     for (i=0; i<8; i++)


home help back first fref pref prev next nref lref last post