From a06010bcc4d6303b23cac788cf005d866b92be6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Thu, 21 Jun 2007 04:38:56 +0000 Subject: [PATCH] Set KRB5_GC_CONSTRAINED_DELEGATION and parse nametypes. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@21256 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kuser/kgetcred.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/kuser/kgetcred.c b/kuser/kgetcred.c index f7e881f9d..45232cff1 100644 --- a/kuser/kgetcred.c +++ b/kuser/kgetcred.c @@ -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). * All rights reserved. * @@ -41,9 +41,10 @@ static char *delegation_cred_str; static char *etype_str; static int transit_flag = 1; static int forwardable_flag; +static char *impersonate_str; +static char *nametype_str; static int version_flag; static int help_flag; -static char *impersonate_str; struct getargs args[] = { { "cache", 'c', arg_string, &cache_str, @@ -59,6 +60,7 @@ struct getargs args[] = { "encryption type to use", "enctype"}, { "impersonate", 0, arg_string, &impersonate_str, "client to impersonate", "principal"}, + { "name-type", 0, arg_flag, &nametype_str }, { "version", 0, arg_flag, &version_flag }, { "help", 0, arg_flag, &help_flag } }; @@ -179,12 +181,22 @@ main(int argc, char **argv) krb5_cc_close (context, id); 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); if (ret) 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); if (ret) krb5_err (context, 1, ret, "krb5_get_creds");