diff options
| author | Greg Hudson <ghudson@mit.edu> | 2013-02-27 15:00:37 -0500 |
|---|---|---|
| committer | Greg Hudson <ghudson@mit.edu> | 2013-03-09 02:03:32 -0500 |
| commit | b8696b1ed70ffebbeee7142f1e5e086d75ce4e30 (patch) | |
| tree | f2f42eb7f7202fe028b6620da725c9223edd7a69 /src/tests/t_localauth.c | |
| parent | 4216fb5b0e0abb80a3ccd8251abddc18435d81f3 (diff) | |
| download | krb5-b8696b1ed70ffebbeee7142f1e5e086d75ce4e30.tar.gz krb5-b8696b1ed70ffebbeee7142f1e5e086d75ce4e30.tar.xz krb5-b8696b1ed70ffebbeee7142f1e5e086d75ce4e30.zip | |
Add tests for localauth interface
Create a test module, program, and script to exercise the
krb5_aname_to_localname and krb5_k5userok functions as well as the
localauth pluggable interface.
ticket: 7583
Diffstat (limited to 'src/tests/t_localauth.c')
| -rw-r--r-- | src/tests/t_localauth.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/tests/t_localauth.c b/src/tests/t_localauth.c new file mode 100644 index 000000000..3a65b5b97 --- /dev/null +++ b/src/tests/t_localauth.c @@ -0,0 +1,72 @@ +/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* tests/t_localauth.c - test harness for kuserok and aname_to_lname */ +/* + * Copyright (C) 2013 by the Massachusetts Institute of Technology. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <krb5.h> +#include <stdio.h> + +static krb5_context ctx; + +static void +check(krb5_error_code code) +{ + const char *errmsg; + + if (code) { + errmsg = krb5_get_error_message(ctx, code); + fprintf(stderr, "%s\n", errmsg); + krb5_free_error_message(ctx, errmsg); + exit(1); + } +} + +int +main(int argc, char **argv) +{ + krb5_principal princ; + char buf[1024]; + + if (argc < 2 || argc > 3) { + fprintf(stderr, "Usage: t_localauth principal [localuser]\n"); + return 1; + } + check(krb5_init_context(&ctx)); + check(krb5_parse_name(ctx, argv[1], &princ)); + if (argc == 3) { + printf("%s\n", krb5_kuserok(ctx, princ, argv[2]) ? "yes" : "no"); + } else { + check(krb5_aname_to_localname(ctx, princ, sizeof(buf), buf)); + printf("%s\n", buf); + } + krb5_free_principal(ctx, princ); + krb5_free_context(ctx); + return 0; +} |
