summaryrefslogtreecommitdiff
path: root/source4/heimdal/lib/krb5/keytab_memory.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2005-09-05 10:53:14 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:36:31 -0500
commit6b14ffe2713efe2e16a988d920d2dbd7c088601d (patch)
treea5b65d3ac673fee94037f026769ffe781a29f301 /source4/heimdal/lib/krb5/keytab_memory.c
parenta5148773417adcc343b194693168fb4817bc3a65 (diff)
downloadsamba-6b14ffe2713efe2e16a988d920d2dbd7c088601d.tar.gz
samba-6b14ffe2713efe2e16a988d920d2dbd7c088601d.tar.bz2
samba-6b14ffe2713efe2e16a988d920d2dbd7c088601d.zip
r10035: This patch removes the need for the special case hack
'MEMORY_WILDCARD' keytab type. (part of this checking is in effect a merge from lorikeet-heimdal, where I removed this) This is achieved by correctly using the GSSAPI gsskrb5_acquire_cred() function, as this allows us to specify the target principal, regardless of which alias the client may use. This patch also tries to simplify some principal handling and fixes some error cases. Posted to samba-technical, reviewed by metze, and looked over by lha on IRC. Andrew Bartlett (This used to be commit 506a7b67aee949b102d8bf0d6ee9cd12def10d00)
Diffstat (limited to 'source4/heimdal/lib/krb5/keytab_memory.c')
-rw-r--r--source4/heimdal/lib/krb5/keytab_memory.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/source4/heimdal/lib/krb5/keytab_memory.c b/source4/heimdal/lib/krb5/keytab_memory.c
index 3dca5154e3..1d866fa11e 100644
--- a/source4/heimdal/lib/krb5/keytab_memory.c
+++ b/source4/heimdal/lib/krb5/keytab_memory.c
@@ -174,56 +174,3 @@ const krb5_kt_ops krb5_mkt_ops = {
mkt_add_entry,
mkt_remove_entry
};
-
-static krb5_error_code
-mktw_get_entry(krb5_context context,
- krb5_keytab id,
- krb5_const_principal principal,
- krb5_kvno kvno,
- krb5_enctype enctype,
- krb5_keytab_entry *entry)
-{
- krb5_keytab_entry tmp;
- krb5_error_code ret;
- krb5_kt_cursor cursor;
-
- ret = krb5_kt_start_seq_get (context, id, &cursor);
- if (ret)
- return KRB5_KT_NOTFOUND; /* XXX i.e. file not found */
-
- entry->vno = 0;
- while (krb5_kt_next_entry(context, id, &tmp, &cursor) == 0) {
- if (krb5_kt_compare(context, &tmp, NULL, 0, enctype)) {
- if (kvno == tmp.vno) {
- krb5_kt_copy_entry_contents (context, &tmp, entry);
- krb5_kt_free_entry (context, &tmp);
- krb5_kt_end_seq_get(context, id, &cursor);
- return 0;
- } else if (kvno == 0 && tmp.vno > entry->vno) {
- if (entry->vno)
- krb5_kt_free_entry (context, entry);
- krb5_kt_copy_entry_contents (context, &tmp, entry);
- }
- }
- krb5_kt_free_entry(context, &tmp);
- }
- krb5_kt_end_seq_get (context, id, &cursor);
- if (entry->vno) {
- return 0;
- } else {
- return KRB5_KT_NOTFOUND;
- }
-};
-
-const krb5_kt_ops krb5_mktw_ops = {
- "MEMORY_WILDCARD",
- mkt_resolve,
- mkt_get_name,
- mkt_close,
- mktw_get_entry, /* get */
- mkt_start_seq_get,
- mkt_next_entry,
- mkt_end_seq_get,
- mkt_add_entry,
- mkt_remove_entry
-};