Set KRB5_GC_CONSTRAINED_DELEGATION and parse nametypes.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21256 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1997 - 2006 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1997 - 2007 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -41,9 +41,10 @@ static char *delegation_cred_str;
|
|||||||
static char *etype_str;
|
static char *etype_str;
|
||||||
static int transit_flag = 1;
|
static int transit_flag = 1;
|
||||||
static int forwardable_flag;
|
static int forwardable_flag;
|
||||||
|
static char *impersonate_str;
|
||||||
|
static char *nametype_str;
|
||||||
static int version_flag;
|
static int version_flag;
|
||||||
static int help_flag;
|
static int help_flag;
|
||||||
static char *impersonate_str;
|
|
||||||
|
|
||||||
struct getargs args[] = {
|
struct getargs args[] = {
|
||||||
{ "cache", 'c', arg_string, &cache_str,
|
{ "cache", 'c', arg_string, &cache_str,
|
||||||
@@ -59,6 +60,7 @@ struct getargs args[] = {
|
|||||||
"encryption type to use", "enctype"},
|
"encryption type to use", "enctype"},
|
||||||
{ "impersonate", 0, arg_string, &impersonate_str,
|
{ "impersonate", 0, arg_string, &impersonate_str,
|
||||||
"client to impersonate", "principal"},
|
"client to impersonate", "principal"},
|
||||||
|
{ "name-type", 0, arg_flag, &nametype_str },
|
||||||
{ "version", 0, arg_flag, &version_flag },
|
{ "version", 0, arg_flag, &version_flag },
|
||||||
{ "help", 0, arg_flag, &help_flag }
|
{ "help", 0, arg_flag, &help_flag }
|
||||||
};
|
};
|
||||||
@@ -179,12 +181,22 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
krb5_cc_close (context, id);
|
krb5_cc_close (context, id);
|
||||||
krb5_free_principal(context, mc.server);
|
krb5_free_principal(context, mc.server);
|
||||||
|
|
||||||
|
krb5_get_creds_opt_add_options(context, opt,
|
||||||
|
KRB5_GC_CONSTRAINED_DELEGATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = krb5_parse_name(context, argv[0], &server);
|
ret = krb5_parse_name(context, argv[0], &server);
|
||||||
if (ret)
|
if (ret)
|
||||||
krb5_err (context, 1, ret, "krb5_parse_name %s", argv[0]);
|
krb5_err (context, 1, ret, "krb5_parse_name %s", argv[0]);
|
||||||
|
|
||||||
|
if (nametype_str) {
|
||||||
|
ret = krb5_parse_nametype(context, nametype_str,
|
||||||
|
&server->name.name_type);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_parse_nametype");
|
||||||
|
}
|
||||||
|
|
||||||
ret = krb5_get_creds(context, opt, cache, server, &out);
|
ret = krb5_get_creds(context, opt, cache, server, &out);
|
||||||
if (ret)
|
if (ret)
|
||||||
krb5_err (context, 1, ret, "krb5_get_creds");
|
krb5_err (context, 1, ret, "krb5_get_creds");
|
||||||
|
Reference in New Issue
Block a user