diff options
| author | Richard Basch <probe@mit.edu> | 1995-12-02 16:33:40 +0000 |
|---|---|---|
| committer | Richard Basch <probe@mit.edu> | 1995-12-02 16:33:40 +0000 |
| commit | 0e7da60c8f9ce2885d4a5bba0ab71f57b389f9aa (patch) | |
| tree | 4165b191c70bca2a5551fb24f090f69555d5b5c9 /src/lib/crypto | |
| parent | 53f829bcce9f8d5bfcc0ba68bdc17f797a892ab2 (diff) | |
| download | krb5-0e7da60c8f9ce2885d4a5bba0ab71f57b389f9aa.tar.gz krb5-0e7da60c8f9ce2885d4a5bba0ab71f57b389f9aa.tar.xz krb5-0e7da60c8f9ce2885d4a5bba0ab71f57b389f9aa.zip | |
XOR the last byte of weak keys with 0xf0, according to spec
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7156 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto')
| -rw-r--r-- | src/lib/crypto/des/d3_str2ky.c | 4 | ||||
| -rw-r--r-- | src/lib/crypto/des/string2key.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/crypto/des/d3_str2ky.c b/src/lib/crypto/des/d3_str2ky.c index 3e3e285bd..6acf21870 100644 --- a/src/lib/crypto/des/d3_str2ky.c +++ b/src/lib/crypto/des/d3_str2ky.c @@ -103,7 +103,7 @@ const krb5_data FAR * salt; for (j = 0; j < keyblock->length/sizeof(mit_des_cblock); j++) { mit_des_fixup_key_parity(key[j]); if (mit_des_is_weak_key(key[j])) - *((krb5_octet *)(key[j])) ^= 0xf0; + ((krb5_octet *)(key[j]))[7] ^= 0xf0; } /* Now, CBC encrypt with itself */ @@ -127,7 +127,7 @@ const krb5_data FAR * salt; for (j = 0; j < keyblock->length/sizeof(mit_des_cblock); j++) { mit_des_fixup_key_parity(key[j]); if (mit_des_is_weak_key(key[j])) - *((krb5_octet *)(key[j])) ^= 0xf0; + ((krb5_octet *)(key[j]))[7] ^= 0xf0; } return 0; diff --git a/src/lib/crypto/des/string2key.c b/src/lib/crypto/des/string2key.c index e36ebcbc7..7c58b5083 100644 --- a/src/lib/crypto/des/string2key.c +++ b/src/lib/crypto/des/string2key.c @@ -144,6 +144,8 @@ const krb5_data FAR * salt; /* fix key parity */ mit_des_fixup_key_parity(key); + if (mit_des_is_weak_key(key)) + ((krb5_octet *)key)[7] ^= 0xf0; /* Now one-way encrypt it with the folded key */ (void) mit_des_key_sched(key, key_sked); @@ -157,6 +159,8 @@ const krb5_data FAR * salt; /* now fix up key parity again */ mit_des_fixup_key_parity(key); + if (mit_des_is_weak_key(key)) + ((krb5_octet *)key)[7] ^= 0xf0; #if 0 if (mit_des_debug) |
