diff options
author | John Kohl <jtkohl@mit.edu> | 1990-10-10 17:19:54 +0000 |
---|---|---|
committer | John Kohl <jtkohl@mit.edu> | 1990-10-10 17:19:54 +0000 |
commit | c1b41eb1f2af031cb9e999c274378653f5ce3872 (patch) | |
tree | 3b0b7b424958c1fa55797809f678df274a03a171 /src/lib/krb5/krb/decode_kdc.c | |
parent | 8c6003de6cf943286a987fc2494078754c156704 (diff) | |
download | krb5-c1b41eb1f2af031cb9e999c274378653f5ce3872.tar.gz krb5-c1b41eb1f2af031cb9e999c274378653f5ce3872.tar.xz krb5-c1b41eb1f2af031cb9e999c274378653f5ce3872.zip |
changes for new encryption data structures
and new message styles for KDC requests.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1226 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/decode_kdc.c')
-rw-r--r-- | src/lib/krb5/krb/decode_kdc.c | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/src/lib/krb5/krb/decode_kdc.c b/src/lib/krb5/krb/decode_kdc.c index 2eea0c2d1b..f8e30e7220 100644 --- a/src/lib/krb5/krb/decode_kdc.c +++ b/src/lib/krb5/krb/decode_kdc.c @@ -25,7 +25,7 @@ static char rcsid_decode_kdc_c[] = /* Takes a KDC_REP message and decrypts encrypted part using etype and *key, putting result in *rep. - dec_rep->client,ticket,session.last_req,server,caddrs + dec_rep->client,ticket,session,last_req,server,caddrs are all set to allocated storage which should be freed by the caller when finished with the response. @@ -50,25 +50,17 @@ OLDDECLARG(krb5_kdc_rep **, dec_rep) /* XXX maybe caller should specify type expected? */ - if (!krb5_is_kdc_rep(enc_rep)) - return KRB5KRB_AP_ERR_MSG_TYPE; - retval = decode_krb5_as_rep(enc_rep, &local_dec_rep); - switch (retval) { - case ISODE_50_LOCAL_ERR_BADMSGTYPE: + if (krb5_is_as_rep(enc_rep)) + retval = decode_krb5_as_rep(enc_rep, &local_dec_rep); + else if (krb5_is_tgs_rep(enc_rep)) retval = decode_krb5_tgs_rep(enc_rep, &local_dec_rep); - switch (retval) { - case 0: - break; - default: - return(retval); - } - case 0: - break; - default: - return (retval); - } + else + return KRB5KRB_AP_ERR_MSG_TYPE; + + if (retval) + return retval; - if (local_dec_rep->etype != etype) { + if (local_dec_rep->enc_part.etype != etype) { krb5_free_kdc_rep(local_dec_rep); return KRB5_WRONG_ETYPE; } |