summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-01-30 14:23:35 -0500
committerSimo Sorce <simo@redhat.com>2012-02-01 17:56:34 -0500
commitbbd84e44a8b6a8d9e54fd8d1c53757fac189df93 (patch)
tree7710146aa9e430545ad84d101d324f69e1cb7104
parentb4db78e617380e5816767dfc269224431cdaf0f5 (diff)
downloadgss-proxy-bbd84e44a8b6a8d9e54fd8d1c53757fac189df93.tar.gz
gss-proxy-bbd84e44a8b6a8d9e54fd8d1c53757fac189df93.tar.xz
gss-proxy-bbd84e44a8b6a8d9e54fd8d1c53757fac189df93.zip
Add helper to convert an gssx name back to gss_name_t
-rw-r--r--proxy/src/gp_conv.c13
-rw-r--r--proxy/src/gp_conv.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/proxy/src/gp_conv.c b/proxy/src/gp_conv.c
index c0c7c70..06e0042 100644
--- a/proxy/src/gp_conv.c
+++ b/proxy/src/gp_conv.c
@@ -337,6 +337,19 @@ done:
return ret;
}
+int gp_conv_gssx_to_name(gssx_name *in, gss_name_t *out)
+{
+ uint32_t ret_min;
+ gss_buffer_desc name_buffer;
+ gss_OID_desc name_type;
+
+ gp_conv_gssx_to_oid(&in->name_type, &name_type);
+
+ gp_conv_gssx_to_buffer(&in->exported_name, &name_buffer);
+
+ return gss_import_name(&ret_min, &name_buffer, &name_type, out);
+}
+
int gp_conv_ctx_id_to_gssx(gss_ctx_id_t *in, gssx_ctx *out)
{
uint32_t ret_maj;
diff --git a/proxy/src/gp_conv.h b/proxy/src/gp_conv.h
index 343710d..20c18d5 100644
--- a/proxy/src/gp_conv.h
+++ b/proxy/src/gp_conv.h
@@ -54,6 +54,7 @@ int gp_conv_err_to_gssx_string(uint32_t status, int type, gss_OID oid,
utf8string *ret_str);
int gp_conv_name_to_gssx(gss_name_t in, gssx_name *out);
+int gp_conv_gssx_to_name(gssx_name *in, gss_name_t *out);
int gp_conv_ctx_id_to_gssx(gss_ctx_id_t *in, gssx_ctx *out);