get the default keytab from krb5.conf, and list all parts of an ANY

type keytab


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10816 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
2002-01-30 10:12:21 +00:00
parent 7f16501934
commit 8d01a8944c

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997 - 2001 Kungliga Tekniska H<>gskolan * Copyright (c) 1997 - 2002 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
@@ -71,6 +71,21 @@ do_list(const char *keytab_string)
int max_timestamp = sizeof("Date") - 1; int max_timestamp = sizeof("Date") - 1;
int max_key = sizeof("Key") - 1; int max_key = sizeof("Key") - 1;
/* XXX specialcase the ANY type */
if(strncasecmp(keytab_string, "ANY:", 4) == 0) {
int flag = 0;
char buf[1024];
keytab_string += 4;
while (strsep_copy((const char**)&keytab_string, ",",
buf, sizeof(buf)) != -1) {
if(flag)
printf("\n");
do_list(buf);
flag = 1;
}
return 0;
}
ret = krb5_kt_resolve(context, keytab_string, &keytab); ret = krb5_kt_resolve(context, keytab_string, &keytab);
if (ret) { if (ret) {
krb5_warn(context, ret, "resolving keytab %s", keytab_string); krb5_warn(context, ret, "resolving keytab %s", keytab_string);
@@ -170,7 +185,9 @@ out:
int int
kt_list(int argc, char **argv) kt_list(int argc, char **argv)
{ {
krb5_error_code ret;
int optind = 0; int optind = 0;
char kt[1024];
if(verbose_flag) if(verbose_flag)
list_timestamp = 1; list_timestamp = 1;
@@ -185,13 +202,12 @@ kt_list(int argc, char **argv)
} }
if (keytab_string == NULL) { if (keytab_string == NULL) {
do_list("FILE:/etc/krb5.keytab"); if((ret = krb5_kt_default_name(context, kt, sizeof(kt))) != 0) {
#ifdef KRB4 krb5_warn(context, ret, "getting default keytab name");
printf ("\n"); return 0;
do_list("krb4:/etc/srvtab"); }
#endif keytab_string = kt;
} else {
do_list(keytab_string);
} }
do_list(keytab_string);
return 0; return 0;
} }