diff options
Diffstat (limited to 'src/lib/krb5/krb/rd_req_dec.c')
-rw-r--r-- | src/lib/krb5/krb/rd_req_dec.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/lib/krb5/krb/rd_req_dec.c b/src/lib/krb5/krb/rd_req_dec.c index 10e566a..f6348c3 100644 --- a/src/lib/krb5/krb/rd_req_dec.c +++ b/src/lib/krb5/krb/rd_req_dec.c @@ -70,18 +70,18 @@ krb5_rd_req_decrypt_tkt_part(context, req, keytab) { krb5_error_code retval; - krb5_keytype keytype; + krb5_enctype enctype; krb5_keytab_entry ktent; /* - * OK we know the encryption type req->ticket->enc_part.etype, - * and now we need to get the keytype + * OK we know the encryption type req->ticket->enc_part.enctype, + * and now we need to get the enctype */ - keytype = krb5_csarray[req->ticket->enc_part.etype]->system->proto_keytype; + enctype = req->ticket->enc_part.enctype; if ((retval = krb5_kt_get_entry(context, keytab, req->ticket->server, req->ticket->enc_part.kvno, - keytype, &ktent))) + enctype, &ktent))) return retval; if ((retval = krb5_decrypt_tkt_part(context, &ktent.key, req->ticket))) @@ -301,15 +301,12 @@ decrypt_authenticator(context, request, authpp) sesskey = request->ticket->enc_part2->session; - if (!valid_keytype(sesskey->keytype)) - return KRB5_PROG_KEYTYPE_NOSUPP; + if (!valid_enctype(sesskey->enctype)) + return KRB5_PROG_ETYPE_NOSUPP; /* put together an eblock for this encryption */ - if (!valid_etype(request->authenticator.etype)) - return KRB5_PROG_ETYPE_NOSUPP; - - krb5_use_cstype(context, &eblock, request->authenticator.etype); + krb5_use_enctype(context, &eblock, request->authenticator.enctype); scratch.length = request->authenticator.ciphertext.length; if (!(scratch.data = malloc(scratch.length))) @@ -340,8 +337,6 @@ free(scratch.data);} /* now decode the decrypted stuff */ if (!(retval = decode_krb5_authenticator(&scratch, &local_auth))) { *authpp = local_auth; - if (local_auth->subkey) - local_auth->subkey->etype = request->authenticator.etype; } clean_scratch(); return retval; |