summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/kdb/ChangeLog5
-rw-r--r--src/lib/kdb/keytab.c18
2 files changed, 15 insertions, 8 deletions
diff --git a/src/lib/kdb/ChangeLog b/src/lib/kdb/ChangeLog
index 4592b4c19..e461fdc27 100644
--- a/src/lib/kdb/ChangeLog
+++ b/src/lib/kdb/ChangeLog
@@ -1,3 +1,8 @@
+2003-03-18 Tom Yu <tlyu@mit.edu>
+
+ * keytab.c (krb5_ktkdb_get_entry): Do not perform the enctype
+ comparison if the requested enctype is a wildcard.
+
2003-03-16 Sam Hartman <hartmans@mit.edu>
* keytab.c (krb5_ktkdb_get_entry): Match only against the first
diff --git a/src/lib/kdb/keytab.c b/src/lib/kdb/keytab.c
index 6a1dea152..90a81cac8 100644
--- a/src/lib/kdb/keytab.c
+++ b/src/lib/kdb/keytab.c
@@ -172,15 +172,17 @@ krb5_ktkdb_get_entry(in_context, id, principal, kvno, enctype, entry)
if (kerror)
goto error;
- kerror = krb5_c_enctype_compare(context, enctype, entry->key.enctype, &similar);
- if (kerror)
- goto error;
-
- if (!similar) {
- kerror = KRB5_KDB_NO_PERMITTED_KEY;
- goto error;
+ if (enctype > 0) {
+ kerror = krb5_c_enctype_compare(context, enctype,
+ entry->key.enctype, &similar);
+ if (kerror)
+ goto error;
+
+ if (!similar) {
+ kerror = KRB5_KDB_NO_PERMITTED_KEY;
+ goto error;
+ }
}
-
/*
* Coerce the enctype of the output keyblock in case we got an
* inexact match on the enctype.