(krb5_get_credentials): Use `mk_req_extended' and remove old code.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1367 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1997-03-12 11:31:23 +00:00
parent 3d57f8add6
commit 231c4f167a

View File

@@ -16,13 +16,7 @@ key_proc (krb5_context context,
krb5_const_pointer keyseed, krb5_const_pointer keyseed,
krb5_keyblock **key) krb5_keyblock **key)
{ {
*key = malloc (sizeof (**key)); *key = (krb5_keyblock *)keyseed;
if (*key == NULL)
return ENOMEM;
(*key)->keytype = type;
(*key)->contents.length = 8;
(*key)->contents.data = malloc(8);
memcpy((*key)->contents.data, keyseed, 8);
return 0; return 0;
} }
@@ -59,10 +53,6 @@ krb5_get_credentials (krb5_context context,
PA_DATA foo; PA_DATA foo;
des_key_schedule schedule;
des_cblock key;
/* /*
* XXX - Check if cred found in ccache * XXX - Check if cred found in ccache
*/ */
@@ -123,20 +113,37 @@ krb5_get_credentials (krb5_context context,
unsigned char buf[1024]; unsigned char buf[1024];
krb5_auth_context ac = NULL; krb5_auth_context ac = NULL;
int len; int len;
krb5_creds tmp_cred;
len = encode_KDC_REQ_BODY(buf + sizeof(buf) - 1, sizeof(buf), len = encode_KDC_REQ_BODY(buf + sizeof(buf) - 1, sizeof(buf),
&a.req_body); &a.req_body);
in_data.length; in_data.length = len;
in_data.data = buf + sizeof(buf) - len; in_data.data = buf + sizeof(buf) - len;
err = krb5_mk_req(context, tmp_cred.client = NULL;
&ac, err = krb5_build_principal(context,
0, &tmp_cred.server,
strlen(a.req_body.realm),
a.req_body.realm,
"krbtgt", "krbtgt",
a.req_body.realm, a.req_body.realm,
&in_data, NULL);
if (err)
return err;
err = krb5_get_credentials (context,
0,
ccache, ccache,
&tmp_cred,
out_creds);
if (err)
return err;
err = krb5_mk_req_extended(context,
&ac,
0,
&in_data,
*out_creds,
&foo.padata_value); &foo.padata_value);
if(err) if(err)
return err; return err;
@@ -193,7 +200,10 @@ krb5_get_credentials (krb5_context context,
len = decode_TGS_REP(resp.data, resp.length, &rep.part1); len = decode_TGS_REP(resp.data, resp.length, &rep.part1);
if(len < 0) if(len < 0)
return ASN1_PARSE_ERROR; return ASN1_PARSE_ERROR;
err = extract_ticket(context, &rep, *out_creds, key_proc, key, NULL, NULL); err = extract_ticket(context, &rep, *out_creds, key_proc,
&(*out_creds)->session,
NULL,
NULL);
if(err) if(err)
return err; return err;
return krb5_cc_store_cred (context, ccache, *out_creds); return krb5_cc_store_cred (context, ccache, *out_creds);