make checksum_types into an array of pointers
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9829 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1820,150 +1820,164 @@ ARCFOUR_encrypt(struct key_data *key,
|
|||||||
* these should currently be in reverse preference order.
|
* these should currently be in reverse preference order.
|
||||||
* (only relevant for !F_PSEUDO) */
|
* (only relevant for !F_PSEUDO) */
|
||||||
|
|
||||||
static struct encryption_type etypes[] = {
|
static struct encryption_type enctype_null = {
|
||||||
{
|
ETYPE_NULL,
|
||||||
ETYPE_NULL,
|
"null",
|
||||||
"null",
|
1,
|
||||||
1,
|
0,
|
||||||
0,
|
&keytype_null,
|
||||||
&keytype_null,
|
&checksum_none,
|
||||||
&checksum_none,
|
NULL,
|
||||||
NULL,
|
0,
|
||||||
0,
|
NULL_encrypt,
|
||||||
NULL_encrypt,
|
};
|
||||||
},
|
static struct encryption_type enctype_des_cbc_crc = {
|
||||||
{
|
ETYPE_DES_CBC_CRC,
|
||||||
ETYPE_DES_CBC_CRC,
|
"des-cbc-crc",
|
||||||
"des-cbc-crc",
|
8,
|
||||||
8,
|
8,
|
||||||
8,
|
&keytype_des,
|
||||||
&keytype_des,
|
&checksum_crc32,
|
||||||
&checksum_crc32,
|
NULL,
|
||||||
NULL,
|
0,
|
||||||
0,
|
DES_CBC_encrypt_key_ivec,
|
||||||
DES_CBC_encrypt_key_ivec,
|
};
|
||||||
},
|
static struct encryption_type enctype_des_cbc_md4 = {
|
||||||
{
|
ETYPE_DES_CBC_MD4,
|
||||||
ETYPE_DES_CBC_MD4,
|
"des-cbc-md4",
|
||||||
"des-cbc-md4",
|
8,
|
||||||
8,
|
8,
|
||||||
8,
|
&keytype_des,
|
||||||
&keytype_des,
|
&checksum_rsa_md4,
|
||||||
&checksum_rsa_md4,
|
&checksum_rsa_md4_des,
|
||||||
&checksum_rsa_md4_des,
|
0,
|
||||||
0,
|
DES_CBC_encrypt_null_ivec,
|
||||||
DES_CBC_encrypt_null_ivec,
|
};
|
||||||
},
|
static struct encryption_type enctype_des_cbc_md5 = {
|
||||||
{
|
ETYPE_DES_CBC_MD5,
|
||||||
ETYPE_DES_CBC_MD5,
|
"des-cbc-md5",
|
||||||
"des-cbc-md5",
|
8,
|
||||||
8,
|
8,
|
||||||
8,
|
&keytype_des,
|
||||||
&keytype_des,
|
&checksum_rsa_md5,
|
||||||
&checksum_rsa_md5,
|
&checksum_rsa_md5_des,
|
||||||
&checksum_rsa_md5_des,
|
0,
|
||||||
0,
|
DES_CBC_encrypt_null_ivec,
|
||||||
DES_CBC_encrypt_null_ivec,
|
};
|
||||||
},
|
static struct encryption_type enctype_arcfour_hmac_md5 = {
|
||||||
{
|
ETYPE_ARCFOUR_HMAC_MD5,
|
||||||
ETYPE_ARCFOUR_HMAC_MD5,
|
"arcfour-hmac-md5",
|
||||||
"arcfour-hmac-md5",
|
1,
|
||||||
1,
|
8,
|
||||||
8,
|
&keytype_arcfour,
|
||||||
&keytype_arcfour,
|
&checksum_hmac_md5_enc,
|
||||||
&checksum_hmac_md5_enc,
|
&checksum_hmac_md5_enc,
|
||||||
&checksum_hmac_md5_enc,
|
F_SPECIAL,
|
||||||
F_SPECIAL,
|
ARCFOUR_encrypt
|
||||||
ARCFOUR_encrypt
|
};
|
||||||
},
|
static struct encryption_type enctype_des3_cbc_md5 = {
|
||||||
{
|
ETYPE_DES3_CBC_MD5,
|
||||||
ETYPE_DES3_CBC_MD5,
|
"des3-cbc-md5",
|
||||||
"des3-cbc-md5",
|
8,
|
||||||
8,
|
8,
|
||||||
8,
|
&keytype_des3,
|
||||||
&keytype_des3,
|
&checksum_rsa_md5,
|
||||||
&checksum_rsa_md5,
|
&checksum_rsa_md5_des3,
|
||||||
&checksum_rsa_md5_des3,
|
0,
|
||||||
0,
|
DES3_CBC_encrypt,
|
||||||
DES3_CBC_encrypt,
|
};
|
||||||
},
|
static struct encryption_type enctype_des3_cbc_sha1 = {
|
||||||
{
|
ETYPE_DES3_CBC_SHA1,
|
||||||
ETYPE_DES3_CBC_SHA1,
|
"des3-cbc-sha1",
|
||||||
"des3-cbc-sha1",
|
8,
|
||||||
8,
|
8,
|
||||||
8,
|
&keytype_des3_derived,
|
||||||
&keytype_des3_derived,
|
&checksum_sha1,
|
||||||
&checksum_sha1,
|
&checksum_hmac_sha1_des3,
|
||||||
&checksum_hmac_sha1_des3,
|
F_DERIVED,
|
||||||
F_DERIVED,
|
DES3_CBC_encrypt,
|
||||||
DES3_CBC_encrypt,
|
};
|
||||||
},
|
static struct encryption_type enctype_old_des3_cbc_sha1 = {
|
||||||
{
|
ETYPE_OLD_DES3_CBC_SHA1,
|
||||||
ETYPE_OLD_DES3_CBC_SHA1,
|
"old-des3-cbc-sha1",
|
||||||
"old-des3-cbc-sha1",
|
8,
|
||||||
8,
|
8,
|
||||||
8,
|
&keytype_des3,
|
||||||
&keytype_des3,
|
&checksum_sha1,
|
||||||
&checksum_sha1,
|
&checksum_hmac_sha1_des3,
|
||||||
&checksum_hmac_sha1_des3,
|
0,
|
||||||
0,
|
DES3_CBC_encrypt,
|
||||||
DES3_CBC_encrypt,
|
};
|
||||||
},
|
static struct encryption_type enctype_des_cbc_none = {
|
||||||
{
|
ETYPE_DES_CBC_NONE,
|
||||||
ETYPE_DES_CBC_NONE,
|
"des-cbc-none",
|
||||||
"des-cbc-none",
|
8,
|
||||||
8,
|
0,
|
||||||
0,
|
&keytype_des,
|
||||||
&keytype_des,
|
&checksum_none,
|
||||||
&checksum_none,
|
NULL,
|
||||||
NULL,
|
F_PSEUDO,
|
||||||
F_PSEUDO,
|
DES_CBC_encrypt_null_ivec,
|
||||||
DES_CBC_encrypt_null_ivec,
|
};
|
||||||
},
|
static struct encryption_type enctype_des_cfb64_none = {
|
||||||
{
|
ETYPE_DES_CFB64_NONE,
|
||||||
ETYPE_DES_CFB64_NONE,
|
"des-cfb64-none",
|
||||||
"des-cfb64-none",
|
1,
|
||||||
1,
|
0,
|
||||||
0,
|
&keytype_des,
|
||||||
&keytype_des,
|
&checksum_none,
|
||||||
&checksum_none,
|
NULL,
|
||||||
NULL,
|
F_PSEUDO,
|
||||||
F_PSEUDO,
|
DES_CFB64_encrypt_null_ivec,
|
||||||
DES_CFB64_encrypt_null_ivec,
|
};
|
||||||
},
|
static struct encryption_type enctype_des_pcbc_none = {
|
||||||
{
|
ETYPE_DES_PCBC_NONE,
|
||||||
ETYPE_DES_PCBC_NONE,
|
"des-pcbc-none",
|
||||||
"des-pcbc-none",
|
8,
|
||||||
8,
|
0,
|
||||||
0,
|
&keytype_des,
|
||||||
&keytype_des,
|
&checksum_none,
|
||||||
&checksum_none,
|
NULL,
|
||||||
NULL,
|
F_PSEUDO,
|
||||||
F_PSEUDO,
|
DES_PCBC_encrypt_key_ivec,
|
||||||
DES_PCBC_encrypt_key_ivec,
|
};
|
||||||
},
|
static struct encryption_type enctype_des3_cbc_none = {
|
||||||
{
|
ETYPE_DES3_CBC_NONE,
|
||||||
ETYPE_DES3_CBC_NONE,
|
"des3-cbc-none",
|
||||||
"des3-cbc-none",
|
8,
|
||||||
8,
|
0,
|
||||||
0,
|
&keytype_des3_derived,
|
||||||
&keytype_des3_derived,
|
&checksum_none,
|
||||||
&checksum_none,
|
NULL,
|
||||||
NULL,
|
F_PSEUDO,
|
||||||
F_PSEUDO,
|
DES3_CBC_encrypt,
|
||||||
DES3_CBC_encrypt,
|
};
|
||||||
},
|
static struct encryption_type enctype_des3_cbc_none_ivec = {
|
||||||
{
|
ETYPE_DES3_CBC_NONE_IVEC,
|
||||||
ETYPE_DES3_CBC_NONE_IVEC,
|
"des3-cbc-none-ivec",
|
||||||
"des3-cbc-none-ivec",
|
8,
|
||||||
8,
|
0,
|
||||||
0,
|
&keytype_des3_derived,
|
||||||
&keytype_des3_derived,
|
&checksum_none,
|
||||||
&checksum_none,
|
NULL,
|
||||||
NULL,
|
F_PSEUDO,
|
||||||
F_PSEUDO,
|
DES3_CBC_encrypt_ivec,
|
||||||
DES3_CBC_encrypt_ivec,
|
};
|
||||||
}
|
|
||||||
|
static struct encryption_type *etypes[] = {
|
||||||
|
&enctype_null,
|
||||||
|
&enctype_des_cbc_crc,
|
||||||
|
&enctype_des_cbc_md4,
|
||||||
|
&enctype_des_cbc_md5,
|
||||||
|
&enctype_arcfour_hmac_md5,
|
||||||
|
&enctype_des3_cbc_md5,
|
||||||
|
&enctype_des3_cbc_sha1,
|
||||||
|
&enctype_old_des3_cbc_sha1,
|
||||||
|
&enctype_des_cbc_none,
|
||||||
|
&enctype_des_cfb64_none,
|
||||||
|
&enctype_des_pcbc_none,
|
||||||
|
&enctype_des3_cbc_none,
|
||||||
|
&enctype_des3_cbc_none_ivec
|
||||||
};
|
};
|
||||||
|
|
||||||
static unsigned num_etypes = sizeof(etypes) / sizeof(etypes[0]);
|
static unsigned num_etypes = sizeof(etypes) / sizeof(etypes[0]);
|
||||||
@@ -1974,8 +1988,8 @@ _find_enctype(krb5_enctype type)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i = 0; i < num_etypes; i++)
|
for(i = 0; i < num_etypes; i++)
|
||||||
if(etypes[i].type == type)
|
if(etypes[i]->type == type)
|
||||||
return &etypes[i];
|
return etypes[i];
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2002,8 +2016,8 @@ krb5_string_to_enctype(krb5_context context,
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i = 0; i < num_etypes; i++)
|
for(i = 0; i < num_etypes; i++)
|
||||||
if(strcasecmp(etypes[i].name, string) == 0){
|
if(strcasecmp(etypes[i]->name, string) == 0){
|
||||||
*etype = etypes[i].type;
|
*etype = etypes[i]->type;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return KRB5_PROG_ETYPE_NOSUPP;
|
return KRB5_PROG_ETYPE_NOSUPP;
|
||||||
@@ -2047,8 +2061,8 @@ krb5_keytype_to_enctypes (krb5_context context,
|
|||||||
int *ret;
|
int *ret;
|
||||||
|
|
||||||
for (i = num_etypes - 1; i >= 0; --i) {
|
for (i = num_etypes - 1; i >= 0; --i) {
|
||||||
if (etypes[i].keytype->type == keytype
|
if (etypes[i]->keytype->type == keytype
|
||||||
&& !(etypes[i].flags & F_PSEUDO))
|
&& !(etypes[i]->flags & F_PSEUDO))
|
||||||
++n;
|
++n;
|
||||||
}
|
}
|
||||||
ret = malloc(n * sizeof(int));
|
ret = malloc(n * sizeof(int));
|
||||||
@@ -2056,9 +2070,9 @@ krb5_keytype_to_enctypes (krb5_context context,
|
|||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
n = 0;
|
n = 0;
|
||||||
for (i = num_etypes - 1; i >= 0; --i) {
|
for (i = num_etypes - 1; i >= 0; --i) {
|
||||||
if (etypes[i].keytype->type == keytype
|
if (etypes[i]->keytype->type == keytype
|
||||||
&& !(etypes[i].flags & F_PSEUDO))
|
&& !(etypes[i]->flags & F_PSEUDO))
|
||||||
ret[n++] = etypes[i].type;
|
ret[n++] = etypes[i]->type;
|
||||||
}
|
}
|
||||||
*len = n;
|
*len = n;
|
||||||
*val = ret;
|
*val = ret;
|
||||||
@@ -2227,9 +2241,9 @@ encrypt_internal(krb5_context context,
|
|||||||
memcpy(q, data, len);
|
memcpy(q, data, len);
|
||||||
|
|
||||||
ret = create_checksum(context,
|
ret = create_checksum(context,
|
||||||
NULL,
|
crypto,
|
||||||
|
0,
|
||||||
0,
|
0,
|
||||||
CHECKSUMTYPE(et->cksumtype),
|
|
||||||
p,
|
p,
|
||||||
block_sz,
|
block_sz,
|
||||||
&cksum);
|
&cksum);
|
||||||
|
Reference in New Issue
Block a user