#define NAME_FLAG_NAI 0x00000001
#define NAME_FLAG_SERVICE 0x00000002
-#define NAME_FLAG_RADIUS_ATTRIBUTES 0x00000004
-#define NAME_FLAG_SAML_ATTRIBUTES 0x00000008
#define NAME_HAS_ATTRIBUTES(name) ((name)->attrCtx != NULL)
gss_name_t name,
gss_buffer_t buffer)
{
- if (name->attrCtx == NULL)
- return GSS_S_UNAVAILABLE;
+ if (name->attrCtx == NULL) {
+ buffer->length = 0;
+ buffer->value = NULL;
+
+ return GSS_S_COMPLETE;
+ };
try {
name->attrCtx->marshall(buffer);
gss_buffer_t buffer,
gss_name_t name)
{
- GSSEAP_NOT_IMPLEMENTED;
+ if (buffer->length)
+ GSSEAP_NOT_IMPLEMENTED;
}
OM_uint32
gss_buffer_desc buf;
CHECK_REMAIN(4);
- name->flags = load_uint32_be(p);
- UPDATE_REMAIN(4);
-
- CHECK_REMAIN(4);
buf.length = load_uint32_be(p);
UPDATE_REMAIN(4);
exportedName->length = 6 + GSS_EAP_MECHANISM->length + 4 + krbNameLen;
if (composite) {
- exportedName->length += 4;
-
major = gssEapExportAttrContext(minor, name, &attrs);
if (GSS_ERROR(major))
goto cleanup;
p += krbNameLen;
if (composite) {
- store_uint32_be(name->flags, p);
- p += 4;
-
store_uint32_be(attrs.length, p);
memcpy(&p[4], attrs.value, attrs.length);
p += 4 + attrs.length;
gss_eap_saml_attr_provider(void) {}
~gss_eap_saml_attr_provider(void);
-#if 0
- bool initFromExistingContext(const gss_eap_attr_ctx *source,
- const gss_eap_attr_provider *ctx);
- bool initFromGssContext(const gss_eap_attr_ctx *source,
- const gss_cred_id_t cred,
- const gss_ctx_id_t ctx);
-#endif
-
bool getAttributeTypes(gss_eap_attr_enumeration_cb, void *data) const;
void setAttribute(int complete,
const gss_buffer_t attr,