Fixup key parity before going ahead and using the key.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23122 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1050,10 +1050,19 @@ des_ede3_cbc_init(EVP_CIPHER_CTX *ctx,
|
|||||||
int encp)
|
int encp)
|
||||||
{
|
{
|
||||||
struct des_ede3_cbc *k = ctx->cipher_data;
|
struct des_ede3_cbc *k = ctx->cipher_data;
|
||||||
|
DES_cblock deskey;
|
||||||
|
|
||||||
DES_set_key_unchecked((DES_cblock *)(key), &k->ks[0]);
|
memcpy(&deskey, key, sizeof(deskey));
|
||||||
DES_set_key_unchecked((DES_cblock *)(key + 8), &k->ks[1]);
|
DES_set_odd_parity(&deskey);
|
||||||
DES_set_key_unchecked((DES_cblock *)(key + 16), &k->ks[2]);
|
DES_set_key_unchecked(&deskey, &k->ks[0]);
|
||||||
|
|
||||||
|
memcpy(&deskey, key + 8, sizeof(deskey));
|
||||||
|
DES_set_odd_parity(&deskey);
|
||||||
|
DES_set_key_unchecked(&deskey, &k->ks[1]);
|
||||||
|
|
||||||
|
memcpy(&deskey, key + 16, sizeof(deskey));
|
||||||
|
DES_set_odd_parity(&deskey);
|
||||||
|
DES_set_key_unchecked(&deskey, &k->ks[2]);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user