(struct encryption_type): split the blocksize into blocksize and
padsize, padsize is the minimum padding size. they are the same for now (enctype_*): add padsize (encrypt_internal): use padsize (encrypt_internal_derived): use padsize (wrapped_length): use padsize (wrapped_length_dervied): use padsize git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@11582 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -110,6 +110,7 @@ struct encryption_type {
|
|||||||
krb5_enctype type;
|
krb5_enctype type;
|
||||||
const char *name;
|
const char *name;
|
||||||
size_t blocksize;
|
size_t blocksize;
|
||||||
|
size_t padsize;
|
||||||
size_t confoundersize;
|
size_t confoundersize;
|
||||||
struct key_type *keytype;
|
struct key_type *keytype;
|
||||||
struct checksum_type *checksum;
|
struct checksum_type *checksum;
|
||||||
@@ -1951,6 +1952,7 @@ static struct encryption_type enctype_null = {
|
|||||||
ETYPE_NULL,
|
ETYPE_NULL,
|
||||||
"null",
|
"null",
|
||||||
1,
|
1,
|
||||||
|
1,
|
||||||
0,
|
0,
|
||||||
&keytype_null,
|
&keytype_null,
|
||||||
&checksum_none,
|
&checksum_none,
|
||||||
@@ -1963,6 +1965,7 @@ static struct encryption_type enctype_des_cbc_crc = {
|
|||||||
"des-cbc-crc",
|
"des-cbc-crc",
|
||||||
8,
|
8,
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
&keytype_des,
|
&keytype_des,
|
||||||
&checksum_crc32,
|
&checksum_crc32,
|
||||||
NULL,
|
NULL,
|
||||||
@@ -1974,6 +1977,7 @@ static struct encryption_type enctype_des_cbc_md4 = {
|
|||||||
"des-cbc-md4",
|
"des-cbc-md4",
|
||||||
8,
|
8,
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
&keytype_des,
|
&keytype_des,
|
||||||
&checksum_rsa_md4,
|
&checksum_rsa_md4,
|
||||||
&checksum_rsa_md4_des,
|
&checksum_rsa_md4_des,
|
||||||
@@ -1985,6 +1989,7 @@ static struct encryption_type enctype_des_cbc_md5 = {
|
|||||||
"des-cbc-md5",
|
"des-cbc-md5",
|
||||||
8,
|
8,
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
&keytype_des,
|
&keytype_des,
|
||||||
&checksum_rsa_md5,
|
&checksum_rsa_md5,
|
||||||
&checksum_rsa_md5_des,
|
&checksum_rsa_md5_des,
|
||||||
@@ -1995,6 +2000,7 @@ static struct encryption_type enctype_arcfour_hmac_md5 = {
|
|||||||
ETYPE_ARCFOUR_HMAC_MD5,
|
ETYPE_ARCFOUR_HMAC_MD5,
|
||||||
"arcfour-hmac-md5",
|
"arcfour-hmac-md5",
|
||||||
1,
|
1,
|
||||||
|
1,
|
||||||
8,
|
8,
|
||||||
&keytype_arcfour,
|
&keytype_arcfour,
|
||||||
&checksum_hmac_md5,
|
&checksum_hmac_md5,
|
||||||
@@ -2007,6 +2013,7 @@ static struct encryption_type enctype_des3_cbc_md5 = {
|
|||||||
"des3-cbc-md5",
|
"des3-cbc-md5",
|
||||||
8,
|
8,
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
&keytype_des3,
|
&keytype_des3,
|
||||||
&checksum_rsa_md5,
|
&checksum_rsa_md5,
|
||||||
&checksum_rsa_md5_des3,
|
&checksum_rsa_md5_des3,
|
||||||
@@ -2018,6 +2025,7 @@ static struct encryption_type enctype_des3_cbc_sha1 = {
|
|||||||
"des3-cbc-sha1",
|
"des3-cbc-sha1",
|
||||||
8,
|
8,
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
&keytype_des3_derived,
|
&keytype_des3_derived,
|
||||||
&checksum_sha1,
|
&checksum_sha1,
|
||||||
&checksum_hmac_sha1_des3,
|
&checksum_hmac_sha1_des3,
|
||||||
@@ -2029,6 +2037,7 @@ static struct encryption_type enctype_old_des3_cbc_sha1 = {
|
|||||||
"old-des3-cbc-sha1",
|
"old-des3-cbc-sha1",
|
||||||
8,
|
8,
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
&keytype_des3,
|
&keytype_des3,
|
||||||
&checksum_sha1,
|
&checksum_sha1,
|
||||||
&checksum_hmac_sha1_des3,
|
&checksum_hmac_sha1_des3,
|
||||||
@@ -2039,6 +2048,7 @@ static struct encryption_type enctype_des_cbc_none = {
|
|||||||
ETYPE_DES_CBC_NONE,
|
ETYPE_DES_CBC_NONE,
|
||||||
"des-cbc-none",
|
"des-cbc-none",
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
0,
|
0,
|
||||||
&keytype_des,
|
&keytype_des,
|
||||||
&checksum_none,
|
&checksum_none,
|
||||||
@@ -2050,6 +2060,7 @@ static struct encryption_type enctype_des_cfb64_none = {
|
|||||||
ETYPE_DES_CFB64_NONE,
|
ETYPE_DES_CFB64_NONE,
|
||||||
"des-cfb64-none",
|
"des-cfb64-none",
|
||||||
1,
|
1,
|
||||||
|
1,
|
||||||
0,
|
0,
|
||||||
&keytype_des,
|
&keytype_des,
|
||||||
&checksum_none,
|
&checksum_none,
|
||||||
@@ -2061,6 +2072,7 @@ static struct encryption_type enctype_des_pcbc_none = {
|
|||||||
ETYPE_DES_PCBC_NONE,
|
ETYPE_DES_PCBC_NONE,
|
||||||
"des-pcbc-none",
|
"des-pcbc-none",
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
0,
|
0,
|
||||||
&keytype_des,
|
&keytype_des,
|
||||||
&checksum_none,
|
&checksum_none,
|
||||||
@@ -2072,6 +2084,7 @@ static struct encryption_type enctype_des3_cbc_none = {
|
|||||||
ETYPE_DES3_CBC_NONE,
|
ETYPE_DES3_CBC_NONE,
|
||||||
"des3-cbc-none",
|
"des3-cbc-none",
|
||||||
8,
|
8,
|
||||||
|
8,
|
||||||
0,
|
0,
|
||||||
&keytype_des3_derived,
|
&keytype_des3_derived,
|
||||||
&checksum_none,
|
&checksum_none,
|
||||||
@@ -2291,7 +2304,7 @@ encrypt_internal_derived(krb5_context context,
|
|||||||
checksum_sz = CHECKSUMSIZE(et->keyed_checksum);
|
checksum_sz = CHECKSUMSIZE(et->keyed_checksum);
|
||||||
|
|
||||||
sz = et->confoundersize + len;
|
sz = et->confoundersize + len;
|
||||||
block_sz = (sz + et->blocksize - 1) &~ (et->blocksize - 1); /* pad */
|
block_sz = (sz + et->padsize - 1) &~ (et->padsize - 1); /* pad */
|
||||||
total_sz = block_sz + checksum_sz;
|
total_sz = block_sz + checksum_sz;
|
||||||
p = calloc(1, total_sz);
|
p = calloc(1, total_sz);
|
||||||
if(p == NULL) {
|
if(p == NULL) {
|
||||||
@@ -2359,7 +2372,7 @@ encrypt_internal(krb5_context context,
|
|||||||
checksum_sz = CHECKSUMSIZE(et->checksum);
|
checksum_sz = CHECKSUMSIZE(et->checksum);
|
||||||
|
|
||||||
sz = et->confoundersize + checksum_sz + len;
|
sz = et->confoundersize + checksum_sz + len;
|
||||||
block_sz = (sz + et->blocksize - 1) &~ (et->blocksize - 1); /* pad */
|
block_sz = (sz + et->padsize - 1) &~ (et->padsize - 1); /* pad */
|
||||||
p = calloc(1, block_sz);
|
p = calloc(1, block_sz);
|
||||||
if(p == NULL) {
|
if(p == NULL) {
|
||||||
krb5_set_error_string(context, "malloc: out of memory");
|
krb5_set_error_string(context, "malloc: out of memory");
|
||||||
@@ -3118,11 +3131,11 @@ wrapped_length (krb5_context context,
|
|||||||
size_t data_len)
|
size_t data_len)
|
||||||
{
|
{
|
||||||
struct encryption_type *et = crypto->et;
|
struct encryption_type *et = crypto->et;
|
||||||
size_t blocksize = et->blocksize;
|
size_t padsize = et->padsize;
|
||||||
size_t res;
|
size_t res;
|
||||||
|
|
||||||
res = et->confoundersize + et->checksum->checksumsize + data_len;
|
res = et->confoundersize + et->checksum->checksumsize + data_len;
|
||||||
res = (res + blocksize - 1) / blocksize * blocksize;
|
res = (res + padsize - 1) / padsize * padsize;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3132,11 +3145,11 @@ wrapped_length_dervied (krb5_context context,
|
|||||||
size_t data_len)
|
size_t data_len)
|
||||||
{
|
{
|
||||||
struct encryption_type *et = crypto->et;
|
struct encryption_type *et = crypto->et;
|
||||||
size_t blocksize = et->blocksize;
|
size_t padsize = et->padsize;
|
||||||
size_t res;
|
size_t res;
|
||||||
|
|
||||||
res = et->confoundersize + data_len;
|
res = et->confoundersize + data_len;
|
||||||
res = (res + blocksize - 1) / blocksize * blocksize;
|
res = (res + padsize - 1) / padsize * padsize;
|
||||||
res += et->checksum->checksumsize;
|
res += et->checksum->checksumsize;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user