aboutsummaryrefslogtreecommitdiff
path: root/crypto/krb5/src/tests/gssapi/t_add_cred.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/krb5/src/tests/gssapi/t_add_cred.c')
-rw-r--r--crypto/krb5/src/tests/gssapi/t_add_cred.c137
1 files changed, 0 insertions, 137 deletions
diff --git a/crypto/krb5/src/tests/gssapi/t_add_cred.c b/crypto/krb5/src/tests/gssapi/t_add_cred.c
deleted file mode 100644
index 7ab52d64496d..000000000000
--- a/crypto/krb5/src/tests/gssapi/t_add_cred.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-/* tests/gssapi/t_add_cred.c - gss_add_cred() tests */
-/*
- * Copyright (C) 2018 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.
- */
-
-/*
- * This program tests the mechglue behavior of gss_add_cred(). It relies on a
- * krb5 keytab and credentials being present so that initiator and acceptor
- * credentials can be acquired, but does not use them to initiate or accept any
- * requests.
- */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "common.h"
-
-int
-main(void)
-{
- OM_uint32 minor, major;
- gss_cred_id_t cred1, cred2;
- gss_cred_usage_t usage;
- gss_name_t name;
-
- /* Check that we get the expected error if we pass neither an input nor an
- * output cred handle. */
- major = gss_add_cred(&minor, GSS_C_NO_CREDENTIAL, GSS_C_NO_NAME,
- &mech_krb5, GSS_C_INITIATE, GSS_C_INDEFINITE,
- GSS_C_INDEFINITE, NULL, NULL, NULL, NULL);
- assert(major == (GSS_S_CALL_INACCESSIBLE_WRITE | GSS_S_NO_CRED));
-
- /* Regression test for #8737: make sure that desired_name is honored when
- * creating a credential by passing in a non-matching name. */
- name = import_name("p:does/not/match@WRONG_REALM");
- major = gss_add_cred(&minor, GSS_C_NO_CREDENTIAL, name, &mech_krb5,
- GSS_C_INITIATE, GSS_C_INDEFINITE, GSS_C_INDEFINITE,
- &cred1, NULL, NULL, NULL);
- assert(major == GSS_S_NO_CRED);
- gss_release_name(&minor, &name);
-
- /* Create cred1 with a krb5 initiator cred by passing an output handle but
- * no input handle. */
- major = gss_add_cred(&minor, GSS_C_NO_CREDENTIAL, GSS_C_NO_NAME,
- &mech_krb5, GSS_C_INITIATE, GSS_C_INDEFINITE,
- GSS_C_INDEFINITE, &cred1, NULL, NULL, NULL);
- assert(major == GSS_S_COMPLETE);
-
- /* Verify that cred1 has the expected mechanism creds. */
- major = gss_inquire_cred_by_mech(&minor, cred1, &mech_krb5, NULL, NULL,
- NULL, &usage);
- assert(major == GSS_S_COMPLETE && usage == GSS_C_INITIATE);
- major = gss_inquire_cred_by_mech(&minor, cred1, &mech_iakerb, NULL, NULL,
- NULL, &usage);
- assert(major == GSS_S_NO_CRED);
-
- /* Check that we get the expected error if we try to add another krb5 mech
- * cred to cred1. */
- major = gss_add_cred(&minor, cred1, GSS_C_NO_NAME, &mech_krb5,
- GSS_C_INITIATE, GSS_C_INDEFINITE, GSS_C_INDEFINITE,
- NULL, NULL, NULL, NULL);
- assert(major == GSS_S_DUPLICATE_ELEMENT);
-
- /* Add an IAKERB acceptor mech cred to cred1. */
- major = gss_add_cred(&minor, cred1, GSS_C_NO_NAME, &mech_iakerb,
- GSS_C_ACCEPT, GSS_C_INDEFINITE, GSS_C_INDEFINITE,
- NULL, NULL, NULL, NULL);
- assert(major == GSS_S_COMPLETE);
-
- /* Verify cred1 mechanism creds. */
- major = gss_inquire_cred_by_mech(&minor, cred1, &mech_krb5, NULL, NULL,
- NULL, &usage);
- assert(major == GSS_S_COMPLETE && usage == GSS_C_INITIATE);
- major = gss_inquire_cred_by_mech(&minor, cred1, &mech_iakerb, NULL, NULL,
- NULL, &usage);
- assert(major == GSS_S_COMPLETE && usage == GSS_C_ACCEPT);
-
- /* Start over with another new cred. */
- gss_release_cred(&minor, &cred1);
- major = gss_add_cred(&minor, GSS_C_NO_CREDENTIAL, GSS_C_NO_NAME,
- &mech_krb5, GSS_C_ACCEPT, GSS_C_INDEFINITE,
- GSS_C_INDEFINITE, &cred1, NULL, NULL, NULL);
- assert(major == GSS_S_COMPLETE);
-
- /* Create an expanded cred by passing both an output handle and an input
- * handle. */
- major = gss_add_cred(&minor, cred1, GSS_C_NO_NAME, &mech_iakerb,
- GSS_C_INITIATE, GSS_C_INDEFINITE, GSS_C_INDEFINITE,
- &cred2, NULL, NULL, NULL);
- assert(major == GSS_S_COMPLETE);
-
- /* Verify mechanism creds in cred1 and cred2. */
- major = gss_inquire_cred_by_mech(&minor, cred1, &mech_krb5, NULL, NULL,
- NULL, &usage);
- assert(major == GSS_S_COMPLETE && usage == GSS_C_ACCEPT);
- major = gss_inquire_cred_by_mech(&minor, cred1, &mech_iakerb, NULL, NULL,
- NULL, &usage);
- assert(major == GSS_S_NO_CRED);
- major = gss_inquire_cred_by_mech(&minor, cred2, &mech_krb5, NULL, NULL,
- NULL, &usage);
- assert(major == GSS_S_COMPLETE && usage == GSS_C_ACCEPT);
- major = gss_inquire_cred_by_mech(&minor, cred2, &mech_iakerb, NULL, NULL,
- NULL, &usage);
- assert(major == GSS_S_COMPLETE && usage == GSS_C_INITIATE);
-
- gss_release_cred(&minor, &cred1);
- gss_release_cred(&minor, &cred2);
-
- return 0;
-}