summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/krb/decode_kdc.c
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-10-10 17:19:54 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-10-10 17:19:54 +0000
commitc1b41eb1f2af031cb9e999c274378653f5ce3872 (patch)
tree3b0b7b424958c1fa55797809f678df274a03a171 /src/lib/krb5/krb/decode_kdc.c
parent8c6003de6cf943286a987fc2494078754c156704 (diff)
downloadkrb5-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.c28
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;
}