diff options
author | Günther Deschner <gdeschner@redhat.com> | 2012-08-28 09:35:55 +0200 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-09-14 16:14:15 -0400 |
commit | 8e699123bc7d4b5dd2b085567d64f8f46ee456ae (patch) | |
tree | 612a07a7276d251158541a787a5fe2bf63688a8d /proxy/tests | |
parent | fa8533256fadbd8ad79a6e98b98a62c7a7ba73a4 (diff) | |
download | gss-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.c | 29 |
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); |