summaryrefslogtreecommitdiffstats
path: root/src/tests/gssapi/t_credstore.c
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2012-09-13 12:27:04 -0400
committerGreg Hudson <ghudson@mit.edu>2012-09-13 12:27:16 -0400
commitd81d68ebd8ade84e240f7d95edf0a562f6931ea2 (patch)
tree81d13948ae392081571fa97f60d001cc9cf5a598 /src/tests/gssapi/t_credstore.c
parentd9af383d069b571457849dea77dbef01ccb55370 (diff)
downloadkrb5-d81d68ebd8ade84e240f7d95edf0a562f6931ea2.tar.gz
krb5-d81d68ebd8ade84e240f7d95edf0a562f6931ea2.tar.xz
krb5-d81d68ebd8ade84e240f7d95edf0a562f6931ea2.zip
Tidy up GSSAPI test programs
Factor out some common functions used by multiple test programs. Use a common argument format for importing names (p:princname, h:hostbasedname, or u:username) and adjust the Python tests to match it. Use more consistent conventions in test programs and fix some coding style issues. Normalize how the test programs are built.
Diffstat (limited to 'src/tests/gssapi/t_credstore.c')
-rw-r--r--src/tests/gssapi/t_credstore.c75
1 files changed, 13 insertions, 62 deletions
diff --git a/src/tests/gssapi/t_credstore.c b/src/tests/gssapi/t_credstore.c
index 73c11f8b51..085bc794ec 100644
--- a/src/tests/gssapi/t_credstore.c
+++ b/src/tests/gssapi/t_credstore.c
@@ -27,41 +27,14 @@
#include <stdlib.h>
#include <string.h>
-#include <gssapi/gssapi_ext.h>
-#include <gssapi/gssapi_krb5.h>
+#include "common.h"
static void
-print_gss_status(int type, OM_uint32 code)
-{
- OM_uint32 major, minor;
- gss_buffer_desc msg;
- OM_uint32 msg_ctx = 0;
-
- do {
- major = gss_display_status(&minor, code, type,
- GSS_C_NULL_OID, &msg_ctx, &msg);
- if (major == 0) {
- fprintf(stdout, "%s. ", (char *)msg.value);
- major = gss_release_buffer(&minor, &msg);
- }
- } while (msg_ctx);
-}
-
-static void
-print_status(char *msg, OM_uint32 major, OM_uint32 minor)
-{
- fprintf(stdout, "%s: ", msg);
- print_gss_status(GSS_C_GSS_CODE, major);
- print_gss_status(GSS_C_MECH_CODE, minor);
- fprintf(stdout, "\n");
-}
-
-static void
-usage(const char *name)
+usage(void)
{
fprintf(stderr,
- "Usage: %s <principal> [--cred_store {<key> <value>} ...]\n",
- name);
+ "Usage: t_credstore principal [--cred_store {key value} ...]\n");
+ exit(1);
}
int
@@ -74,10 +47,8 @@ main(int argc, char *argv[])
gss_cred_id_t cred = GSS_C_NO_CREDENTIAL;
int i, e;
- if (argc < 2 || ((argc - 3) % 2)) {
- usage(argv[0]);
- exit(1);
- }
+ if (argc < 2 || ((argc - 3) % 2))
+ usage();
store.count = (argc - 3) / 2;
store.elements = calloc(store.count,
@@ -88,10 +59,8 @@ main(int argc, char *argv[])
}
if (argc > 2) {
- if (strcmp(argv[2], "--cred_store") != 0) {
- usage(argv[0]);
- exit(1);
- }
+ if (strcmp(argv[2], "--cred_store") != 0)
+ usage();
for (i = 3, e = 0; i < argc; i += 2, e++) {
store.elements[e].key = argv[i];
@@ -104,19 +73,11 @@ main(int argc, char *argv[])
major = gss_acquire_cred(&minor, GSS_C_NO_NAME, 0, GSS_C_NO_OID_SET,
GSS_C_INITIATE, &cred, NULL, NULL);
- if (major) {
- print_status("gss_acquire_cred(default user creds) failed",
- major, minor);
- goto out;
- }
+ check_gsserr("gss_acquire_cred", major, minor);
major = gss_store_cred_into(&minor, cred, GSS_C_INITIATE,
GSS_C_NO_OID, 1, 0, &store, NULL, NULL);
- if (major) {
- print_status("gss_store_cred_in_store(default user creds) failed",
- major, minor);
- goto out;
- }
+ check_gsserr("gss_store_cred_into", major, minor);
gss_release_cred(&minor, &cred);
@@ -128,27 +89,17 @@ main(int argc, char *argv[])
major = gss_import_name(&minor, &buf,
(gss_OID)GSS_KRB5_NT_PRINCIPAL_NAME,
&service);
- if (major) {
- print_status("gss_import_name(principal) failed", major, minor);
- goto out;
- }
+ check_gsserr("gss_import_name", major, minor);
major = gss_acquire_cred_from(&minor, service,
0, GSS_C_NO_OID_SET, GSS_C_BOTH,
&store, &cred, NULL, NULL);
- if (major) {
- print_status("gss_acquire_cred_from_store(principal) failed",
- major, minor);
- goto out;
- }
+ check_gsserr("gss_acquire_cred_from", major, minor);
fprintf(stdout, "Cred Store Success\n");
- major = 0;
-
-out:
gss_release_name(&minor, &service);
gss_release_cred(&minor, &cred);
free(store.elements);
- return major;
+ return 0;
}