Add `--keytab' option.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4624 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1998-03-21 00:53:17 +00:00
parent 2efbae8001
commit 4e1a8940a5

View File

@@ -42,6 +42,7 @@ RCSID("$Id$");
static char *config_file; static char *config_file;
static char *keyfile; static char *keyfile;
static char *keytab_str;
static int help_flag; static int help_flag;
static int version_flag; static int version_flag;
static int debug_flag; static int debug_flag;
@@ -57,6 +58,10 @@ static struct getargs args[] = {
"key-file", 'k', arg_string, &keyfile, "key-file", 'k', arg_string, &keyfile,
"location of master key file", "file" "location of master key file", "file"
}, },
{
"keytab", 0, arg_string, &keytab_str,
"what keytab to use", "keytab"
},
{ "realm", 'r', arg_string, &realm, { "realm", 'r', arg_string, &realm,
"realm to use", "realm" "realm to use", "realm"
}, },
@@ -89,6 +94,7 @@ main(int argc, char **argv)
int optind = 0; int optind = 0;
int e; int e;
krb5_log_facility *logf; krb5_log_facility *logf;
krb5_keytab keytab;
set_progname(argv[0]); set_progname(argv[0]);
@@ -119,6 +125,14 @@ main(int argc, char **argv)
keyfile = strdup(p); keyfile = strdup(p);
} }
if(keytab_str == NULL)
keytab = NULL;
else {
ret = krb5_kt_resolve(context, keytab_str, &keytab);
if(ret)
krb5_err(context, 1, ret, "krb5_kt_resolve");
}
{ {
krb5_principal server; krb5_principal server;
int fd = 0; int fd = 0;
@@ -135,7 +149,7 @@ main(int argc, char **argv)
krb5_set_default_realm(context, realm); /* XXX */ krb5_set_default_realm(context, realm); /* XXX */
krb5_parse_name(context, KADM5_ADMIN_SERVICE, &server); krb5_parse_name(context, KADM5_ADMIN_SERVICE, &server);
ret = krb5_recvauth(context, &ac, &fd, KADMIN_APPL_VERSION, ret = krb5_recvauth(context, &ac, &fd, KADMIN_APPL_VERSION,
server, 0, NULL, &ticket); server, 0, keytab, &ticket);
krb5_free_principal(context, server); krb5_free_principal(context, server);
if(ret) if(ret)