-: 0:Source:pr_to_salt.c -: 0:Graph:/var/tsitkova/Sources/v10/trunk/src/lib/krb5/krb/pr_to_salt.so.gcno -: 0:Data:/var/tsitkova/Sources/v10/trunk/src/lib/krb5/krb/pr_to_salt.so.gcda -: 0:Runs:1602 -: 0:Programs:1 -: 1:/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ -: 2:/* lib/krb5/krb/pr_to_salt.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: -: 29:static krb5_error_code -: 30:principal2salt_internal(krb5_context, krb5_const_principal, -: 31: krb5_data *ret, int); -: 32: -: 33:/* -: 34: * Convert a krb5_principal into the default salt for that principal. -: 35: */ -: 36:static krb5_error_code 2963: 37:principal2salt_internal(krb5_context context, -: 38: register krb5_const_principal pr, -: 39: krb5_data *ret, int use_realm) -: 40:{ 2963: 41: unsigned int size = 0, offset=0; -: 42: krb5_int32 nelem; -: 43: register int i; -: 44: 2963: 45: if (pr == 0) { #####: 46: ret->length = 0; #####: 47: ret->data = 0; #####: 48: return 0; -: 49: } -: 50: 2963: 51: nelem = krb5_princ_size(context, pr); -: 52: 2963: 53: if (use_realm) 2960: 54: size += krb5_princ_realm(context, pr)->length; -: 55: 9300: 56: for (i = 0; i < (int) nelem; i++) 6337: 57: size += krb5_princ_component(context, pr, i)->length; -: 58: 2963: 59: ret->length = size; 2963: 60: if (!(ret->data = malloc (size))) #####: 61: return ENOMEM; -: 62: 2963: 63: if (use_realm) { 2960: 64: offset = krb5_princ_realm(context, pr)->length; 2960: 65: memcpy(ret->data, krb5_princ_realm(context, pr)->data, offset); -: 66: } -: 67: 9300: 68: for (i = 0; i < (int) nelem; i++) { 6337: 69: memcpy(&ret->data[offset], krb5_princ_component(context, pr, i)->data, 6337: 70: krb5_princ_component(context, pr, i)->length); 6337: 71: offset += krb5_princ_component(context, pr, i)->length; -: 72: } 2963: 73: return 0; -: 74:} -: 75: -: 76:krb5_error_code 2960: 77:krb5_principal2salt(krb5_context context, -: 78: register krb5_const_principal pr, krb5_data *ret) -: 79:{ 2960: 80: return principal2salt_internal(context, pr, ret, 1); -: 81:} -: 82: -: 83:krb5_error_code 3: 84:krb5_principal2salt_norealm(krb5_context context, -: 85: register krb5_const_principal pr, krb5_data *ret) -: 86:{ 3: 87: return principal2salt_internal(context, pr, ret, 0); -: 88:}