add --keytab
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8715 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
12
kdc/hpropd.c
12
kdc/hpropd.c
@@ -169,6 +169,7 @@ static char *local_realm=NULL;
|
||||
#ifdef KRB4
|
||||
static int v4dump;
|
||||
#endif
|
||||
static char *ktname = NULL;
|
||||
|
||||
struct getargs args[] = {
|
||||
{ "database", 'd', arg_string, &database, "database", "file" },
|
||||
@@ -176,6 +177,7 @@ struct getargs args[] = {
|
||||
{ "print", 0, arg_flag, &print_dump, "print dump to stdout" },
|
||||
{ "inetd", 'i', arg_negative_flag, &inetd_flag,
|
||||
"Not started from inetd" },
|
||||
{ "keytab", 'k', arg_string, &ktname, "keytab to use for authentication", "keytab" },
|
||||
#ifdef KRB4
|
||||
{ "v4dump", '4', arg_flag, &v4dump, "create v4 type DB" },
|
||||
#endif
|
||||
@@ -295,9 +297,19 @@ main(int argc, char **argv)
|
||||
krb5_princ_set_realm(context,server,&my_realm);
|
||||
}
|
||||
|
||||
ret = krb5_kt_register(context, &hdb_kt_ops);
|
||||
if(ret)
|
||||
krb5_err(context, 1, ret, "krb5_kt_register");
|
||||
|
||||
if (ktname != NULL) {
|
||||
ret = krb5_kt_resolve(context, ktname, &keytab);
|
||||
if (ret)
|
||||
krb5_err (context, 1, ret, "krb5_kt_resolve %s", ktname);
|
||||
} else {
|
||||
ret = krb5_kt_default (context, &keytab);
|
||||
if (ret)
|
||||
krb5_err (context, 1, ret, "krb5_kt_default");
|
||||
}
|
||||
|
||||
ret = krb5_recvauth(context, &ac, &fd, HPROP_VERSION,
|
||||
server, 0, keytab, NULL);
|
||||
|
Reference in New Issue
Block a user