From 9a3ba9ca00e73adc3fb17ce8afa532076768023b Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Tue, 5 Jun 2012 23:41:12 +0200 Subject: Add support for storing credential caches in the DIR: back end https://fedorahosted.org/sssd/ticket/974 --- src/util/sss_krb5.c | 21 ++------------------- src/util/sss_krb5.h | 3 ++- 2 files changed, 4 insertions(+), 20 deletions(-) (limited to 'src/util') diff --git a/src/util/sss_krb5.c b/src/util/sss_krb5.c index 5bc1140d0..8a6bfe2dc 100644 --- a/src/util/sss_krb5.c +++ b/src/util/sss_krb5.c @@ -604,11 +604,10 @@ void KRB5_CALLCONV sss_krb5_free_unparsed_name(krb5_context context, char *name) } -krb5_error_code check_for_valid_tgt(const char *ccname, const char *realm, +krb5_error_code check_for_valid_tgt(krb5_context context, + krb5_ccache ccache, const char *realm, const char *client_princ_str, bool *result) { - krb5_context context = NULL; - krb5_ccache ccache = NULL; krb5_error_code krberr; TALLOC_CTX *tmp_ctx = NULL; krb5_creds mcred; @@ -625,18 +624,6 @@ krb5_error_code check_for_valid_tgt(const char *ccname, const char *realm, return ENOMEM; } - krberr = krb5_init_context(&context); - if (krberr) { - DEBUG(1, ("Failed to init kerberos context\n")); - goto done; - } - - krberr = krb5_cc_resolve(context, ccname, &ccache); - if (krberr != 0) { - DEBUG(1, ("krb5_cc_resolve failed.\n")); - goto done; - } - server_name = talloc_asprintf(tmp_ctx, "krbtgt/%s@%s", realm, realm); if (server_name == NULL) { DEBUG(1, ("talloc_asprintf failed.\n")); @@ -685,10 +672,6 @@ done: if (server_principal != NULL) { krb5_free_principal(context, server_principal); } - if (ccache != NULL) { - krb5_cc_close(context, ccache); - } - if (context != NULL) krb5_free_context(context); talloc_free(tmp_ctx); return krberr; } diff --git a/src/util/sss_krb5.h b/src/util/sss_krb5.h index bba2a7eda..89ec00021 100644 --- a/src/util/sss_krb5.h +++ b/src/util/sss_krb5.h @@ -55,7 +55,8 @@ void KRB5_CALLCONV sss_krb5_get_init_creds_opt_free (krb5_context context, void KRB5_CALLCONV sss_krb5_free_unparsed_name(krb5_context context, char *name); -krb5_error_code check_for_valid_tgt(const char *ccname, const char *realm, +krb5_error_code check_for_valid_tgt(krb5_context context, + krb5_ccache ccache, const char *realm, const char *client_princ_str, bool *result); int sss_krb5_verify_keytab(const char *principal, -- cgit