summaryrefslogtreecommitdiffstats
path: root/proxy/tests
diff options
context:
space:
mode:
authorGünther Deschner <gdeschner@redhat.com>2012-08-28 09:35:55 +0200
committerSimo Sorce <simo@redhat.com>2012-09-14 16:14:15 -0400
commit8e699123bc7d4b5dd2b085567d64f8f46ee456ae (patch)
tree612a07a7276d251158541a787a5fe2bf63688a8d /proxy/tests
parentfa8533256fadbd8ad79a6e98b98a62c7a7ba73a4 (diff)
downloadgss-proxy-8e699123bc7d4b5dd2b085567d64f8f46ee456ae.tar.gz
gss-proxy-8e699123bc7d4b5dd2b085567d64f8f46ee456ae.tar.xz
gss-proxy-8e699123bc7d4b5dd2b085567d64f8f46ee456ae.zip
Add testcode for gpm_unwrap().
Diffstat (limited to 'proxy/tests')
-rw-r--r--proxy/tests/cli_srv_comm.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/proxy/tests/cli_srv_comm.c b/proxy/tests/cli_srv_comm.c
index eee8fc5..0e527cc 100644
--- a/proxy/tests/cli_srv_comm.c
+++ b/proxy/tests/cli_srv_comm.c
@@ -365,6 +365,10 @@ void *server_thread(void *pvt)
gss_OID out_name_type = GSS_C_NO_OID;
gss_buffer_desc msg_token = GSS_C_EMPTY_BUFFER;
int ret;
+ gss_buffer_desc input_message_buffer = GSS_C_EMPTY_BUFFER;
+ gss_buffer_desc output_message_buffer = GSS_C_EMPTY_BUFFER;
+ gss_qop_t qop_state;
+ int conf_state;
data = (struct athread *)pvt;
@@ -533,9 +537,34 @@ void *server_thread(void *pvt)
fprintf(stdout, "Received valid msg from client: [%s]\n", buffer);
+ ret = gp_recv_buffer(data->srv_pipe[0], buffer, &buflen);
+ if (ret) {
+ fprintf(stdout, "Failed to get data from client!\n");
+ goto done;
+ }
+
+ input_message_buffer.value = buffer;
+ input_message_buffer.length = buflen;
+
+ ret_maj = gpm_unwrap(&ret_min,
+ (gssx_ctx *)context_handle,
+ &input_message_buffer,
+ &output_message_buffer,
+ &conf_state,
+ &qop_state);
+ if (ret_maj) {
+ fprintf(stderr, "gpm_unwrap failed: %d\n", ret_maj);
+ gp_log_failure(GSS_C_NO_OID, ret_maj, ret_min);
+ goto done;
+ }
+
+ fprintf(stdout, "Received valid msg from client: [%s]\n",
+ (char *)output_message_buffer.value);
+
done:
gpm_release_name(&ret_min, &src_name);
gpm_release_buffer(&ret_min, &out_token);
+ gpm_release_buffer(&ret_min, &output_message_buffer);
gpm_release_cred(&ret_min, &deleg_cred);
gpm_delete_sec_context(&ret_min, &context_handle, GSS_C_NO_BUFFER);
gss_release_oid_set(&ret_min, &mech_set);