【发布时间】:2013-12-14 04:33:07
【问题描述】:
我在使用 gss_export_name 导出名称时遇到问题,虽然一旦名称被导出,我应该能够打印它,但我打开了一个空白的 Literaly 出口名称:,出口名称长度:47
这是我的代码
OM_uint32 major_status;
gss_cred_usage_t usage;
OM_uint32 lifetime;
gss_name_t inquired_name;
major_status = gss_inquire_cred(&minor_status, GSS_C_NO_CREDENTIAL, &inquired_name,
&lifetime, &usage, &oid_set);
gss_buffer_desc exported_name_buffer;
major_status = gss_export_name(&minor_status, inquired_name, &exported_name_buffer);
printf("EXPORTED NAME: %s, EXPORTED NAME LENGTH: %d\n",
exported_name_buffer.value, exported_name_buffer.length);
为了清楚起见,我决定不包括检查,但我也注意确保 major_status 始终 == GSS_S_COMPLETE 欣赏任何想法
【问题讨论】:
-
我所做的挖掘表明您需要在
gss_export_name之前调用gss_canonicalize_name。但我无法在工作代码中验证这一点。 -
我的印象是,只有在从字符串而不是从活动凭据中导入名称时才需要规范化。无论哪种方式,在我的其他试验中,我都这样做了,但仍然空白。缓冲区可能不包含文本值并且需要进一步解码。希望有更多的一点