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:
Johan Danielsson
2001-05-02 08:58:14 +00:00
parent 38e2f24368
commit 3937ac0261

View File

@@ -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);