Fix for new authdata.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4330 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -50,7 +50,7 @@ krb5_free_creds_contents (krb5_context context, krb5_creds *c)
|
||||
krb5_free_keyblock_contents (context, &c->session);
|
||||
krb5_data_free (&c->ticket);
|
||||
krb5_data_free (&c->second_ticket);
|
||||
krb5_data_free (&c->authdata);
|
||||
free_AuthorizationData (&c->authdata);
|
||||
krb5_free_addresses (context, &c->addresses);
|
||||
return 0;
|
||||
}
|
||||
@@ -83,9 +83,7 @@ krb5_copy_creds_contents (krb5_context context,
|
||||
incred->second_ticket.length);
|
||||
if (ret)
|
||||
goto fail;
|
||||
ret = krb5_data_copy (&c->authdata,
|
||||
incred->authdata.data,
|
||||
incred->authdata.length);
|
||||
ret = copy_AuthorizationData(&incred->authdata, &c->authdata);
|
||||
if (ret)
|
||||
goto fail;
|
||||
ret = krb5_copy_addresses (context,
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -258,8 +258,8 @@ _krb5_extract_ticket(krb5_context context,
|
||||
}
|
||||
creds->flags.b = rep->part2.flags;
|
||||
|
||||
creds->authdata.length = 0;
|
||||
creds->authdata.data = NULL;
|
||||
creds->authdata.len = 0;
|
||||
creds->authdata.val = NULL;
|
||||
creds->session.keyvalue.length = 0;
|
||||
creds->session.keyvalue.data = NULL;
|
||||
creds->session.keytype = rep->part2.key.keytype;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -465,13 +465,37 @@ krb5_ret_addrs(krb5_storage *sp, krb5_addresses *adr)
|
||||
}
|
||||
|
||||
krb5_error_code
|
||||
krb5_store_authdata(krb5_storage *sp, krb5_data p)
|
||||
krb5_store_authdata(krb5_storage *sp, krb5_authdata auth)
|
||||
{
|
||||
return krb5_store_data(sp, p);
|
||||
krb5_error_code ret;
|
||||
int i;
|
||||
ret = krb5_store_int32(sp, auth.len);
|
||||
if(ret) return ret;
|
||||
for(i = 0; i < auth.len; i++){
|
||||
ret = krb5_store_int16(sp, auth.val[i].ad_type);
|
||||
if(ret) break;
|
||||
ret = krb5_store_data(sp, auth.val[i].ad_data);
|
||||
if(ret) break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
krb5_error_code
|
||||
krb5_ret_authdata(krb5_storage *sp, krb5_data *auth)
|
||||
krb5_ret_authdata(krb5_storage *sp, krb5_authdata *auth)
|
||||
{
|
||||
return krb5_ret_data(sp, auth);
|
||||
krb5_error_code ret;
|
||||
int32_t tmp;
|
||||
int16_t tmp2;
|
||||
int i;
|
||||
ret = krb5_ret_int32(sp, &tmp);
|
||||
if(ret) return ret;
|
||||
ALLOC_SEQ(auth, tmp);
|
||||
for(i = 0; i < tmp; i++){
|
||||
ret = krb5_ret_int16(sp, &tmp2);
|
||||
if(ret) break;
|
||||
auth->val[i].ad_type = tmp2;
|
||||
ret = krb5_ret_data(sp, &auth->val[i].ad_data);
|
||||
if(ret) break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user