From f7acaf3cfb9b4b4c2824ac473957156c1cad2b5d Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Fri, 11 May 2001 16:05:53 +0000 Subject: [PATCH] (des_string_to_key, des_string_to_2keys): avoid weak keys git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9915 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/des/str2key.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/des/str2key.c b/lib/des/str2key.c index e81f34817..c86368c8c 100644 --- a/lib/des/str2key.c +++ b/lib/des/str2key.c @@ -92,6 +92,8 @@ des_cblock (*key); des_set_odd_parity((des_cblock *)key); i=des_check_key; des_check_key=0; + if(des_is_weak_key((des_cblock *)key)) + (*key)[7] ^= 0xF0; des_set_key((des_cblock *)key,ks); des_check_key=i; des_cbc_cksum((des_cblock *)str,(des_cblock *)key,(long)length,ks, @@ -158,9 +160,13 @@ des_cblock (*key2); des_set_odd_parity((des_cblock *)key2); i=des_check_key; des_check_key=0; + if(des_is_weak_key((des_cblock *)key1)) + (*key1)[7] ^= 0xF0; des_set_key((des_cblock *)key1,ks); des_cbc_cksum((des_cblock *)str,(des_cblock *)key1,(long)length,ks, (des_cblock *)key1); + if(des_is_weak_key((des_cblock *)key2)) + (*key2)[7] ^= 0xF0; des_set_key((des_cblock *)key2,ks); des_cbc_cksum((des_cblock *)str,(des_cblock *)key2,(long)length,ks, (des_cblock *)key2);