updated to new type of krb5_address-s
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2053 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -70,9 +70,11 @@ extract_ticket(krb5_context context,
|
|||||||
err = (*decrypt_proc)(context, key, decryptarg, rep);
|
err = (*decrypt_proc)(context, key, decryptarg, rep);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
#if 0 /* moved to krb5_get_in_tkt */
|
||||||
memset (key->keyvalue.data, 0, key->keyvalue.length);
|
memset (key->keyvalue.data, 0, key->keyvalue.length);
|
||||||
krb5_data_free (&key->keyvalue);
|
krb5_data_free (&key->keyvalue);
|
||||||
free (key);
|
free (key);
|
||||||
|
#endif
|
||||||
|
|
||||||
principalname2krb5_principal(&creds->server,
|
principalname2krb5_principal(&creds->server,
|
||||||
rep->part1.ticket.sname,
|
rep->part1.ticket.sname,
|
||||||
@@ -92,8 +94,8 @@ extract_ticket(krb5_context context,
|
|||||||
creds->times.renew_till = 0;
|
creds->times.renew_till = 0;
|
||||||
creds->times.authtime = rep->part2.authtime;
|
creds->times.authtime = rep->part2.authtime;
|
||||||
creds->times.endtime = rep->part2.endtime;
|
creds->times.endtime = rep->part2.endtime;
|
||||||
creds->addresses.number = 0;
|
creds->addresses.len = 0;
|
||||||
creds->addresses.addrs = NULL;
|
creds->addresses.val = NULL;
|
||||||
#if 0 /* What? */
|
#if 0 /* What? */
|
||||||
if (rep->part2.req.values)
|
if (rep->part2.req.values)
|
||||||
free (rep->part2.req.values);
|
free (rep->part2.req.values);
|
||||||
@@ -136,7 +138,8 @@ extract_ticket(krb5_context context,
|
|||||||
krb5_error_code
|
krb5_error_code
|
||||||
krb5_get_in_tkt(krb5_context context,
|
krb5_get_in_tkt(krb5_context context,
|
||||||
krb5_flags options,
|
krb5_flags options,
|
||||||
krb5_address *const *addrs,
|
const krb5_addresses *addrs,
|
||||||
|
/* krb5_address *const *addrs,*/
|
||||||
const krb5_enctype *etypes,
|
const krb5_enctype *etypes,
|
||||||
const krb5_preauthtype *ptypes,
|
const krb5_preauthtype *ptypes,
|
||||||
krb5_key_proc key_proc,
|
krb5_key_proc key_proc,
|
||||||
@@ -161,6 +164,7 @@ krb5_get_in_tkt(krb5_context context,
|
|||||||
|
|
||||||
a.pvno = 5;
|
a.pvno = 5;
|
||||||
a.msg_type = krb_as_req;
|
a.msg_type = krb_as_req;
|
||||||
|
a.req_body.kdc_options.forwardable = options; /* XXX */
|
||||||
a.req_body.cname = malloc(sizeof(*a.req_body.cname));
|
a.req_body.cname = malloc(sizeof(*a.req_body.cname));
|
||||||
a.req_body.sname = malloc(sizeof(*a.req_body.sname));
|
a.req_body.sname = malloc(sizeof(*a.req_body.sname));
|
||||||
krb5_principal2principalname (a.req_body.cname, creds->client);
|
krb5_principal2principalname (a.req_body.cname, creds->client);
|
||||||
@@ -175,7 +179,7 @@ krb5_get_in_tkt(krb5_context context,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
a.req_body.till = creds->times.endtime;
|
a.req_body.till = creds->times.endtime;
|
||||||
a.req_body.nonce = 17;
|
a.req_body.nonce = 17; /* XXX */
|
||||||
if (etypes)
|
if (etypes)
|
||||||
abort ();
|
abort ();
|
||||||
else {
|
else {
|
||||||
@@ -185,15 +189,16 @@ krb5_get_in_tkt(krb5_context context,
|
|||||||
return ret;
|
return ret;
|
||||||
a.req_body.etype.len = 1;
|
a.req_body.etype.len = 1;
|
||||||
}
|
}
|
||||||
if (addrs){
|
|
||||||
abort ();
|
|
||||||
} else {
|
|
||||||
a.req_body.addresses = malloc(sizeof(*a.req_body.addresses));
|
a.req_body.addresses = malloc(sizeof(*a.req_body.addresses));
|
||||||
|
|
||||||
ret = krb5_get_all_client_addrs ((krb5_addresses*)a.req_body.addresses);
|
if (addrs)
|
||||||
|
ret = krb5_copy_addresses(context, addrs, a.req_body.addresses);
|
||||||
|
else
|
||||||
|
ret = krb5_get_all_client_addrs (a.req_body.addresses);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
|
||||||
a.req_body.enc_authorization_data = NULL;
|
a.req_body.enc_authorization_data = NULL;
|
||||||
a.req_body.additional_tickets = NULL;
|
a.req_body.additional_tickets = NULL;
|
||||||
|
|
||||||
@@ -303,6 +308,9 @@ krb5_get_in_tkt(krb5_context context,
|
|||||||
|
|
||||||
ret = extract_ticket(context, &rep, creds, key, keyseed,
|
ret = extract_ticket(context, &rep, creds, key, keyseed,
|
||||||
decrypt_proc, decryptarg);
|
decrypt_proc, decryptarg);
|
||||||
|
memset (key->keyvalue.data, 0, key->keyvalue.length);
|
||||||
|
krb5_data_free (&key->keyvalue);
|
||||||
|
free (key);
|
||||||
|
|
||||||
free_KDC_REP(&rep.part1);
|
free_KDC_REP(&rep.part1);
|
||||||
if(ret)
|
if(ret)
|
||||||
|
Reference in New Issue
Block a user