[1013] in Kerberos_V5_Development
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++)