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_free_keyblock_contents (context, &c->session);
|
||||||
krb5_data_free (&c->ticket);
|
krb5_data_free (&c->ticket);
|
||||||
krb5_data_free (&c->second_ticket);
|
krb5_data_free (&c->second_ticket);
|
||||||
krb5_data_free (&c->authdata);
|
free_AuthorizationData (&c->authdata);
|
||||||
krb5_free_addresses (context, &c->addresses);
|
krb5_free_addresses (context, &c->addresses);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -83,9 +83,7 @@ krb5_copy_creds_contents (krb5_context context,
|
|||||||
incred->second_ticket.length);
|
incred->second_ticket.length);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto fail;
|
goto fail;
|
||||||
ret = krb5_data_copy (&c->authdata,
|
ret = copy_AuthorizationData(&incred->authdata, &c->authdata);
|
||||||
incred->authdata.data,
|
|
||||||
incred->authdata.length);
|
|
||||||
if (ret)
|
if (ret)
|
||||||
goto fail;
|
goto fail;
|
||||||
ret = krb5_copy_addresses (context,
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -258,8 +258,8 @@ _krb5_extract_ticket(krb5_context context,
|
|||||||
}
|
}
|
||||||
creds->flags.b = rep->part2.flags;
|
creds->flags.b = rep->part2.flags;
|
||||||
|
|
||||||
creds->authdata.length = 0;
|
creds->authdata.len = 0;
|
||||||
creds->authdata.data = NULL;
|
creds->authdata.val = NULL;
|
||||||
creds->session.keyvalue.length = 0;
|
creds->session.keyvalue.length = 0;
|
||||||
creds->session.keyvalue.data = NULL;
|
creds->session.keyvalue.data = NULL;
|
||||||
creds->session.keytype = rep->part2.key.keytype;
|
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).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -465,13 +465,37 @@ krb5_ret_addrs(krb5_storage *sp, krb5_addresses *adr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
krb5_error_code
|
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_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