nfs-ganesha 1.4
|
00001 #ifndef KRB5_UTIL_H 00002 #define KRB5_UTIL_H 00003 00004 #include <krb5.h> 00005 00006 #include <rpc/auth_gss.h> 00007 00008 /* 00009 * List of principals from our keytab that we 00010 * will try to use to obtain credentials 00011 * (known as a principal list entry (ple)) 00012 */ 00013 struct gssd_k5_kt_princ { 00014 struct gssd_k5_kt_princ *next; 00015 krb5_principal princ; 00016 char *ccname; 00017 char *realm; 00018 krb5_timestamp endtime; 00019 }; 00020 00021 00022 int gssd_setup_krb5_user_gss_ccache(uid_t uid, char *servername, 00023 char *dirname); 00024 int gssd_get_krb5_machine_cred_list(char ***list); 00025 void gssd_free_krb5_machine_cred_list(char **list); 00026 void gssd_setup_krb5_machine_gss_ccache(char *servername); 00027 void gssd_destroy_krb5_machine_creds(void); 00028 int gssd_refresh_krb5_machine_credential(char *hostname, 00029 struct gssd_k5_kt_princ *ple, 00030 char *service); 00031 char *gssd_k5_err_msg(krb5_context context, krb5_error_code code); 00032 void gssd_k5_get_default_realm(char **def_realm); 00033 00034 #ifdef HAVE_SET_ALLOWABLE_ENCTYPES 00035 int limit_krb5_enctypes(struct rpc_gss_sec *sec); 00036 #endif 00037 00038 /* 00039 * Hide away some of the MIT vs. Heimdal differences 00040 * here with macros... 00041 */ 00042 00043 #ifdef HAVE_KRB5 00044 #define k5_free_unparsed_name(ctx, name) krb5_free_unparsed_name((ctx), (name)) 00045 #define k5_free_default_realm(ctx, realm) krb5_free_default_realm((ctx), (realm)) 00046 #define k5_free_kt_entry(ctx, kte) krb5_free_keytab_entry_contents((ctx),(kte)) 00047 #else /* Heimdal */ 00048 #define k5_free_unparsed_name(ctx, name) free(name) 00049 #define k5_free_default_realm(ctx, realm) free(realm) 00050 #define k5_free_kt_entry(ctx, kte) krb5_kt_free_entry((ctx),(kte)) 00051 #undef USE_GSS_KRB5_CCACHE_NAME 00052 #define USE_GSS_KRB5_CCACHE_NAME 1 00053 #endif 00054 00055 #endif /* KRB5_UTIL_H */