xref: /illumos-gate/usr/src/lib/gss_mechs/mech_krb5/krb5/keytab/ktfr_entry.c (revision 55fea89dcaa64928bed4327112404dcb3e07b79f)
1 /*
2  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3  * Use is subject to license terms.
4  */
5 
6 
7 /*
8  * lib/krb5/keytab/ktfr_entry.c
9  *
10  * Copyright 1990 by the Massachusetts Institute of Technology.
11  * All Rights Reserved.
12  *
13  * Export of this software from the United States of America may
14  *   require a specific license from the United States Government.
15  *   It is the responsibility of any person or organization contemplating
16  *   export to obtain such a license before exporting.
17  *
18  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
19  * distribute this software and its documentation for any purpose and
20  * without fee is hereby granted, provided that the above copyright
21  * notice appear in all copies and that both that copyright notice and
22  * this permission notice appear in supporting documentation, and that
23  * the name of M.I.T. not be used in advertising or publicity pertaining
24  * to distribution of the software without specific, written prior
25  * permission.  Furthermore if you modify this software you must label
26  * your software as modified software and not distribute it in such a
27  * fashion that it might be confused with the original M.I.T. software.
28  * M.I.T. makes no representations about the suitability of
29  * this software for any purpose.  It is provided "as is" without express
30  * or implied warranty.
31  *
32  *
33  * krb5_kt_free_entry()
34  */
35 
36 #include "k5-int.h"
37 
38 krb5_error_code KRB5_CALLCONV
krb5_free_keytab_entry_contents(krb5_context context,krb5_keytab_entry * entry)39 krb5_free_keytab_entry_contents (krb5_context context, krb5_keytab_entry *entry)
40 {
41     if (!entry)
42 	return 0;
43 
44     krb5_free_principal(context, entry->principal);
45     if (entry->key.contents) {
46 	memset((char *)entry->key.contents, 0, entry->key.length);
47 	/* Solaris Kerberos */
48 	krb5_free_keyblock_contents(context, &entry->key);
49     }
50     return 0;
51 }
52 
53 krb5_error_code KRB5_CALLCONV
krb5_kt_free_entry(krb5_context context,krb5_keytab_entry * entry)54 krb5_kt_free_entry (krb5_context context, krb5_keytab_entry *entry)
55 {
56     return krb5_free_keytab_entry_contents (context, entry);
57 }
58