summaryrefslogtreecommitdiffstats
path: root/proxy/tests/t_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'proxy/tests/t_init.c')
-rw-r--r--proxy/tests/t_init.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/proxy/tests/t_init.c b/proxy/tests/t_init.c
index 7714e03..02407ce 100644
--- a/proxy/tests/t_init.c
+++ b/proxy/tests/t_init.c
@@ -11,6 +11,8 @@ int main(int argc, const char *argv[])
gss_buffer_desc in_token = GSS_C_EMPTY_BUFFER;
gss_buffer_desc out_token = GSS_C_EMPTY_BUFFER;
gss_name_t name;
+ gss_name_t i_name;
+ gss_OID_set_desc oid_set = { 1, discard_const(gss_mech_krb5) };
uint32_t ret_maj;
uint32_t ret_min;
int ret = -1;
@@ -22,6 +24,30 @@ int main(int argc, const char *argv[])
goto done;
}
+ if (argc > 2) {
+ ret = t_string_to_name(argv[2], &i_name,
+ discard_const(GSS_KRB5_NT_PRINCIPAL_NAME));
+ if (ret) {
+ DEBUG("Failed to import client name from argv[2]\n");
+ ret = -1;
+ goto done;
+ }
+
+ ret_maj = gss_acquire_cred(&ret_min,
+ i_name,
+ GSS_C_INDEFINITE,
+ &oid_set,
+ GSS_C_INITIATE,
+ &cred_handle,
+ NULL, NULL);
+ if (ret_maj != GSS_S_COMPLETE) {
+ DEBUG("gss_acquire_cred() failed\n");
+ t_log_failure(GSS_C_NO_OID, ret_maj, ret_min);
+ ret = -1;
+ goto done;
+ }
+ }
+
ret_maj = gss_init_sec_context(&ret_min,
cred_handle,
&context_handle,