diff options
Diffstat (limited to 'proxy')
-rw-r--r-- | proxy/src/gp_conv.c | 13 | ||||
-rw-r--r-- | proxy/src/gp_conv.h | 1 |
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); |