diff options
Diffstat (limited to 'src/lib/krb5/krb/decrypt_tk.c')
-rw-r--r-- | src/lib/krb5/krb/decrypt_tk.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/lib/krb5/krb/decrypt_tk.c b/src/lib/krb5/krb/decrypt_tk.c index f8850b178..3777ffa6b 100644 --- a/src/lib/krb5/krb/decrypt_tk.c +++ b/src/lib/krb5/krb/decrypt_tk.c @@ -46,27 +46,29 @@ krb5_decrypt_tkt_part(context, srv_key, ticket) krb5_data scratch; krb5_error_code retval; - if (!valid_enctype(ticket->enc_part.enctype)) + if (!valid_etype(ticket->enc_part.etype)) return KRB5_PROG_ETYPE_NOSUPP; /* put together an eblock for this encryption */ - krb5_use_enctype(context, &eblock, ticket->enc_part.enctype); + + krb5_use_cstype(context, &eblock, ticket->enc_part.etype); scratch.length = ticket->enc_part.ciphertext.length; if (!(scratch.data = malloc(ticket->enc_part.ciphertext.length))) return(ENOMEM); /* do any necessary key pre-processing */ - if (retval = krb5_process_key(context, &eblock, srv_key)) { + retval = krb5_process_key(context, &eblock, srv_key); + if (retval) { free(scratch.data); return(retval); } /* call the encryption routine */ - if (retval = krb5_decrypt(context, - (krb5_pointer) ticket->enc_part.ciphertext.data, - (krb5_pointer) scratch.data, scratch.length, - &eblock, 0)) { + retval = krb5_decrypt(context, (krb5_pointer) ticket->enc_part.ciphertext.data, + (krb5_pointer) scratch.data, + scratch.length, &eblock, 0); + if (retval) { (void) krb5_finish_key(context, &eblock); free(scratch.data); return retval; @@ -85,5 +87,6 @@ free(scratch.data);} ticket->enc_part2 = dec_tkt_part; } clean_scratch(); + ticket->enc_part2->session->etype = ticket->enc_part.etype; return retval; } |