-: 0:Source:decode_kdc.c -: 0:Graph:/var/tsitkova/Sources/v10/trunk/src/lib/krb5/krb/decode_kdc.so.gcno -: 0:Data:/var/tsitkova/Sources/v10/trunk/src/lib/krb5/krb/decode_kdc.so.gcda -: 0:Runs:1602 -: 0:Programs:1 -: 1:/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ -: 2:/* lib/krb5/krb/decode_kdc.c */ -: 3:/* -: 4: * Copyright 1990 by the Massachusetts Institute of Technology. -: 5: * All Rights Reserved. -: 6: * -: 7: * Export of this software from the United States of America may -: 8: * require a specific license from the United States Government. -: 9: * It is the responsibility of any person or organization contemplating -: 10: * export to obtain such a license before exporting. -: 11: * -: 12: * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -: 13: * distribute this software and its documentation for any purpose and -: 14: * without fee is hereby granted, provided that the above copyright -: 15: * notice appear in all copies and that both that copyright notice and -: 16: * this permission notice appear in supporting documentation, and that -: 17: * the name of M.I.T. not be used in advertising or publicity pertaining -: 18: * to distribution of the software without specific, written prior -: 19: * permission. Furthermore if you modify this software you must label -: 20: * your software as modified software and not distribute it in such a -: 21: * fashion that it might be confused with the original M.I.T. software. -: 22: * M.I.T. makes no representations about the suitability of -: 23: * this software for any purpose. It is provided "as is" without express -: 24: * or implied warranty. -: 25: */ -: 26: -: 27:#include "k5-int.h" -: 28:#include "int-proto.h" -: 29: -: 30:/* -: 31: Takes a KDC_REP message and decrypts encrypted part using etype and -: 32: *key, putting result in *rep. -: 33: dec_rep->client,ticket,session,last_req,server,caddrs -: 34: are all set to allocated storage which should be freed by the caller -: 35: when finished with the response. -: 36: -: 37: If the response isn't a KDC_REP (tgs or as), it returns an error from -: 38: the decoding routines. -: 39: -: 40: returns errors from encryption routines, system errors -: 41:*/ -: 42: -: 43:krb5_error_code 129: 44:krb5int_decode_tgs_rep(krb5_context context, krb5_data *enc_rep, const krb5_keyblock *key, -: 45: krb5_keyusage usage, krb5_kdc_rep **dec_rep) -: 46:{ -: 47: krb5_error_code retval; -: 48: krb5_kdc_rep *local_dec_rep; -: 49: 129: 50: if (krb5_is_as_rep(enc_rep)) { #####: 51: retval = decode_krb5_as_rep(enc_rep, &local_dec_rep); 258: 52: } else if (krb5_is_tgs_rep(enc_rep)) { 129: 53: retval = decode_krb5_tgs_rep(enc_rep, &local_dec_rep); -: 54: } else { #####: 55: return KRB5KRB_AP_ERR_MSG_TYPE; -: 56: } -: 57: 129: 58: if (retval) #####: 59: return retval; -: 60: 129: 61: if ((retval = krb5_kdc_rep_decrypt_proc(context, key, &usage, -: 62: local_dec_rep))) #####: 63: krb5_free_kdc_rep(context, local_dec_rep); -: 64: else 129: 65: *dec_rep = local_dec_rep; 129: 66: return(retval); -: 67:}