summaryrefslogtreecommitdiffstats
path: root/src/clients/kvno
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>2009-01-03 23:19:42 +0000
committerSam Hartman <hartmans@mit.edu>2009-01-03 23:19:42 +0000
commit0ba5ccd7bb3ea15e44a87f84ca6feed8890f657d (patch)
tree2049c9c2cb135fe36b14c0a171711259258d18ec /src/clients/kvno
parentff0a6514c9f4230938c29922d69cbd4e83691adf (diff)
downloadkrb5-0ba5ccd7bb3ea15e44a87f84ca6feed8890f657d.tar.gz
krb5-0ba5ccd7bb3ea15e44a87f84ca6feed8890f657d.tar.xz
krb5-0ba5ccd7bb3ea15e44a87f84ca6feed8890f657d.zip
Merge mskrb-integ onto trunk
The mskrb-integ branch includes support for the following projects: Projects/Aliases * Projects/PAC and principal APIs * Projects/AEAD encryption API * Projects/GSSAPI DCE * Projects/RFC 3244 In addition, it includes support for enctype negotiation, and a variety of GSS-API extensions. In the KDC it includes support for protocol transition, constrained delegation and a new authorization data interface. The old authorization data interface is also supported. This commit merges the mskrb-integ branch on to the trunk. Additional review and testing is required. Merge commit 'mskrb-integ' into trunk ticket: new status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21690 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/clients/kvno')
-rw-r--r--src/clients/kvno/kvno.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/clients/kvno/kvno.c b/src/clients/kvno/kvno.c
index c6e6477f1..d6c24f42b 100644
--- a/src/clients/kvno/kvno.c
+++ b/src/clients/kvno/kvno.c
@@ -39,7 +39,7 @@ static char *prog;
static void xusage()
{
- fprintf(stderr, "usage: %s [-c ccache] [-e etype] [-k keytab] [-S sname] service1 service2 ...\n",
+ fprintf(stderr, "usage: %s [-C] [-c ccache] [-e etype] [-k keytab] [-S sname] service1 service2 ...\n",
prog);
exit(1);
}
@@ -48,7 +48,7 @@ int quiet = 0;
static void do_v5_kvno (int argc, char *argv[],
char *ccachestr, char *etypestr, char *keytab_name,
- char *sname);
+ char *sname, int canon);
#include <com_err.h>
static void extended_com_err_fn (const char *, errcode_t, const char *,
@@ -59,14 +59,19 @@ int main(int argc, char *argv[])
int option;
char *etypestr = NULL, *ccachestr = NULL, *keytab_name = NULL;
char *sname = NULL;
+ int canon = 0;
+
set_com_err_hook (extended_com_err_fn);
prog = strrchr(argv[0], '/');
prog = prog ? (prog + 1) : argv[0];
- while ((option = getopt(argc, argv, "c:e:hk:qS:")) != -1) {
+ while ((option = getopt(argc, argv, "Cc:e:hk:qS:")) != -1) {
switch (option) {
+ case 'C':
+ canon = 1;
+ break;
case 'c':
ccachestr = optarg;
break;
@@ -94,8 +99,8 @@ int main(int argc, char *argv[])
if ((argc - optind) < 1)
xusage();
- do_v5_kvno(argc - optind, argv + optind,
- ccachestr, etypestr, keytab_name, sname);
+ do_v5_kvno(argc - optind, argv + optind,
+ ccachestr, etypestr, keytab_name, sname, canon);
return 0;
}
@@ -114,7 +119,7 @@ static void extended_com_err_fn (const char *myprog, errcode_t code,
static void do_v5_kvno (int count, char *names[],
char * ccachestr, char *etypestr, char *keytab_name,
- char *sname)
+ char *sname, int canon)
{
krb5_error_code ret;
int i, errors;
@@ -197,7 +202,8 @@ static void do_v5_kvno (int count, char *names[],
in_creds.keyblock.enctype = etype;
- ret = krb5_get_credentials(context, 0, ccache, &in_creds, &out_creds);
+ ret = krb5_get_credentials(context, canon ? KRB5_GC_CANONICALIZE : 0,
+ ccache, &in_creds, &out_creds);
krb5_free_principal(context, in_creds.server);