#include "includes.h"
#include "smb_krb5.h"
#include "ads.h"
+#include "secrets.h"
#include "libnet/libnet_keytab.h"
#ifdef HAVE_KRB5
krb5_free_context(ctx->context);
}
- if (ctx->ads) {
- ads_destroy(&ctx->ads);
- }
+ TALLOC_FREE(ctx->ads);
TALLOC_FREE(ctx);
talloc_set_destructor(r, keytab_close);
- initialize_krb5_error_table();
- ret = krb5_init_context(&context);
+ ret = smb_krb5_init_context_common(&context);
if (ret) {
- DEBUG(1,("keytab_init: could not krb5_init_context: %s\n",
- error_message(ret)));
+ DBG_ERR("kerberos init context failed (%s)\n",
+ error_message(ret));
return ret;
}
- ret = smb_krb5_open_keytab_relative(context,
- keytab_name,
- true, /* write_access */
- &keytab);
+ ret = smb_krb5_kt_open_relative(context,
+ keytab_name,
+ true, /* write_access */
+ &keytab);
if (ret) {
- DEBUG(1,("keytab_init: smb_krb5_open_keytab failed (%s)\n",
- error_message(ret)));
+ DBG_WARNING("smb_krb5_kt_open_relative failed (%s)\n",
+ error_message(ret));
krb5_free_context(context);
return ret;
}
- ret = smb_krb5_keytab_name(mem_ctx, context, keytab, &keytab_string);
+ ret = smb_krb5_kt_get_name(mem_ctx, context, keytab, &keytab_string);
if (ret) {
krb5_kt_close(context, keytab);
krb5_free_context(context);
keyp = KRB5_KT_KEY(&kt_entry);
- salt_princ_s = kerberos_fetch_salt_princ_for_host_princ(context,
- princ_s,
- enctype);
+ salt_princ_s = kerberos_secrets_fetch_salt_princ();
if (salt_princ_s == NULL) {
ret = KRB5KRB_ERR_GENERIC;
goto done;
NT_STATUS_HAVE_NO_MEMORY(entry.principal);
NT_STATUS_HAVE_NO_MEMORY(entry.password.data);
+ DBG_INFO("%s: kvno:%d enctype:%d\n", entry.principal, kvno, enctype);
+
ADD_TO_ARRAY(mem_ctx, struct libnet_keytab_entry, entry,
&ctx->entries, &ctx->count);
NT_STATUS_HAVE_NO_MEMORY(ctx->entries);