diff options
author | Günther Deschner <gdeschner@redhat.com> | 2012-09-17 15:01:27 +0200 |
---|---|---|
committer | Günther Deschner <gdeschner@redhat.com> | 2012-10-18 17:45:59 +0200 |
commit | 8c8f7ea096d6b90d209702264313806e8cea8729 (patch) | |
tree | 37b275214016a0eb39d4517dfd7ac948a6b9616c | |
parent | cb7653d1e663a6b3bfc564cda0c9ad4afc579d2a (diff) | |
download | gss-proxy-master-interposetest.tar.gz gss-proxy-master-interposetest.tar.xz gss-proxy-master-interposetest.zip |
-rw-r--r-- | proxy/src/mechglue/gss_plugin.c | 2 | ||||
-rw-r--r-- | proxy/tests/interposetest.c | 42 |
2 files changed, 44 insertions, 0 deletions
diff --git a/proxy/src/mechglue/gss_plugin.c b/proxy/src/mechglue/gss_plugin.c index fd5d82d..82fb205 100644 --- a/proxy/src/mechglue/gss_plugin.c +++ b/proxy/src/mechglue/gss_plugin.c @@ -105,6 +105,8 @@ gss_OID_set gss_mech_interposer(gss_OID mech_type) return NULL; } + /* check variable */ + interposed_mechs = NULL; maj = 0; if (gss_oid_equal(&gssproxy_mech_interposer, mech_type)) { diff --git a/proxy/tests/interposetest.c b/proxy/tests/interposetest.c index 4878a40..8b25540 100644 --- a/proxy/tests/interposetest.c +++ b/proxy/tests/interposetest.c @@ -159,6 +159,7 @@ static int gptest_inq_context(gss_ctx_id_t ctx) DEBUG("Context validity: %d sec.\n", time_rec); } +// XXX test export names here done: (void)gss_release_buffer(&min, &sname); (void)gss_release_buffer(&min, &tname); @@ -402,7 +403,48 @@ void run_client(struct aproc *data) goto done; } #endif +#if 0 + gss_buffer_desc pac_buffer = GSS_C_EMPTY_BUFFER; + gss_buffer_desc pac_display_buffer = GSS_C_EMPTY_BUFFER; + gss_buffer_desc pac_name = GSS_C_EMPTY_BUFFER; + gss_buffer_desc username = GSS_C_EMPTY_BUFFER; + gss_name_t _username = GSS_C_NO_NAME; + + int more = -1; + int authenticated = 0; + int complete = 0; + + pac_name.value = "urn:mspac:"; + pac_name.length = strlen(pac_name.value)-1; + + username.value = "administrator@W2K8DOM.BER.REDHAT.COM"; + username.length = strlen(username.value)-1; + + ret_maj = gss_import_name(&ret_min, + &username, + GSS_C_NT_USER_NAME, + &_username); + if (ret_maj) { + DEBUG("gss_import_name failed: %d\n", ret_maj); + gp_log_failure(GSS_C_NO_OID, ret_maj, ret_min); + goto done; + } + ret_maj = gss_get_name_attribute(&ret_min, + _username, + &pac_name, + &authenticated, + &complete, + &pac_buffer, + &pac_display_buffer, + &more); + if (ret_maj) { + DEBUG("gss_get_name_attribute failed: %d\n", ret_maj); + gp_log_failure(GSS_C_NO_OID, ret_maj, ret_min); + goto done; + } + +#endif ret_maj = gss_delete_sec_context(&ret_min, &ctx, &out_token); if (ret_maj != GSS_S_COMPLETE) { DEBUG("Failed to delete context!\n"); |