(wrapped_length/wrapped_length_derived): when calculating the length
of the encrypted data, use the keyed checksum length if the enctype supports a keyed checksum. This only matter for aes, for all other enctypes the key and unkeyed checksum have the same length. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12450 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -3586,9 +3586,15 @@ wrapped_length (krb5_context context,
|
|||||||
{
|
{
|
||||||
struct encryption_type *et = crypto->et;
|
struct encryption_type *et = crypto->et;
|
||||||
size_t padsize = et->padsize;
|
size_t padsize = et->padsize;
|
||||||
|
size_t checksumsize;
|
||||||
size_t res;
|
size_t res;
|
||||||
|
|
||||||
res = et->confoundersize + et->checksum->checksumsize + data_len;
|
if (et->keyed_checksum)
|
||||||
|
checksumsize = et->keyed_checksum->checksumsize;
|
||||||
|
else
|
||||||
|
checksumsize = et->checksum->checksumsize;
|
||||||
|
|
||||||
|
res = et->confoundersize + checksumsize + data_len;
|
||||||
res = (res + padsize - 1) / padsize * padsize;
|
res = (res + padsize - 1) / padsize * padsize;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@@ -3604,7 +3610,10 @@ wrapped_length_dervied (krb5_context context,
|
|||||||
|
|
||||||
res = et->confoundersize + data_len;
|
res = et->confoundersize + data_len;
|
||||||
res = (res + padsize - 1) / padsize * padsize;
|
res = (res + padsize - 1) / padsize * padsize;
|
||||||
res += et->checksum->checksumsize;
|
if (et->keyed_checksum)
|
||||||
|
res += et->keyed_checksum->checksumsize;
|
||||||
|
else
|
||||||
|
res += et->checksum->checksumsize;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user