diff options
Diffstat (limited to 'crypto/heimdal/kuser/kverify.c')
-rw-r--r-- | crypto/heimdal/kuser/kverify.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/crypto/heimdal/kuser/kverify.c b/crypto/heimdal/kuser/kverify.c index 3501f00..888658d 100644 --- a/crypto/heimdal/kuser/kverify.c +++ b/crypto/heimdal/kuser/kverify.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 2005, 2007 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -33,7 +33,7 @@ #include "kuser_locl.h" -RCSID("$Id: kverify.c,v 1.6 2001/08/24 01:08:13 assar Exp $"); +RCSID("$Id: kverify.c 19920 2007-01-15 23:21:32Z lha $"); static int help_flag = 0; static int version_flag = 0; @@ -60,13 +60,14 @@ main(int argc, char **argv) krb5_error_code ret; krb5_creds cred; krb5_preauthtype pre_auth_types[] = {KRB5_PADATA_ENC_TIMESTAMP}; - krb5_get_init_creds_opt get_options; + krb5_get_init_creds_opt *get_options; krb5_verify_init_creds_opt verify_options; - int optind = 0; + krb5_principal principal = NULL; + int optidx = 0; setprogname (argv[0]); - if(getarg(args, sizeof(args) / sizeof(args[0]), argc, argv, &optind)) + if(getarg(args, sizeof(args) / sizeof(args[0]), argc, argv, &optidx)) usage(1); if (help_flag) @@ -76,28 +77,39 @@ main(int argc, char **argv) print_version(NULL); exit(0); } + + argc -= optidx; + argv += optidx; ret = krb5_init_context(&context); if (ret) errx (1, "krb5_init_context failed: %d", ret); - krb5_get_init_creds_opt_init (&get_options); + ret = krb5_get_init_creds_opt_alloc (context, &get_options); + if (ret) + krb5_err(context, 1, ret, "krb5_get_init_creds_opt_alloc"); - krb5_get_init_creds_opt_set_preauth_list (&get_options, + krb5_get_init_creds_opt_set_preauth_list (get_options, pre_auth_types, 1); krb5_verify_init_creds_opt_init (&verify_options); + if (argc) { + ret = krb5_parse_name(context, argv[0], &principal); + if (ret) + krb5_err(context, 1, ret, "krb5_parse_name: %s", argv[0]); + } + ret = krb5_get_init_creds_password (context, &cred, - NULL, + principal, NULL, krb5_prompter_posix, NULL, 0, NULL, - &get_options); + get_options); if (ret) errx (1, "krb5_get_init_creds: %s", krb5_get_err_text(context, ret)); @@ -110,7 +122,7 @@ main(int argc, char **argv) if (ret) errx (1, "krb5_verify_init_creds: %s", krb5_get_err_text(context, ret)); - krb5_free_creds_contents (context, &cred); + krb5_free_cred_contents (context, &cred); krb5_free_context (context); return 0; } |