Rename PA-KEY-INFO -> ETYPE-INFO.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4618 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -242,8 +242,8 @@ get_pa_etype_info(METHOD_DATA *md, hdb_entry *client)
|
|||||||
{
|
{
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
int i;
|
int i;
|
||||||
PA_KEY_INFO pa;
|
ETYPE_INFO pa;
|
||||||
PA_KEY_INFO_ENTRY *tmp;
|
ETYPE_INFO_ENTRY *tmp;
|
||||||
unsigned char *buf;
|
unsigned char *buf;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
@@ -264,23 +264,24 @@ get_pa_etype_info(METHOD_DATA *md, hdb_entry *client)
|
|||||||
for(e = etypes; *e; e++){
|
for(e = etypes; *e; e++){
|
||||||
tmp = realloc(pa.val, (pa.len + 1) * sizeof(*pa.val));
|
tmp = realloc(pa.val, (pa.len + 1) * sizeof(*pa.val));
|
||||||
if(tmp == NULL) {
|
if(tmp == NULL) {
|
||||||
free_PA_KEY_INFO(&pa);
|
free_ETYPE_INFO(&pa);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
pa.val = tmp;
|
pa.val = tmp;
|
||||||
pa.val[pa.len].keytype = *e;
|
pa.val[pa.len].etype = *e;
|
||||||
|
ALLOC(pa.val[pa.len].salttype);
|
||||||
if(client->keys.val[i].salt){
|
if(client->keys.val[i].salt){
|
||||||
pa.val[pa.len].salttype = client->keys.val[i].salt->type;
|
*pa.val[pa.len].salttype = client->keys.val[i].salt->type;
|
||||||
ALLOC(pa.val[pa.len].salt);
|
ALLOC(pa.val[pa.len].salt);
|
||||||
ret = copy_octet_string(&client->keys.val[i].salt->salt,
|
ret = copy_octet_string(&client->keys.val[i].salt->salt,
|
||||||
pa.val[pa.len].salt);
|
pa.val[pa.len].salt);
|
||||||
if(tmp == NULL) {
|
if(tmp == NULL) {
|
||||||
free_PA_KEY_INFO(&pa);
|
free_ETYPE_INFO(&pa);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pa.val[pa.len].salttype = pa_pw_salt;
|
*pa.val[pa.len].salttype = pa_pw_salt;
|
||||||
pa.val[pa.len].salt = NULL;
|
pa.val[pa.len].salt = NULL;
|
||||||
}
|
}
|
||||||
pa.len++;
|
pa.len++;
|
||||||
@@ -288,10 +289,10 @@ get_pa_etype_info(METHOD_DATA *md, hdb_entry *client)
|
|||||||
if(context->ktype_is_etype)
|
if(context->ktype_is_etype)
|
||||||
free(etypes);
|
free(etypes);
|
||||||
}
|
}
|
||||||
len = length_PA_KEY_INFO(&pa);
|
len = length_ETYPE_INFO(&pa);
|
||||||
buf = malloc(len);
|
buf = malloc(len);
|
||||||
ret = encode_PA_KEY_INFO(buf + len - 1, len, &pa, &len);
|
ret = encode_ETYPE_INFO(buf + len - 1, len, &pa, &len);
|
||||||
free_PA_KEY_INFO(&pa);
|
free_ETYPE_INFO(&pa);
|
||||||
if(ret) {
|
if(ret) {
|
||||||
free(buf);
|
free(buf);
|
||||||
return ret;
|
return ret;
|
||||||
@@ -301,7 +302,7 @@ get_pa_etype_info(METHOD_DATA *md, hdb_entry *client)
|
|||||||
free(buf);
|
free(buf);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
md->val[md->len - 1].padata_type = pa_key_info;
|
md->val[md->len - 1].padata_type = pa_etype_info;
|
||||||
md->val[md->len - 1].padata_value.length = len;
|
md->val[md->len - 1].padata_value.length = len;
|
||||||
md->val[md->len - 1].padata_value.data = buf;
|
md->val[md->len - 1].padata_value.data = buf;
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -32,6 +32,8 @@ BUILT_SOURCES = \
|
|||||||
asn1_EncTicketPart.c \
|
asn1_EncTicketPart.c \
|
||||||
asn1_EncryptedData.c \
|
asn1_EncryptedData.c \
|
||||||
asn1_EncryptionKey.c \
|
asn1_EncryptionKey.c \
|
||||||
|
asn1_ETYPE_INFO.c \
|
||||||
|
asn1_ETYPE_INFO_ENTRY.c \
|
||||||
asn1_HostAddress.c \
|
asn1_HostAddress.c \
|
||||||
asn1_HostAddresses.c \
|
asn1_HostAddresses.c \
|
||||||
asn1_KDCOptions.c \
|
asn1_KDCOptions.c \
|
||||||
@@ -49,8 +51,6 @@ BUILT_SOURCES = \
|
|||||||
asn1_METHOD_DATA.c \
|
asn1_METHOD_DATA.c \
|
||||||
asn1_PA_DATA.c \
|
asn1_PA_DATA.c \
|
||||||
asn1_PA_ENC_TS_ENC.c \
|
asn1_PA_ENC_TS_ENC.c \
|
||||||
asn1_PA_KEY_INFO.c \
|
|
||||||
asn1_PA_KEY_INFO_ENTRY.c \
|
|
||||||
asn1_Principal.c \
|
asn1_Principal.c \
|
||||||
asn1_PrincipalName.c \
|
asn1_PrincipalName.c \
|
||||||
asn1_Realm.c \
|
asn1_Realm.c \
|
||||||
@@ -80,6 +80,8 @@ foo = \
|
|||||||
asn1_EncTicketPart.x \
|
asn1_EncTicketPart.x \
|
||||||
asn1_EncryptedData.x \
|
asn1_EncryptedData.x \
|
||||||
asn1_EncryptionKey.x \
|
asn1_EncryptionKey.x \
|
||||||
|
asn1_ETYPE_INFO.x \
|
||||||
|
asn1_ETYPE_INFO_ENTRY.x \
|
||||||
asn1_HostAddress.x \
|
asn1_HostAddress.x \
|
||||||
asn1_HostAddresses.x \
|
asn1_HostAddresses.x \
|
||||||
asn1_KDCOptions.x \
|
asn1_KDCOptions.x \
|
||||||
@@ -97,8 +99,6 @@ foo = \
|
|||||||
asn1_METHOD_DATA.x \
|
asn1_METHOD_DATA.x \
|
||||||
asn1_PA_DATA.x \
|
asn1_PA_DATA.x \
|
||||||
asn1_PA_ENC_TS_ENC.x \
|
asn1_PA_ENC_TS_ENC.x \
|
||||||
asn1_PA_KEY_INFO.x \
|
|
||||||
asn1_PA_KEY_INFO_ENTRY.x \
|
|
||||||
asn1_Principal.x \
|
asn1_Principal.x \
|
||||||
asn1_PrincipalName.x \
|
asn1_PrincipalName.x \
|
||||||
asn1_Realm.x \
|
asn1_Realm.x \
|
||||||
|
@@ -155,13 +155,13 @@ PA-DATA ::= SEQUENCE {
|
|||||||
padata-value[2] OCTET STRING
|
padata-value[2] OCTET STRING
|
||||||
}
|
}
|
||||||
|
|
||||||
PA-KEY-INFO-ENTRY ::= SEQUENCE {
|
ETYPE-INFO-ENTRY ::= SEQUENCE {
|
||||||
keytype[0] INTEGER,
|
etype[0] INTEGER,
|
||||||
salttype[1] INTEGER,
|
salt[1] OCTET STRING OPTIONAL,
|
||||||
salt[2] OCTET STRING OPTIONAL
|
salttype[2] INTEGER OPTIONAL
|
||||||
}
|
}
|
||||||
|
|
||||||
PA-KEY-INFO ::= SEQUENCE OF PA-KEY-INFO-ENTRY
|
ETYPE-INFO ::= SEQUENCE OF ETYPE-INFO-ENTRY
|
||||||
|
|
||||||
METHOD-DATA ::= SEQUENCE OF PA-DATA
|
METHOD-DATA ::= SEQUENCE OF PA-DATA
|
||||||
|
|
||||||
@@ -363,7 +363,6 @@ pa-pk-as-rep INTEGER ::= 15 -- (pkinit)
|
|||||||
pa-pk-as-sign INTEGER ::= 16 -- (pkinit)
|
pa-pk-as-sign INTEGER ::= 16 -- (pkinit)
|
||||||
pa-pk-key-req INTEGER ::= 17 -- (pkinit)
|
pa-pk-key-req INTEGER ::= 17 -- (pkinit)
|
||||||
pa-pk-key-rep INTEGER ::= 18 -- (pkinit)
|
pa-pk-key-rep INTEGER ::= 18 -- (pkinit)
|
||||||
pa-key-info INTEGER ::= 19
|
|
||||||
-- checksumtypes
|
-- checksumtypes
|
||||||
|
|
||||||
CRC32 INTEGER ::= 1
|
CRC32 INTEGER ::= 1
|
||||||
|
@@ -199,38 +199,38 @@ krb5_encode_EncKrbCredPart (krb5_context context,
|
|||||||
}
|
}
|
||||||
|
|
||||||
krb5_error_code
|
krb5_error_code
|
||||||
krb5_decode_PA_KEY_INFO (krb5_context context,
|
krb5_decode_ETYPE_INFO (krb5_context context,
|
||||||
const void *data,
|
const void *data,
|
||||||
size_t length,
|
size_t length,
|
||||||
PA_KEY_INFO *t,
|
ETYPE_INFO *t,
|
||||||
size_t *len)
|
size_t *len)
|
||||||
{
|
{
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
int i;
|
int i;
|
||||||
ret = decode_PA_KEY_INFO((void*)data, length, t, len);
|
ret = decode_ETYPE_INFO((void*)data, length, t, len);
|
||||||
if(ret)
|
if(ret)
|
||||||
return ret;
|
return ret;
|
||||||
for(i = 0; i < t->len; i++) {
|
for(i = 0; i < t->len; i++) {
|
||||||
if((ret = krb5_decode_keytype(context, &t->val[i].keytype, 1)))
|
if((ret = krb5_decode_keytype(context, &t->val[i].etype, 1)))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
krb5_error_code
|
krb5_error_code
|
||||||
krb5_encode_PA_KEY_INFO (krb5_context context,
|
krb5_encode_ETYPE_INFO (krb5_context context,
|
||||||
void *data,
|
void *data,
|
||||||
size_t length,
|
size_t length,
|
||||||
PA_KEY_INFO *t,
|
ETYPE_INFO *t,
|
||||||
size_t *len)
|
size_t *len)
|
||||||
{
|
{
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
int i;
|
int i;
|
||||||
/* XXX this will break, since we need one key-info for each enctype */
|
/* XXX this will break, since we need one key-info for each enctype */
|
||||||
/* XXX or do we? */
|
/* XXX or do we? */
|
||||||
for(i = 0; i < t->len; i++)
|
for(i = 0; i < t->len; i++)
|
||||||
if((ret = krb5_decode_keytype(context, &t->val[i].keytype, 0)))
|
if((ret = krb5_decode_keytype(context, &t->val[i].etype, 0)))
|
||||||
break;
|
break;
|
||||||
if(ret) return ret;
|
if(ret) return ret;
|
||||||
return encode_PA_KEY_INFO (data, length, t, len);
|
return encode_ETYPE_INFO (data, length, t, len);
|
||||||
}
|
}
|
||||||
|
@@ -478,8 +478,9 @@ init_as_req (krb5_context context,
|
|||||||
}
|
}
|
||||||
a->padata->val = tmp;
|
a->padata->val = tmp;
|
||||||
for(j = 0; j < preauth->val[i].info.len; j++) {
|
for(j = 0; j < preauth->val[i].info.len; j++) {
|
||||||
krb5_keytype keytype = preauth->val[i].info.val[j].keytype;
|
krb5_keytype keytype = preauth->val[i].info.val[j].etype;
|
||||||
if(preauth->val[i].info.val[j].salttype ==
|
if(preauth->val[i].info.val[j].salttype &&
|
||||||
|
*preauth->val[i].info.val[j].salttype ==
|
||||||
KRB5_PA_AFS3_SALT) {
|
KRB5_PA_AFS3_SALT) {
|
||||||
if(keytype != KEYTYPE_DES) {
|
if(keytype != KEYTYPE_DES) {
|
||||||
ret = KRB5_PROG_KEYTYPE_NOSUPP;
|
ret = KRB5_PROG_KEYTYPE_NOSUPP;
|
||||||
|
Reference in New Issue
Block a user